Commit Graph

53 Commits (74b9416174e1bc24d1e7d92f13e548b7024070d4)

Author SHA1 Message Date
pca006132 d9cb506f6a nac3core: refactored for better error messages 2022-02-21 18:24:19 +08:00
pca006132 050c862c1a nac3core: function codegen callback changes
Added code generator argument to the callback, so it would be easier to
write complicated codegen with that callback. To prepare for RPC
codegen.
2022-02-12 21:24:41 +08:00
ychenfo aa2d79fea6 Merge branch 'master' into built_in_floor_ceil 2021-12-02 01:08:55 +08:00
ychenfo dfd3548ed2 TypeVar and virtual support in Symbol Resolver (#99)
Add `TypeVar` and `virtual` support for Symbol Resolver in nac3artiq and nac3standalone

Reviewed-on: M-Labs/nac3#99
Co-authored-by: ychenfo <yc@m-labs.hk>
Co-committed-by: ychenfo <yc@m-labs.hk>
2021-12-01 22:44:53 +08:00
ychenfo 7ede4f15b6 nac3core: move builtin definitions to another file 2021-12-01 02:52:00 +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
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
Sebastien Bourdeauducq bf7e2c295a integrate nac3parser 2021-11-03 17:11:00 +08:00
pca006132 c4259d14d1 fixed some clippy warnings 2021-10-16 18:08:13 +08:00
pca006132 f0fdfe42cb nac3core: better impl of #24 2021-09-30 17:07:48 +08:00
pca006132 693ac7d336 nac3core/toplevel: added personality symbol config 2021-09-25 21:44:00 +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 4fe643f45b allows function ending with a number 2021-09-22 14:45:42 +08:00
pca006132 4939ff4dbd simple implementation of classes 2021-09-19 22:54:06 +08:00
ychenfo 526c18bda0 nac3core: top level inferencer without type var should be ok 2021-09-17 00:39:42 +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 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 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 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