Commit Graph

833 Commits

Author SHA1 Message Date
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 22a728833d nac3core: fixed broken test 2021-08-27 16:50:53 +08:00
pca006132 2223c86d9b nac3standalone: compile multiple functions 2021-08-27 16:25:59 +08:00
pca006132 72aebed559 nac3core: unification table optimization
avoid cloning values that we no longer need.
2021-08-27 13:05:06 +08:00
pca006132 8c1c7fcfc3 nac3core: fixed broken tests 2021-08-27 13:04:51 +08:00
pca006132 6633eabb89 nac3core: optimized by using HashSet 2021-08-27 12:36:51 +08:00
pca006132 d81249cabe nac3standalone: enabled optimization and recorded time 2021-08-27 12:35:21 +08:00
pca006132 bf4e0009c0 codegen: do not generate cont_bb if unreachable 2021-08-27 11:46:12 +08:00
pca006132 52dd792b3e nac3standalone: added return check 2021-08-27 11:39:36 +08:00
pca006132 a24e204824 type_inferencer: check defined identifiers during inference 2021-08-27 11:13:43 +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 1a21fb1072 fix codegen test about top level composer return type change 2021-08-25 18:00:01 +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 e2b11c3fee codegen: fixed deadlock and added call test 2021-08-25 17:44:01 +08:00
pca006132 0608fd9659 fixed test and nac3standalone 2021-08-25 15:30:36 +08:00
pca006132 173102fc56 codegen/expr: function codegen and refactoring 2021-08-25 15:29:58 +08:00
pca006132 93270d7227 use forked version of rustpython
to implement Clone for AST nodes
2021-08-25 15:28:32 +08:00
pca006132 1ffa1a8bb0 typecheck/typedef: added copy_from
This function would copy concrete type from one unifier to another
unifier, and can handle recursive types. This would be used in code
generation for moving types from one unification table to another one.
2021-08-25 12:02:10 +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
pca006132 c356062239 symbol_resolver: handle list and tuples 2021-08-24 14:58:19 +08:00
ychenfo 56f082ca7c handle type var associated with class/function partially, change llvm version of nac3embedded to 11
format
2021-08-23 17:00:32 +08:00
ychenfo 39f300b62a clean up and add duplicate function/parameter/class name test
formatted
2021-08-23 14:22:46 +08:00
ychenfo 7b1fe36e90 formatted 2021-08-23 11:13:45 +08:00
ychenfo fb5b4697a9 fix rebase conflict and some test failure with unifier's error message 2021-08-23 10:34:11 +08:00
ychenfo 364054331c handle class fields and methods 2021-08-23 02:54:45 +08:00
ychenfo 40b062ce0f change the parse type annotation parameter type, refactoring top level 2021-08-23 02:54:45 +08:00
pca006132 f5b8b58826 added tuple assignment check 2021-08-21 15:11:01 +08:00
pca006132 c4d6b3691a codegen/expr: fixed warnings 2021-08-21 15:10:50 +08:00
pca006132 957ceb74e4 nac3core/typecheck: added basic location information 2021-08-21 14:51:46 +08:00
pca006132 e47d063efc codegen: store to list element 2021-08-19 17:14:38 +08:00
pca006132 0e2da0d180 codegen: gep related fixes
we can now compile simple programs that uses tuples and lists
2021-08-19 16:54:15 +08:00
pca006132 39545c0005 nac3standalone usable 2021-08-19 15:30:52 +08:00
pca006132 3279f7a776 codegen for simple function call, and various fixes 2021-08-19 15:30:15 +08:00
sb10q f205a8282a Merge pull request 'hm-inference' (#6) from hm-inference into master
Reviewed-on: M-Labs/nac3#6
2021-08-19 11:46:50 +08:00
pca006132 d1215bf5ac nac3core/codegen/expr: fixed typo 2021-08-19 11:45:33 +08:00
pca006132 6e424a6a3e fixed codegen test 2021-08-19 11:32:22 +08:00
pca006132 9a07ef3301 Merge remote-tracking branch 'origin/hm-inference_anto' into hm-inference 2021-08-19 11:32:04 +08:00
ychenfo c238c264e7 add type vars to the primitive binop function def 2021-08-19 11:18:58 +08:00
Sebastien Bourdeauducq f8a697e3d4 switch to LLVM 11 2021-08-19 11:14:35 +08:00