summary refs log tree commit diff stats
path: root/compiler/semmagic.nim
Commit message (Collapse)AuthorAgeFilesLines
* 'nil' as a statement is deprecated, use an empty 'discard' insteadAraq2014-01-191-1/+1
|
* Merge branch 'upstream' into develZahary Karadjov2013-12-291-8/+7
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: compiler/ccgutils.nim compiler/msgs.nim compiler/sem.nim compiler/semexprs.nim compiler/seminst.nim compiler/semmagic.nim compiler/semstmts.nim compiler/semtypes.nim compiler/semtypinst.nim compiler/sigmatch.nim compiler/types.nim compiler/vmgen.nim lib/core/macros.nim lib/system.nim tests/reject/tenummix.nim web/news.txt
| * make more tests greenZahary Karadjov2013-12-291-4/+3
| |
| * static params: expr[T] is now static[T]Zahary Karadjov2013-12-191-1/+1
| | | | | | | | | | | | | | This introduces tyStatic and successfully bootstraps and handles few simple test cases. Static params within macros are no longer treated as PNimrodNodes - they are now equivalent to constants of the designated type.
* | case consistency: next stepsAraq2013-12-291-1/+1
| |
* | case consistency part 4Araq2013-12-271-7/+7
| |
* | new VM: globals kinda workAraq2013-12-131-1/+3
| |
* | new VM: improvementsAraq2013-12-121-11/+6
| |
* | compiler bootstraps with new VMAraq2013-10-151-0/+17
|/
* implemented delegators and improved the error messages of unmatched type classesZahary Karadjov2013-08-261-0/+1
|
* Experimental support for delayed instantiation of genericsZahary Karadjov2013-08-231-1/+1
| | | | | | | | | | | | | | | | | | | | 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.
* get rid of ImportTablePos and ModuleTablePosZahary Karadjov2013-05-121-2/+3
|
* test-runner for caas multi-step testsZahary Karadjov2013-05-041-1/+2
|
* added system.localsAraq2013-03-211-1/+29
|
* improved support for typedesc valuesZahary Karadjov2012-09-251-2/+6
| | | | | * can be stored in constants and variables (including in containers like sequences) * can be passed to and returned from macros
* distinguish properly between nkOpen and nkClosedSymChoiceAraq2012-08-261-3/+9
|
* bindSym suffices; no 'bind' for macros anymoreAraq2012-08-251-0/+19
|
* better error handling for better idetools supportAraq2012-07-291-1/+1
|
* better overloading capabilities for 'shallowCopy'; little bugfix for ↵Araq2012-07-291-0/+2
| | | | 'system.compiles'
* changed integer promotion rules; breaks bootstrapping and lots of codeAraq2012-07-081-0/+6
|
* Added system.staticExec proc for executing external command at compile-timeZahary Karadjov2012-06-021-14/+0
|
* the foundations of a type traits module; better error messages for expr, ↵Zahary Karadjov2012-04-061-0/+11
| | | | typedesc and typeclasses params
* some bugfixes for symbolfilesAraq2012-03-231-1/+1
|
* pragma blocks; fixed line information issue with user defined assertionsAraq2012-01-171-0/+18
|
* year 2012 for most copyright headersAraq2012-01-021-1/+1
|
* codegen uses alias analysis to generate better codeAraq2011-12-101-1/+3
|
* alias analysis as required for the code gen and the HLOAraq2011-12-081-0/+36