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
ba93931758
implement timeline functions for RISC-V (WIP)
2021-10-02 19:05:35 +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
c4fbfeaca9
nac3standalone: added thread number arg
2021-09-23 20:02:56 +08:00
105d605e6d
nac3core: fix clippy warnings
2021-09-22 18:04:06 +08:00
084efe92af
nac3core: use string interning
2021-09-22 18:04:06 +08:00
8acb39f31f
fix parallel compilation
2021-09-22 15:00:32 +08:00
956cca6ac8
cleanup demos
2021-09-22 14:57:13 +08:00
4a5f2d495e
added time measurement to track performance
2021-09-22 14:45:56 +08:00
e66693282c
nac3core: change the place to unify constructor type for function body type check
...
add really basic field initialize check
2021-09-20 23:44:39 +08:00
4939ff4dbd
simple implementation of classes
2021-09-19 22:54:06 +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
03b5e51822
nac3standalone: cleanup
2021-09-10 21:27:08 +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
2223c86d9b
nac3standalone: compile multiple functions
2021-08-27 16:25:59 +08:00
d81249cabe
nac3standalone: enabled optimization and recorded time
2021-08-27 12:35:21 +08:00
52dd792b3e
nac3standalone: added return check
2021-08-27 11:39:36 +08:00
a24e204824
type_inferencer: check defined identifiers during inference
2021-08-27 11:13:43 +08:00
862d205f67
remove self kind and extra primitive info in the return of top level composer constructor, adding some helper function for type annotation
2021-08-25 17:47:26 +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
fb5b4697a9
fix rebase conflict and some test failure with unifier's error message
2021-08-23 10:34:11 +08:00
957ceb74e4
nac3core/typecheck: added basic location information
2021-08-21 14:51:46 +08:00
39545c0005
nac3standalone usable
2021-08-19 15:30:52 +08:00
703059adab
nac3standalone: renames
2020-12-18 22:35:59 +08:00
947a528656
libnac3 -> nac3core
2020-12-18 10:18:21 +08:00
06d2fbd25c
split off standalone compiler
2020-12-17 22:20:30 +08:00