David Mak
77de24ef74
core: Use BTreeMap for type variable mapping
...
There have been multiple instances where I had the need to iterate over
type variables, only to discover that the traversal order is arbitrary.
This commit fixes that by adding SortedMapping, which utilizes BTreeMap
internally to guarantee a traversal order. All instances of VarMap are
now refactored to use this to ensure that type variables are iterated in
the order of its variable ID, which should be monotonically incremented
by the unifier.
2024-03-04 23:56:04 +08:00
David Mak
27fcf8926e
core: Implement ndarray constructor and numpy.empty
2023-12-22 16:29:54 +08:00
David Mak
02933753ca
core: Apply clippy pedantic changes
2023-12-11 15:16:23 +08:00
David Mak
d304afd333
meta: Apply clippy suggested changes
2023-12-11 15:16:23 +08:00
David Mak
36a6a7b8cd
core: Replace TopLevelDef comments with documentation
2023-11-01 18:03:29 +08:00
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: #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: #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