279f47f633
nac3core/codegen: avoid sending unifiers
...
Previously, we have to copy types from one unification table to another,
and make the table sendable. This requires cloning (processing) the
whole table 3 times per function call which is not efficient and uses
more memory than required when the unification table is large.
We now use a concrete type table to only copy the type we need. This
reduces the overhead as we only need to process the unification table
for once (when we do the function codegen), and reduces memory usage by
a bit (but not noticeable when the unification table is small, i.e. the
types are simple).
2021-10-17 13:02:18 +08:00
1f5bea2448
nac3core/codegen: refactor according to #23
2021-10-16 22:17:36 +08:00
c4259d14d1
fixed some clippy warnings
2021-10-16 18:08:13 +08:00
11144301ca
nac3artiq: added simple host value support
2021-10-06 16:07:42 +08:00
f0fdfe42cb
nac3core: better impl of #24
2021-09-30 17:07:48 +08:00
d4ed76d76e
nac3core: implementing #24
2021-09-26 22:17:09 +08:00
693ac7d336
nac3core/toplevel: added personality symbol config
2021-09-25 21:44:00 +08:00
7d48883583
fixed tests
2021-09-22 18:04:06 +08:00
084efe92af
nac3core: use string interning
2021-09-22 18:04:06 +08:00
35a94a8fc0
nac3core: fix broken test
2021-09-20 01:58:07 +08:00
2b74895b71
nac3standalone, nac3core: can use top level composer to compile and run mandelbrot
2021-09-19 16:19:49 +08:00
2ac3f9a176
nac3core: separate top level compoer to a new file
2021-09-12 05:10:10 +08:00
1300b5ebdd
nac3core: clean up and format
2021-09-08 19:45:36 +08:00
87f25e1c5d
nac3core: remove mutex on dyn symbol resolve
2021-09-08 19:27:32 +08:00
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
22a728833d
nac3core: fixed broken test
2021-08-27 16:50:53 +08:00
8c1c7fcfc3
nac3core: fixed broken tests
2021-08-27 13:04:51 +08:00
a24e204824
type_inferencer: check defined identifiers during inference
2021-08-27 11:13:43 +08:00
1a21fb1072
fix codegen test about top level composer return type change
2021-08-25 18:00:01 +08:00
e2b11c3fee
codegen: fixed deadlock and added call test
2021-08-25 17:44:01 +08:00
0608fd9659
fixed test and nac3standalone
2021-08-25 15:30:36 +08:00
32773c14e0
move top level related things to a separate module
2021-08-24 17:19:17 +08:00
3279f7a776
codegen for simple function call, and various fixes
2021-08-19 15:30:15 +08:00
6e424a6a3e
fixed codegen test
2021-08-19 11:32:22 +08:00
d30918bea0
worker thread panic handling
2021-08-13 16:20:14 +08:00
e2adf82229
threadpool for parallel code generation
2021-08-13 14:48:46 +08:00
cb01c79603
removed Arc from TypeEnum
2021-08-13 13:33:59 +08:00
1f6c16e08b
fixed compilation failure
2021-08-12 13:56:51 +08:00
77943a8117
added primitive codegen test
2021-08-12 13:56:06 +08:00