Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | progress towards adding negative type classes | Zahary Karadjov | 2013-12-09 | 1 | -2/+3 |
| | | | | | | [unittest bugfixes] the block form of check now allows comments errors when inspecting the arguments of var-accepting procs | ||||
* | Experimental support for delayed instantiation of generics | Zahary Karadjov | 2013-08-23 | 1 | -6/+43 |
| | | | | | | | | | | | | | | | | | | | | This postpones the semantic pass over the generic's body until the generic is instantiated. There are several pros and cons for this method and the capabilities that it enables may still be possible in the old framework if we teach it a few new trick. Such an attempt will follow in the next commits. pros: 1) It allows macros to be expanded during generic instantiation that will provide the body of the generic. See ``tmacrogenerics``. 2) The instantiation code is dramatically simplified. Dealing with unknown types in the generic's body pre-pass requires a lot of hacky code and error silencing in semTypeNode. See ``tgenericshardcases``. cons: 1) There is a performance penalty of roughly 5% when bootstrapping. 2) Certain errors that used to be detected in the previous pre-pass won't be detected with the new scheme until instantiation. | ||||
* | hacky fix for generic constraints matching | Zahary Karadjov | 2013-08-19 | 1 | -0/+2 |
| | |||||
* | work-in-progress for compiling generics in their owner module | Zahary Karadjov | 2013-08-19 | 1 | -3/+4 |
| | |||||
* | Revert "Revert "made some tests green"" | Zahary Karadjov | 2013-08-19 | 1 | -16/+21 |
| | |||||
* | Revert "Revert "further fixes for void stripping. fixes tvoid."" | Zahary Karadjov | 2013-08-19 | 1 | -20/+25 |
| | | | | This reverts commit d11cf5d1915d83159094f5074a6e17a72c65d9fa. | ||||
* | Revert "Revert "fix threading tests"" | Zahary Karadjov | 2013-08-19 | 1 | -8/+16 |
| | | | | This reverts commit 9c45e33d8c8b1a5f5fca69a467fda87b9b547057. | ||||
* | Revert "Revert "fix tforwardgeneric"" | Zahary Karadjov | 2013-08-19 | 1 | -2/+0 |
| | | | | This reverts commit e3f93241c3824e49b69c647bbd44726a79e8f8f8. | ||||
* | remerge "Fixes #267" | Zahary Karadjov | 2013-08-19 | 1 | -19/+84 |
| | |||||
* | Revert "fixes #267" | Araq | 2013-05-27 | 1 | -84/+19 |
| | | | | This reverts commit 7fccdedcb5d1e583039b2ea2ae6564412a0f5104. | ||||
* | Revert "fix tforwardgeneric" | Araq | 2013-05-27 | 1 | -0/+2 |
| | | | | This reverts commit d82a032566de1612ff1ed2d82cc7ec2bd58267d7. | ||||
* | Revert "fix threading tests" | Araq | 2013-05-27 | 1 | -16/+8 |
| | | | | This reverts commit d5fffc032f2b390abd7b4c4fea2e49b1a0ef9736. | ||||
* | Revert "further fixes for void stripping. fixes tvoid." | Araq | 2013-05-27 | 1 | -25/+20 |
| | | | | This reverts commit 4ae4005f805c5b2e329b2e060fcf40169238a9f9. | ||||
* | Revert "more test made green" | Araq | 2013-05-27 | 1 | -21/+16 |
| | | | | This reverts commit 911e6e710f28f454cf8bc1bb493c1a28c4694b76. | ||||
* | more test made green | Zahary Karadjov | 2013-05-26 | 1 | -16/+21 |
| | | | | | | | | | the lambda lifting was trying too hard to ignore generic prods isGenericRoutine was producing false-negatives and only this allowed for some of the warning and error messages to be triggered. some files with mixed line endings were fixed | ||||
* | further fixes for void stripping. fixes tvoid. | Zahary Karadjov | 2013-05-26 | 1 | -20/+25 |
| | |||||
* | fix threading tests | Zahary Karadjov | 2013-05-26 | 1 | -8/+16 |
| | | | | | * more type names are valid expressions now * void is properly stripped off during generic instantiation | ||||
* | fix tforwardgeneric | Zahary Karadjov | 2013-05-26 | 1 | -2/+0 |
| | |||||
* | fixes #267 | Zahary Karadjov | 2013-05-26 | 1 | -19/+84 |
| | |||||
* | switch to a linked list of scopes | Zahary Karadjov | 2013-05-11 | 1 | -4/+4 |
| | |||||
* | Removes executable bit for text files. | Grzegorz Adam Hankiewicz | 2013-03-16 | 1 | -0/+0 |
| | |||||
* | merged upstream master | Zahary Karadjov | 2013-01-27 | 1 | -3/+3 |
|\ | |||||
| * | implemented generic multi methods | Araq | 2013-01-16 | 1 | -0/+1 |
| | | |||||
| * | some fixes for generic first class iterators | Araq | 2012-12-15 | 1 | -3/+3 |
| | | |||||
* | | remove any traces of the old global generics cache | Zahary Karadjov | 2013-01-27 | 1 | -4/+4 |
| | | |||||
* | | store the instantiation cache in the generic symbol | Zahary Karadjov | 2012-11-28 | 1 | -20/+16 |
|/ | |||||
* | implemented return type inference | Zahary Karadjov | 2012-10-03 | 1 | -3/+8 |
| | | | | | | Other fixes: * bind once is now the default for type classes as documented in the manual * fixes an issue in template overloading (erroneous ambiguity when different typedesc params were used) | ||||
* | improved support for typedesc values | Zahary Karadjov | 2012-09-25 | 1 | -34/+5 |
| | | | | | * can be stored in constants and variables (including in containers like sequences) * can be passed to and returned from macros | ||||
* | proc bodies can be expressions with a type | Araq | 2012-09-22 | 1 | -1/+1 |
| | |||||
* | fixes #194 | Araq | 2012-09-20 | 1 | -1/+17 |
| | |||||
* | made more tests green; fixes #201 | Araq | 2012-09-12 | 1 | -3/+4 |
| | |||||
* | term rewriting improvements | Araq | 2012-09-08 | 1 | -0/+1 |
| | |||||
* | implemented generic templates | Araq | 2012-08-27 | 1 | -1/+4 |
| | |||||
* | next steps to hygienic templates | Araq | 2012-08-20 | 1 | -2/+1 |
| | |||||
* | top level closures should work; transf is not a pass anymore; next steps for ↵ | Araq | 2012-08-13 | 1 | -2/+1 |
| | | | | first class iterator support | ||||
* | idetools: 'usages' and 'def' should work now; documented js backend | Araq | 2012-08-05 | 1 | -2/+2 |
| | |||||
* | 'addSon' for types deprecated for 'int literal type' analysis | Araq | 2012-07-09 | 1 | -1/+1 |
| | |||||
* | added proc annotations: macros invoked as pragmas | Araq | 2012-06-26 | 1 | -2/+2 |
| | |||||
* | somewhat working closures | Araq | 2012-06-19 | 1 | -1/+3 |
| | |||||
* | typedesc and expr params | Zahary Karadjov | 2012-03-31 | 1 | -1/+1 |
| | | | | | | | | | | | | types are now valid proc/template/macro params and you can overload over them: proc foo(T: typedesc) # accept any type proc foo(T: typedesc{int}) # overload specifically for int proc foo(T: typedesc{int or float or Callable}) # overload for any type matching the constraints expr{type} is a param expecting compile time value of the designated type (or type class). when typedesc or expr params are used with a proc, the proc will be instantiated once for each unique type/value used as parameter. | ||||
* | generic types can be used like type classes. distinct can be applied to type ↵ | Zahary Karadjov | 2012-03-25 | 1 | -3/+1 |
| | | | | classes. | ||||
* | expr params implemented for procs; paving the way for type classes | Zahary Karadjov | 2012-03-22 | 1 | -6/+38 |
| | |||||
* | clean separation of PNimrodNode and tyExpr | Araq | 2012-03-16 | 1 | -2/+3 |
| | |||||
* | year 2012 for most copyright headers | Araq | 2012-01-02 | 1 | -1/+1 |
| | |||||
* | proc arguments are in scope when the result type definition is being processed | Zahary Karadjov | 2011-12-09 | 1 | -1/+2 |
| | | | | | This is intended for type deduction depending on the arguments proc foo(x: type): type(expr(x)) | ||||
* | bugfixes: objects still invalid for constants; fixed a typo concerning ↵ | Araq | 2011-11-15 | 1 | -4/+3 |
| | | | | 'high' in eval context | ||||
* | lazy loading of body ast implemented | Araq | 2011-10-30 | 1 | -4/+7 |
| | |||||
* | compilation cache: mostly working; generics not yet | Araq | 2011-10-25 | 1 | -14/+13 |
| | |||||
* | bugfixes for generics; new threads implementation still broken | Araq | 2011-09-20 | 1 | -0/+15 |
| | |||||
* | modifyable results for generics; teventemitter works | Araq | 2011-08-09 | 1 | -2/+1 |
| |