Commit Graph

98 Commits

Author SHA1 Message Date
ychenfo 7ede4f15b6 nac3core: move builtin definitions to another file 2021-12-01 02:52:00 +08:00
ychenfo 0fe346106d nac3core: fix converting int to bool (#119) 2021-11-30 03:02:26 +08:00
pca006132 4b17511b4a Merge branch 'master' into KernelInvariant 2021-11-27 21:29:27 +08:00
pca006132 7ee82de312 nac3core: fixed weird type inference error 2021-11-27 20:27:46 +08:00
Sebastien Bourdeauducq de8fc264d7 fix unsupported default parameter error message 2021-11-23 15:34:44 +08:00
ychenfo 4587088835 Constant Default Parameter Support (#98)
Add support for constant default parameter

Reviewed-on: M-Labs/nac3#98
Co-authored-by: ychenfo <yc@m-labs.hk>
Co-committed-by: ychenfo <yc@m-labs.hk>
2021-11-23 07:32:09 +08:00
ychenfo 01b51b62ee nac3core: composer better error msg in for uninit field 2021-11-21 06:11:55 +08:00
ychenfo d336200bf4 nac3core: fix broken tests due to the fix of rigid typevar handling 2021-11-21 06:11:55 +08:00
ychenfo a50df6560e nac3core: fix handling on rigid typevar 2021-11-21 06:11:55 +08:00
ychenfo a9635f0979 nac3core: top level use codegen official get_subst_key 2021-11-21 06:11:55 +08:00
ychenfo c2706fa720 nac3core: fix polymorphic class method partial instantiation 2021-11-21 06:11:55 +08:00
pca006132 ba08deada6 nac3core: refactor codegen 2021-11-20 19:50:25 +08:00
pca006132 ffa89e9308 fix clippy warnings 2021-11-06 23:00:18 +08:00
pca006132 b1e83a1fd4 nac3core: type check invariants
This rejects code that tries to assign to KernelInvariant fields and
methods.
2021-11-06 22:48:08 +08:00
pca006132 99b29d8ded Merge branch 'master' into with_nac3comment 2021-11-05 20:46:29 +08:00
pca006132 3db95b120b nac3core: implements bool conversion function 2021-11-05 20:34:34 +08:00
pca006132 8dbb4ad58a nac3core/toplevel: make test less fragile
test results should not depend on internal states if possible
2021-11-05 20:28:21 +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
Sebastien Bourdeauducq e89bc93b5f ignore expressions in class definition body (#26) 2021-11-02 23:30:12 +08:00
Sebastien Bourdeauducq 47f563908a basic string support (#30) 2021-11-02 23:22:49 +08:00
Sebastien Bourdeauducq 0e914ab7e9 composer: add range keyword 2021-11-02 18:56:14 +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
Sebastien Bourdeauducq fd0b11087e nac3core: use round instead of rint. Closes #61 2021-10-11 08:18:52 +08:00
pca006132 77542170fd nac3core: fixes #60 2021-10-10 15:01:06 +08:00
pca006132 a3ce5be10b nac3core: fixes #32 and #57 2021-10-09 16:20:49 +08:00
pca006132 11144301ca nac3artiq: added simple host value support 2021-10-06 16:07:42 +08:00
ychenfo 4fcb54e463 nac3core: fix #46, better toplevel return type error msg 2021-10-03 18:07:45 +08:00
ychenfo 24b2111c64 nac3core: fix #45 toplevel better error msg for methods/functions 2021-10-03 17:25:28 +08:00
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