David Nadlinger
8454741f9e
cargo fmt the world
2022-04-22 21:56:35 +01:00
ychenfo
80631fc92b
Option type support ( #224 )
...
Co-authored-by: ychenfo <yc@m-labs.hk>
Co-committed-by: ychenfo <yc@m-labs.hk>
2022-03-26 15:09:15 +08:00
ychenfo
be75fa7368
nac3core: fix assign to constant
2022-03-24 07:13:13 +08:00
pca006132
e303248261
nac3core: exception type check and codegen
2022-02-12 22:50:32 +08:00
Sebastien Bourdeauducq
fd4bf12808
fix grammar of some type error messages
2022-01-14 16:56:23 +08:00
ychenfo
4a1a4dc076
nac3core/artiq/standalone: symbol resolver return error msg for type error of host variables
2022-01-14 16:28:34 +08:00
Sebastien Bourdeauducq
0ff995722c
Revert "nac3core: add missing expr concrete type check"
...
This reverts commit cb450372d6
.
2021-12-20 18:13:45 +08:00
ychenfo
cb450372d6
nac3core: add missing expr concrete type check
2021-12-19 18:01:49 +08:00
Sebastien Bourdeauducq
142f82f987
remove debug prints
2021-12-01 22:48:06 +08:00
ychenfo
b239806558
nac3core: adapt to ast change due to comment support
2021-11-04 15:02:51 +08:00
Sebastien Bourdeauducq
bf7e2c295a
integrate nac3parser
2021-11-03 17:11:00 +08:00
pca006132
083eacc268
with parallel/sequential support
...
Behavior of parallel and sequential:
Each function call (indirectly, can be inside a sequential block) within a parallel
block will update the end variable to the maximum now_mu in the block.
Each function call directly inside a parallel block will reset the timeline after
execution. A parallel block within a sequential block (or not within any block) will
set the timeline to the max now_mu within the block (and the outer max now_mu will also
be updated).
Implementation: We track the start and end separately.
- If there is a start variable, it indicates that we are directly inside a
parallel block and we have to reset the timeline after every function call.
- If there is a end variable, it indicates that we are (indirectly) inside a
parallel block, and we should update the max end value.
Note: requires testing, it is difficult to inspect the output IR
2021-10-31 23:54:37 +08:00
pca006132
2f6ba69770
nac3core/typecheck: check if value is none
2021-10-23 21:31:14 +08:00
pca006132
11144301ca
nac3artiq: added simple host value support
2021-10-06 16:07:42 +08:00
pca006132
105d605e6d
nac3core: fix clippy warnings
2021-09-22 18:04:06 +08:00
pca006132
084efe92af
nac3core: use string interning
2021-09-22 18:04:06 +08:00
ychenfo
87f25e1c5d
nac3core: remove mutex on dyn symbol resolve
2021-09-08 19:27:32 +08:00
ychenfo
54b4572c5f
nac3core: allow interior mutability to dyn symbolresolver, add add_id_def to symbolresolver trait, remove primitive from top level def list
2021-09-06 19:23:04 +08:00
pca006132
6633eabb89
nac3core: optimized by using HashSet
2021-08-27 12:36:51 +08:00
pca006132
a24e204824
type_inferencer: check defined identifiers during inference
2021-08-27 11:13:43 +08:00
pca006132
f5b8b58826
added tuple assignment check
2021-08-21 15:11:01 +08:00
pca006132
b01d0f6fbb
formatting
2021-08-05 14:56:09 +08:00
pca006132
832513e210
new is_concrete type check
2021-07-28 17:25:19 +08:00
pca006132
e15473d2c9
fixed pattern matching
2021-07-27 14:39:53 +08:00
pca006132
1d13b16f94
updated function check
2021-07-26 16:00:29 +08:00
pca006132
ddcf4b7e39
refactored typedef
2021-07-23 15:57:37 +08:00
pca006132
88c45172b2
basic check for use-before-def
2021-07-22 17:07:49 +08:00
pca006132
c315227a28
init function check
2021-07-22 15:36:37 +08:00