Sebastien Bourdeauducq
47f563908a
basic string support ( #30 )
2021-11-02 23:22:49 +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
fb92b6d364
nac3core: supports range iterator
2021-10-23 23:53:36 +08:00
pca006132
c4259d14d1
fixed some clippy warnings
2021-10-16 18:08:13 +08:00
pca006132
26076c37ba
nac3core/typecheck: supports recursive type inference
2021-10-16 15:56:49 +08:00
pca006132
11144301ca
nac3artiq: added simple host value support
2021-10-06 16:07:42 +08:00
pca006132
799ed58d21
nac3core/type_inferencer: avoid type var for assign
2021-09-22 19:25:47 +08:00
pca006132
105d605e6d
nac3core: fix clippy warnings
2021-09-22 18:04:06 +08:00
pca006132
97f5b7c324
fixed performance regression
2021-09-22 18:04:06 +08:00
pca006132
7d48883583
fixed tests
2021-09-22 18:04:06 +08:00
pca006132
084efe92af
nac3core: use string interning
2021-09-22 18:04:06 +08:00
pca006132
1b5ac3cd25
nac3core: do not alloc call if it is monomorphic
2021-09-22 18:04:06 +08:00
pca006132
5ed2b450d3
nac3core/typecheck: no type variable for monomorphic functions
2021-09-22 18:04:06 +08:00
ychenfo
1c170f5c41
nac3core: type inferencer fix the pass statement
2021-09-21 13:19:13 +08:00
pca006132
3c930ae9ab
fixed #12
2021-09-20 15:51:42 +08:00
ychenfo
1300b5ebdd
nac3core: clean up and format
2021-09-08 19:45:36 +08:00
ychenfo
87f25e1c5d
nac3core: remove mutex on dyn symbol resolve
2021-09-08 19:27:32 +08:00
ychenfo
55335fc05d
nac3core: top level simple type var handled
2021-09-08 02:27:12 +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
173102fc56
codegen/expr: function codegen and refactoring
2021-08-25 15:29:58 +08:00
ychenfo
32773c14e0
move top level related things to a separate module
2021-08-24 17:19:17 +08:00
ychenfo
fb5b4697a9
fix rebase conflict and some test failure with unifier's error message
2021-08-23 10:34:11 +08:00
ychenfo
40b062ce0f
change the parse type annotation parameter type, refactoring top level
2021-08-23 02:54:45 +08:00
pca006132
957ceb74e4
nac3core/typecheck: added basic location information
2021-08-21 14:51:46 +08:00
ychenfo
3734663188
add RefCell to FunSignature in TypeEnum
2021-08-16 13:53:45 +08:00
pca006132
cb01c79603
removed Arc from TypeEnum
2021-08-13 13:33:59 +08:00
pca006132
de8b67b605
refactored symbol resolver
2021-08-11 17:28:29 +08:00
ychenfo
42a636b4ce
add Arc<Mutex<dyn SymbolResolver>> and change from Box<SymbolResolve> to Arc<SymbolResolver>, need format and cleanup
2021-08-11 15:11:51 +08:00
pca006132
86ca02796b
function parameter handling
2021-08-07 17:25:14 +08:00
pca006132
34d3317ea0
store operation method signature
2021-08-07 10:41:53 +08:00
pca006132
c405e46b00
moving location and symbol_resolver out from typecheck
2021-08-07 10:28:41 +08:00
pca006132
b01d0f6fbb
formatting
2021-08-05 14:56:09 +08:00
pca006132
a3acf09bda
typedef: make it send
...
Rc in calls is not send, so we use Arc instead.
2021-08-03 12:38:12 +08:00
CrescentonC
7e0d55443a
better structured primitive magic methods impl
2021-08-02 11:28:05 +08:00
pca006132
f2c5a9b352
added location -> call mapping
...
This allows code generation module to get function instantiation
parameter directly.
2021-07-30 11:01:11 +08:00
pca006132
832513e210
new is_concrete type check
2021-07-28 17:25:19 +08:00
pca006132
f665ea358b
fixed fold
2021-07-28 10:44:58 +08:00
pca006132
5f0490cd84
added virtual test
2021-07-27 11:58:35 +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
pca006132
d484fa1e5c
added return type check
2021-07-22 11:49:00 +08:00
pca006132
b3d849ea7a
list test
2021-07-21 16:06:06 +08:00
pca006132
3e03398d9b
obj test
2021-07-21 15:59:01 +08:00
pca006132
2f5c3b3cb7
more cleanup and started adding tests
2021-07-21 15:36:35 +08:00
pca006132
0296844d5f
cleanup
2021-07-21 13:28:05 +08:00