summary refs log tree commit diff stats
path: root/compiler/ast.nim
Commit message (Collapse)AuthorAgeFilesLines
* first implementation of write tracking and escape analysis; still disabledAraq2015-08-311-2/+3
|
* implemented macros.getImplAraq2015-08-211-1/+1
|
* fixes #3079, fixes #1146, fixes #2879Araq2015-07-221-0/+2
|
* Linebreak TMagic by rough categoryJacek Sieka2015-07-121-35/+57
|
* fixes #3054Araq2015-07-051-1/+2
|
* macros: Introduce sameType(a, b) for node typesAdam Strzelecki2015-07-031-1/+2
| | | | | | | | | | | | | Previously introduced node comparison `==` was working somehow wrong on nodes returned from getType(a), comparing just ids of the symbols. Recently introduced `==` change 47dce2688633fad840a2f5e4073c531f1cd640ca started comparing symbol nodes pointer-wise, thus strictly. Since getType(a) always creates new symbol pointing to the type, comparing two such nodes using `==` always returns false, even they point to the same type. That is why we need a new sameType macro to be able to tell if these nodes point to the same type.
* implements varargs[untyped]; refs #2545; to be documentedAraq2015-07-021-1/+4
|
* fixes #2935Araq2015-07-011-0/+3
|
* Merge pull request #2896 from r-ku/I64-magics-goneAndreas Rumpf2015-06-121-12/+10
|\ | | | | I64 magics gone
| * Removed magics: mAbsI64rku2015-06-101-2/+2
| |
| * Removed magics: mBitnotI64rku2015-06-101-2/+2
| |
| * Removed magics: mEqI64 mLtI64 mLeI64rku2015-06-101-2/+2
| |
| * Removed magics: mShrI64, mShlI64, mBitandI64, mBitorI64, mBitxorI64rku2015-06-101-2/+0
| | | | | | | | Author: rku <rokups@zoho.com>
| * Removed magics: mAddI64, mSubI64, mMulI64, mDivI64, mModI64rku2015-06-101-4/+4
| | | | | | | | Author: rku <rokups@zoho.com>
* | Merge pull request #2892 from apense/patch-6Andreas Rumpf2015-06-101-0/+3
|\ \ | | | | | | Fixes #2886 (moves compiler function into the compiler)
| * | Moved negative indexing operator hereapense2015-06-091-0/+3
| |/ | | | | Only used here (not in standard library)
* / securehash: Keep module name consistentAdam Strzelecki2015-06-091-1/+1
|/ | | | | | 1. All other modules don't use underscore, why this should be different? 2. Wrap some imports to 80 column
* Merge pull request #2780 from flaviut/cleanup-crcAndreas Rumpf2015-06-091-1/+1
|\ | | | | Use SHA1 instead of CRC
| * Rename crc module to "secure_hash"Flaviu Tamas2015-05-231-1/+1
| |
* | fixes #2854Araq2015-06-061-1/+1
| |
* | Merge pull request #2859 from nanoant/patch/norewrite-pragmaAndreas Rumpf2015-06-051-0/+1
|\ \ | | | | | | {.noRewrite.} pragma for term rewriting
| * | Introduce {.noRewrite.} expr pragma disabling TRAdam Strzelecki2015-06-021-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Term rewriting macros/templates are currently greedy and they will rewrite as long as there is a match. So there was no way to ensure some rewrite happens only once, eg. when rewriting term to same term plus extra content. With new macro we can actually prevent further rewriting on marked expr or stmts, eg. with given example echo(...) will be rewritten just once: template pwnEcho{echo(x)}(x: expr) = {.noRewrite.}: echo("pwned!") echo "ab"
* | | Dropped 'T' from typespdw2015-06-041-1/+1
|/ /
* / Minor cosmetic changes.yglukhov2015-05-261-17/+5
|/
* added '..^' and '..<' operators; 'nil' is allowed for 'len'; added plugin ↵Araq2015-04-221-4/+6
| | | | system to the compiler
* cleaned up some magics to make room for new magics; added '..<' and '..^' ↵Araq2015-04-221-5/+5
| | | | templates
* fixes #2505, fixes #1853, fixes #2522Araq2015-04-201-1/+3
|
* Merge branch 'devel' of https://github.com/Araq/Nim into develAraq2015-04-201-1/+1
|\
| * importing of C++ nested generics like std::vector<T>::iterator, using the ↵Zahary Karadjov2015-04-131-1/+1
| | | | | | | | apostrophe operator
* | implements .goto support for variablesAraq2015-04-191-0/+1
|/
* fixes #1691Araq2015-04-111-0/+7
|
* Get rid of deprecation warningsdef2015-04-071-3/+3
|
* first implementation of overloading of '='; missing: rewriting let/var sectionsAraq2015-04-061-1/+10
|
* GC-safety error messages are useful nowAraq2015-04-041-0/+1
|
* don't store the scope for routinesAraq2015-04-041-1/+1
|
* disallow negative indexingAraq2015-03-271-0/+1
|
* implemented a[^1] notationAraq2015-03-261-1/+1
|
* fixes #1805Araq2015-03-211-5/+3
|
* codegen doesn't produce line tracing commands anymore; fixes #1344Araq2015-03-211-4/+6
|
* 'constructor' pragma for C++ supportAraq2015-03-181-6/+4
|
* fixes #2257Araq2015-03-161-2/+6
|
* fixes #2304Araq2015-03-161-0/+2
|
* code cleanupAraq2015-03-121-9/+9
|
* fixes #2316Araq2015-03-111-1/+1
|
* fixes #2220; #2219; breaks #2022; for #2022 callsite needs to be usedAraq2015-03-101-1/+1
|
* Merge pull request #2239 from Maxdamantus/develAndreas Rumpf2015-03-071-0/+1
|\ | | | | interpret `tuple` as a class and `tuple[]` as the empty tuple, enable syntax for anonymous tuples
| * interpret `tuple` as a class and `tuple[]` as the empty tupleMax Zerzouri2015-03-061-0/+1
| | | | | | | | | | | | | | | | When the indentation syntax is allowed it is always interpreted as a tuple: type Unit = tuple
* | fixes #1940; code breakage! stricter template evaluationAraq2015-03-071-193/+190
|/
* don't use stdout for nimsuggest server modeAraq2015-02-271-1/+1
|
* implements a type API for macrosAraq2015-02-241-7/+7
|