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
|
3279f7a776
|
codegen for simple function call, and various fixes
|
2021-08-19 15:30:15 +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 |
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 |
ychenfo
|
3734663188
|
add RefCell to FunSignature in TypeEnum
|
2021-08-16 13:53:45 +08:00 |
ychenfo
|
d8c3c063ec
|
split top level handling in several functions
|
2021-08-16 13:53:39 +08:00 |
pca006132
|
d3ad894521
|
removed code comment
|
2021-08-13 16:30:33 +08:00 |
pca006132
|
784111fdbe
|
Merge remote-tracking branch 'origin/hm-inference_anto' into hm-inference
|
2021-08-13 16:28:04 +08:00 |
pca006132
|
d30918bea0
|
worker thread panic handling
|
2021-08-13 16:20:14 +08:00 |
pca006132
|
e2adf82229
|
threadpool for parallel code generation
|
2021-08-13 14:48:46 +08:00 |
ychenfo
|
33391c55c2
|
add Sync bound to Symbol resolver in top level
|
2021-08-13 14:22:49 +08:00 |
ychenfo
|
3f65e1b133
|
start refactor top_level
|
2021-08-13 13:57:24 +08:00 |
ychenfo
|
ba5bb78f11
|
top level parse class base/generic
|
2021-08-13 13:57:24 +08:00 |
ychenfo
|
e176aa660d
|
commit for pull new symbol resolver
|
2021-08-13 13:57:24 +08:00 |
pca006132
|
cb01c79603
|
removed Arc from TypeEnum
|
2021-08-13 13:33:59 +08:00 |
pca006132
|
1db8378f60
|
formatting
|
2021-08-12 16:36:23 +08:00 |
pca006132
|
8c7ccb626b
|
fixed symbol_resolver blanket implementation
|
2021-08-12 14:44:50 +08:00 |
pca006132
|
1f6c16e08b
|
fixed compilation failure
|
2021-08-12 13:56:51 +08:00 |
pca006132
|
77943a8117
|
added primitive codegen test
|
2021-08-12 13:56:06 +08:00 |
ychenfo
|
3a93e2b048
|
TypeEnum::TObj.param is now RefCell for interior mutability
|
2021-08-12 13:17:51 +08:00 |
ychenfo
|
824a5cb01a
|
register top level clean up
|
2021-08-12 10:51:41 +08:00 |
ychenfo
|
17ee8fe6d0
|
starting cleaning up and further add Arc<Mutex>
|
2021-08-12 10:51:41 +08:00 |
pca006132
|
d46a4b2d38
|
symbol_resolver: fixed type variable handling
|
2021-08-12 10:25:32 +08:00 |
pca006132
|
de8b67b605
|
refactored symbol resolver
|
2021-08-11 17:28:29 +08:00 |
pca006132
|
0af4e95914
|
Merge remote-tracking branch 'origin/hm-inference_anto' into hm-inference
|
2021-08-11 15:42:32 +08:00 |
ychenfo
|
99276c8f31
|
formatted
|
2021-08-11 15:18:21 +08:00 |
ychenfo
|
42a636b4ce
|
add Arc<Mutex<dyn SymbolResolver>> and change from Box<SymbolResolve> to Arc<SymbolResolver>, need format and cleanup
|
2021-08-11 15:11:51 +08:00 |
pca006132
|
e112354d25
|
codegen refactored
|
2021-08-11 14:37:26 +08:00 |
ychenfo
|
43236db9bd
|
update some previous work on top level with the clean up
|
2021-08-11 13:31:59 +08:00 |
ychenfo
|
1bec6cf2db
|
continue working on the top level
|
2021-08-11 11:16:53 +08:00 |
pca006132
|
a73ab922e2
|
cleanup
|
2021-08-10 21:57:31 +08:00 |
ychenfo
|
82ce816177
|
refactored top level parsing, need review
|
2021-08-10 10:37:06 +08:00 |
ychenfo
|
6ad953f877
|
top level class roughly handled, push for review
|
2021-08-10 10:37:06 +08:00 |
pca006132
|
4db871c244
|
put alloca in init block
|
2021-08-09 16:37:28 +08:00 |
pca006132
|
cc0692a34c
|
modified alloca
|
2021-08-09 16:19:20 +08:00 |
pca006132
|
7a90ff5791
|
while loop constructs
|
2021-08-09 16:10:17 +08:00 |
pca006132
|
d8c713ce3d
|
assignment statement
|
2021-08-09 15:39:50 +08:00 |
pca006132
|
1ffb792000
|
make tuple a ptr to a struct instead of a struct
|
2021-08-07 17:41:48 +08:00 |
pca006132
|
057fcfe3df
|
default parameter value generation
|
2021-08-07 17:31:01 +08:00 |
pca006132
|
86ca02796b
|
function parameter handling
|
2021-08-07 17:25:14 +08:00 |
pca006132
|
711482d09c
|
expr codegen cleanup
|
2021-08-07 15:30:03 +08:00 |
pca006132
|
7a38ab3119
|
codegen for function call
|
2021-08-07 15:06:39 +08:00 |
pca006132
|
34d3317ea0
|
store operation method signature
|
2021-08-07 10:41:53 +08:00 |
pca006132
|
c405e46b00
|
moving location and symbol_resolver out from typecheck
|
2021-08-07 10:28:41 +08:00 |
ychenfo
|
18db2ddd53
|
change the type TypeEnum::TObj {object_id} to DefinitionId as with top_level
change TopLevelDef::Class {object_id} to DefinitionId
|
2021-08-06 10:57:01 +08:00 |
ychenfo
|
fe26070364
|
cleanup basic_test_env
|
2021-08-06 10:57:01 +08:00 |
pca006132
|
095f28468b
|
added if expr
|
2021-08-05 16:52:41 +08:00 |
pca006132
|
29286210b5
|
implementing codegen
|
2021-08-05 14:56:09 +08:00 |
pca006132
|
b01d0f6fbb
|
formatting
|
2021-08-05 14:56:09 +08:00 |
pca006132
|
3dcd846302
|
added rayon dependency
|
2021-08-05 14:56:09 +08:00 |
ychenfo
|
c0227210df
|
bit shift lhs rhs same type; float ** int and float ** float both supported
|
2021-08-05 11:55:46 +08:00 |
CrescentonC
|
99c71687a6
|
fixed: bitwise shift rhs can only be int32; better structured code
|
2021-08-04 16:46:16 +08:00 |
CrescentonC
|
d052f007fb
|
fix typo of primitives method
|
2021-08-04 12:03:56 +08:00 |
pca006132
|
8452579c67
|
use parking_lot RwLock
The std::sync::RwLock is platform dependent, and is unfair on Linux
(may starve writer)
|
2021-08-03 14:11:41 +08:00 |
pca006132
|
f00c1813e3
|
top-level related changes
|
2021-08-03 13:38:27 +08:00 |
pca006132
|
d4d12a9d1d
|
added crossbeam dependency
|
2021-08-03 12:38:55 +08:00 |
pca006132
|
a3acf09bda
|
typedef: make it send
Rc in calls is not send, so we use Arc instead.
|
2021-08-03 12:38:12 +08:00 |
pca006132
|
52dc112410
|
unification table: modified conversion impl
from UnificationTable<Rc<RefCell<T>> <==> UnificationTable<T>
to UnificationTable<Rc<T>> <==> UnificationTable<T>
|
2021-08-03 12:35:58 +08:00 |
CrescentonC
|
d4807293b0
|
clean up unused variabls and comments
|
2021-08-03 10:41:52 +08:00 |
CrescentonC
|
d4721db4a3
|
not creating temp for borrow, more concise code
|
2021-08-03 09:45:39 +08:00 |
CrescentonC
|
a7e3eeea0d
|
add primitive magic method support; change from TypeEnum::TObj { fields: Mapping<String>, ..} to TypeEnum::TObj {fields: RefCell<Mapping<String>>, .. } for interior mutability
|
2021-08-02 17:36:37 +08:00 |
CrescentonC
|
f7bbc3e10d
|
Merge branch 'hm-inference' into hm-inference_anto
|
2021-08-02 11:33:36 +08:00 |
CrescentonC
|
7e0d55443a
|
better structured primitive magic methods impl
|
2021-08-02 11:28:05 +08:00 |
pca006132
|
197a72c658
|
added comment
|
2021-07-30 16:43:25 +08:00 |
pca006132
|
eba92ed8bd
|
added method to get all instantiations
|
2021-07-30 16:32:50 +08:00 |
CrescentonC
|
b87c627c41
|
updated with field in the test environment
|
2021-07-30 15:46:57 +08:00 |
CrescentonC
|
ae79533cfd
|
Merge remote-tracking branch 'origin/hm-inference' into hm-inference_anto
|
2021-07-30 15:41:53 +08:00 |
CrescentonC
|
9983aa62e6
|
add primitive magic methods
|
2021-07-30 15:40:14 +08:00 |
pca006132
|
7ad8e2d81d
|
cleanup some error reporting code
|
2021-07-30 13:50:46 +08:00 |
pca006132
|
743a9384a3
|
added rigid type variable
|
2021-07-30 11:28:27 +08:00 |
pca006132
|
f2c5a9b352
|
added location -> call mapping
This allows code generation module to get function instantiation
parameter directly.
|
2021-07-30 11:01:11 +08:00 |
ychenfo
|
09e76efcf7
|
start adding primitive magic methods
|
2021-07-29 15:36:19 +08:00 |
pca006132
|
832513e210
|
new is_concrete type check
|
2021-07-28 17:25:19 +08:00 |
pca006132
|
f665ea358b
|
fixed fold
|
2021-07-28 10:44:58 +08:00 |
pca006132
|
e15473d2c9
|
fixed pattern matching
|
2021-07-27 14:39:53 +08:00 |
pca006132
|
5f0490cd84
|
added virtual test
|
2021-07-27 11:58:35 +08:00 |
pca006132
|
1d13b16f94
|
updated function check
|
2021-07-26 16:00:29 +08:00 |
pca006132
|
8d0856a58d
|
added documentation
|
2021-07-26 14:38:18 +08:00 |
pca006132
|
bf31c48bba
|
fixed missing unification
|
2021-07-26 14:20:47 +08:00 |
pca006132
|
8618837816
|
fixed range unification
|
2021-07-26 12:00:06 +08:00 |
pca006132
|
d7df93bef1
|
fixed range check
|
2021-07-23 17:22:05 +08:00 |
pca006132
|
d140164a38
|
fixed virtual unification
|
2021-07-23 16:19:00 +08:00 |
pca006132
|
ddcf4b7e39
|
refactored typedef
|
2021-07-23 15:57:37 +08:00 |
pca006132
|
88c45172b2
|
basic check for use-before-def
|
2021-07-22 17:07:49 +08:00 |
pca006132
|
c315227a28
|
init function check
|
2021-07-22 15:36:37 +08:00 |
pca006132
|
d484fa1e5c
|
added return type check
|
2021-07-22 11:49:00 +08:00 |