ychenfo
f5ce1afe0b
fix tests and switch to insta
...
Use a library called 'insta' to better organize those longer correct test outputs in toplevel tests. 'insta' creates `.snap` files as snapshots of the test output, and will automatically do the diff if the output is different. This makes maintaining test cases with larger outputs a lot easier.
Reviewed-on: M-Labs/nac3#42
Co-authored-by: ychenfo <yc@m-labs.hk>
Co-committed-by: ychenfo <yc@m-labs.hk>
2021-10-03 16:39:12 +08:00
Sebastien Bourdeauducq
ba93931758
implement timeline functions for RISC-V (WIP)
2021-10-02 19:05:35 +08:00
pca006132
1d2a32b140
nac3core/toplevel: impl scalar conversion
...
Implemented scalar conversion functions as builtin functions.
`round` for int64 is now implemented as `round64`.
2021-09-30 23:39:29 +08:00
pca006132
f0fdfe42cb
nac3core: better impl of #24
2021-09-30 17:07:48 +08:00
Sebastien Bourdeauducq
8d839db553
typo
2021-09-27 19:12:18 +08:00
Sebastien Bourdeauducq
64404bba20
syscall -> extern ( #21 )
2021-09-27 10:13:03 +08:00
pca006132
3c121dfcda
nac3core/toplevel/composer: fixes #29
2021-09-25 22:02:19 +08:00
pca006132
693ac7d336
nac3core/toplevel: added personality symbol config
2021-09-25 21:44:00 +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
pca006132
891056631f
nac3core: use Arc to reduce copy
2021-09-22 18:04:06 +08:00
pca006132
a508baae20
added syscall annotation
...
and temporarily disabled the keyword check for top-level functions
2021-09-22 17:58:46 +08:00
pca006132
4fe643f45b
allows function ending with a number
2021-09-22 14:45:42 +08:00
ychenfo
1c170f5c41
nac3core: type inferencer fix the pass statement
2021-09-21 13:19:13 +08:00
ychenfo
20905a9b67
nac3core: better field initialization check
2021-09-21 03:02:12 +08:00
ychenfo
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
ychenfo
dd1be541b8
nac3core: allow class to have no __init__, function/method name with module path added to ensure uniqueness
2021-09-20 23:36:19 +08:00
ychenfo
35a94a8fc0
nac3core: fix broken test
2021-09-20 01:58:07 +08:00
pca006132
4939ff4dbd
simple implementation of classes
2021-09-19 22:54:06 +08:00
ychenfo
2b74895b71
nac3standalone, nac3core: can use top level composer to compile and run mandelbrot
2021-09-19 16:19:49 +08:00
ychenfo
1b0f3d07cc
nac3core: top level fix field of funinstance
2021-09-17 22:32:13 +08:00
ychenfo
ed5dfd4100
nac3core: top level inferencer call with type var more test
2021-09-17 16:31:33 +08:00
ychenfo
41e63f24d0
nac3core: top level add test utility to print stringfied type
2021-09-17 16:31:21 +08:00
ychenfo
d0df705c5a
nac3core: toplevel type var test
2021-09-17 00:39:42 +08:00
ychenfo
a0662c58e6
nac3core: fix recursive top level function call
2021-09-17 00:39:42 +08:00
ychenfo
526c18bda0
nac3core: top level inferencer without type var should be ok
2021-09-17 00:39:42 +08:00
ychenfo
a10ab81ee7
toplevel composer: add ast to class methods, suppress warning
2021-09-17 00:39:42 +08:00
ychenfo
471547855e
nac3core: toplevel change class method name handling, cleanup comments
2021-09-12 13:14:46 +08:00
ychenfo
2ac3f9a176
nac3core: separate top level compoer to a new file
2021-09-12 05:10:10 +08:00
ychenfo
cb310965b8
nac3core: toplevel register consider module path
2021-09-12 05:00:26 +08:00
ychenfo
118f19762a
nac3core: toplevel format
2021-09-12 04:40:40 +08:00
ychenfo
b419634f8a
nac3core: top level fields inheritance check, more tests
2021-09-12 04:34:30 +08:00
ychenfo
147298ff40
nac3core: top level fix class fields as nac3 spec
2021-09-12 03:49:21 +08:00
ychenfo
c7cb02b0f3
nac3core: toplevel fix parse type annotation dead lock
2021-09-12 03:01:56 +08:00
ychenfo
4eacd1aa9e
nac3core: top level err test
2021-09-10 21:26:39 +08:00
ychenfo
9eef51f29f
nac3core: top level class method self parameter fixed
2021-09-10 16:14:08 +08:00
ychenfo
917d447605
nac3core: clean up, fix broken test
2021-09-09 02:09:35 +08:00
ychenfo
f1013d9a17
nac3core: top level fix type var within list tuple, test of type var application compatibility
2021-09-09 02:03:44 +08:00
ychenfo
2ce507964c
nac3core: fix broken top level test due to hashmap order
2021-09-09 00:44:56 +08:00
ychenfo
5a1a8ecee3
nac3core: self is not not allowed to explicitly appear in method type annotations
2021-09-08 21:53:54 +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
247b364191
nac3core: top level fix cyclic ancestor analysis, add tests
2021-09-07 17:30:15 +08:00
ychenfo
bbcec6ae6f
nac3core: toplevel fix bug in make self annotation and return type check
2021-09-07 10:03:31 +08:00
ychenfo
235b6e34d1
nac3core: top level derive fmt::Debug, fix dead lock
2021-09-07 00:20:40 +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
ychenfo
dc7c014b10
nac3core: top level more test
2021-08-31 17:40:38 +08:00
ychenfo
1ae6acc061
nac3core: top level fix function/methods none return type
2021-08-31 15:41:48 +08:00
ychenfo
98d032b72a
nac3core: top level fix duplicate def, start adding tests
2021-08-31 15:23:57 +08:00
ychenfo
7bbd608492
nac3core: top level cleanup, rewrite ancestors handling, __init__ occruence check
2021-08-31 13:54:16 +08:00
ychenfo
4a9593efa3
nac3core: top level clean up and fix ancestors analysis
2021-08-30 22:47:55 +08:00
ychenfo
098bd1e6e6
nac3core: top level check inheritance method overload
2021-08-30 17:39:29 +08:00
ychenfo
82c2edcf8d
nac3core: toplevel cleanup and add list and tuple support
2021-08-30 14:16:11 +08:00
ychenfo
40e58d02ed
nac3core: toplevel all ancestors are put into the def list, disallow generic base class for now
2021-08-30 14:15:57 +08:00
ychenfo
e2a9bdd8bc
nac3core: toplevel no duplicate type var too early
2021-08-30 14:15:36 +08:00
ychenfo
236989defc
nac3core: remove unnecessary inline and function parameters
2021-08-27 16:52:31 +08:00
pca006132
2223c86d9b
nac3standalone: compile multiple functions
2021-08-27 16:25:59 +08:00
ychenfo
35ef0386db
move helper function to another file
2021-08-27 10:21:51 +08:00
ychenfo
b9a580d271
handle class method/fields type var
2021-08-27 09:53:09 +08:00
ychenfo
018d6643e1
top level: top level function type var handled
...
top level: class methods/fields type var handling
2021-08-27 01:41:34 +08:00
ychenfo
935e7410fd
check type params in class generic base declaration
2021-08-26 11:54:37 +08:00
ychenfo
35a331552b
cyclic inheritance check added
2021-08-25 17:47:26 +08:00
ychenfo
0bab477ab0
get rid of nested tuple in type annotation helper function
2021-08-25 17:47:26 +08:00
ychenfo
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
pca006132
173102fc56
codegen/expr: function codegen and refactoring
2021-08-25 15:29:58 +08:00
ychenfo
01f7a31aae
put parse ast into type annotation into one function
2021-08-24 17:44:37 +08:00
ychenfo
32773c14e0
move top level related things to a separate module
2021-08-24 17:19:17 +08:00