Commit Graph

422 Commits

Author SHA1 Message Date
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
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
f8a697e3d4 switch to LLVM 11 2021-08-19 11:14:35 +08:00
ychenfo
4b38fe66a2 format 2021-08-18 17:33:48 +08:00
ychenfo
9cb07e6f04 start to handle base inheritance methods, fields 2021-08-18 17:32:55 +08:00
ychenfo
6279dbb589 formating 2021-08-18 16:33:50 +08:00
ychenfo
529442590f some parsing of top level class fields and methods 2021-08-18 16:28:17 +08:00
ychenfo
4fcd48e4c8 try to use def list ast tuple and remove method_to_def_id map 2021-08-18 10:01:11 +08:00
ychenfo
619963dc8c removed locks in toplevelcomposer 2021-08-17 16:36:06 +08:00
ychenfo
276daa03f7 start refactorinng for less redundancy 2021-08-17 14:01:18 +08:00
ychenfo
a94145348a fix on comments and redundant code, start handling 'self' things 2021-08-17 11:07:16 +08:00
ychenfo
fa40fd73c6 formatted 2021-08-16 20:17:08 +08:00
ychenfo
79ce13722a partially parsed class methods nad fields 2021-08-16 17:40:12 +08:00
ychenfo
eb814dd8c3 clean unused use 2021-08-16 13:57:21 +08:00