diff options
author | Eduardo Julian | 2015-04-17 17:54:35 -0400 |
---|---|---|
committer | Eduardo Julian | 2015-04-17 17:54:35 -0400 |
commit | 6676e1bb8e79ed4336b113b573f3b9f9dd8399af (patch) | |
tree | 86058e335da36fd4d0734ad642eae16556b5758c /src/lux.clj | |
parent | 61f70deb6d4e8ad2f9e06122c3591a075c5b1bbc (diff) |
- Solved the bug wherein type-inferencing was causing computational complexity to explode and cause the compiler to become very slow (solved it by removing type-inference from tuples).
- Also removed type-inference from functions/lambdas.
- Added a small optimization to improve the efficiency of type-checking by not doing a thorough type-check when a global or local binding has a type variant with the same cases as Type, and it's exo-type is also like this (hopefully, it will never happen that someone will exploit this to make the compiler do something weird...)
Diffstat (limited to '')
-rw-r--r-- | src/lux.clj | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/src/lux.clj b/src/lux.clj index e035e92c8..103c15565 100644 --- a/src/lux.clj +++ b/src/lux.clj @@ -16,7 +16,6 @@ ;; TODO: Change &type/check to it returns a tuple with the new expected & actual types ;; TODO: Stop passing-along the exo-types and instead pass-along endo-types where possible - ;; TODO: Optimize analyser to avoid redundant checks when dealing with type-checking (making sure check* is being handed a type) (time (&compiler/compile-all (&/|list "lux"))) (System/gc) |