Commit Graph

1037 Commits

Author SHA1 Message Date
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
Sebastien Bourdeauducq 0941de9ee1 Revert "shell.nix: set LLVM_SYS_100_PREFIX. Closes #4"
This reverts commit 53ebe8d8b2.
2021-07-26 12:29:16 +08:00
pca006132 8618837816 fixed range unification 2021-07-26 12:00:06 +08:00
Sebastien Bourdeauducq 53ebe8d8b2 shell.nix: set LLVM_SYS_100_PREFIX. Closes #4 2021-07-24 09:31:24 +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
pca006132 09c9218852 use custom unification table implementation
as the ena implementation did not expose the underlying vector store, we
cannot map over it to get a table without Rc<RefCell<T>> so that we can
send it around...
2021-07-22 11:37:29 +08:00