summary refs log tree commit diff stats
path: root/compiler/ccgexprs.nim
Commit message (Collapse)AuthorAgeFilesLines
* fixes #178Araq2012-07-281-3/+3
|
* no range checks for conversion to unsigned (but I may reconsider this)Araq2012-07-251-1/+2
|
* fixes #172Araq2012-07-251-1/+1
|
* small bugfix: code generation for nil closuresAraq2012-07-251-17/+28
|
* DLLs should work again; fixes #169Araq2012-07-241-0/+2
|
* got rid of some mAddU64 etc. magicsAraq2012-07-201-5/+0
|
* removed nimdat in favor of per-module dat init procsZahary Karadjov2012-07-191-6/+1
|
* equality and hashing for closuresAraq2012-07-171-1/+8
|
* make tests green againAraq2012-07-171-1/+14
|
* improved unsigned supportAraq2012-07-141-33/+35
|
* fixes cast[int8] bugAraq2012-07-121-6/+0
|
* changed integer promotion rules; breaks bootstrapping and lots of codeAraq2012-07-081-2/+3
|
* proper indentation in the generated C codeZahary Karadjov2012-06-121-72/+72
|
* better support for unsigned integers.Zahary Karadjov2012-06-111-6/+6
|
* fix compilation errors when bootstrapping with C++Zahary Karadjov2012-06-041-3/+12
|
* Merge branch 'master' of github.com:Araq/Nimrod into upstreamZahary Karadjov2012-06-021-18/+18
|\
| * bugfix: field names of tuples are treated consistently in the C backendAraq2012-05-271-18/+18
| |
* | Added system.staticExec proc for executing external command at compile-timeZahary Karadjov2012-06-021-0/+2
|/
* C variables are created in their enclosing block instead of their enclosing ↵Zahary Karadjov2012-04-121-19/+19
| | | | function
* bugfix #100 againAraq2012-03-281-4/+4
|
* `do' keyword in the grammar for lambda blocksZahary Karadjov2012-02-101-1/+3
|
* further steps for closure supportAraq2012-02-061-4/+7
|
* further steps to closure supportAraq2012-02-061-4/+26
|
* pragma on/off improvements; endb rewrittenAraq2012-01-281-2/+2
|
* year 2012 for most copyright headersAraq2012-01-021-1/+1
|
* C code gen: generate even better code for the GCAraq2011-12-121-6/+13
|
* compiler takes advantage of 'new(Obj|New)RC1Araq2011-12-121-77/+84
|
* compiler generates volatile temps to keep C compiler from optimizing away ↵Araq2011-12-121-16/+28
| | | | stack roots
* codegen uses alias analysis to generate better codeAraq2011-12-101-5/+0
|
* alias analysis as required for the code gen and the HLOAraq2011-12-081-7/+0
|
* 'assert' is now implemented without compiler magicAraq2011-12-041-2/+2
|
* implemented 'let' statementAraq2011-11-291-2/+2
|
* fixes #31Araq2011-11-271-9/+3
|
* C codegen: generate nimKeepAlive calls at strategic places to keep the C ↵Araq2011-11-241-163/+1
| | | | compiler from optimizing away all stack roots
* unused constants are optimized awayAraq2011-11-221-1/+1
|
* bugfix: s[1..n] = @[] produced wrong C codeAraq2011-11-141-6/+8
|
* bugfix: code gen for constant sequencesAraq2011-11-021-2/+7
|
* better code generation for constant aggregatesAraq2011-11-021-6/+32
|
* lazy loading of body ast implementedAraq2011-10-301-1/+1
|
* compilation cache: various bugfixes; works for the compiler itselfAraq2011-10-271-2/+1
|
* much more efficient rod file generationAraq2011-10-181-11/+11
|
* code generator supports constant sequences; more consistent compile time ↵Araq2011-10-071-1/+24
| | | | evaluation
* implemented optional pragma for implicit discardAraq2011-09-241-1/+1
|
* l-values are preserved modulo type distinctionAraq2011-09-241-1/+5
|
* Multiple C lines corresponding to a single nimrod line are joined togetherZahary Karadjov2011-09-201-8/+8
| | | | | | | | | | | | | | | | | | | | | | This patch greatly improves the "step over" operation available in debuggers. In practice, there are often 4-8 lines of C code generated for each nimrod line Each such line will be responsible to a single step in the debugger that is a) not expected by the user b) taking the user to an incorrect line in the nimrod code To keep this working, all code generation should use the rope formatting facilities when producing new lines (i.e. $n and $N). New semantics for the format string are introduced: $n means "soft new line" that could be joined/broken when lineDir is enabled. $N means "hard new line" that will always appear as a new line. As an alternative to this approach, I also tested producing code like this: #line "code.nim" 154 foo = bar; \ foo(bar) \ This is better for readability of the final output, but unfortunately it didn't produce the desired result across all compilers/debuggers.
* Nimrod can now compile itself with --lineDir enabledZahary Karadjov2011-09-201-3/+3
|
* inlining of 'var openarray' iterators now workAraq2011-08-181-1/+1
|
* bugfix topenarrayrepr works againAraq2011-08-161-1/+2
|
* finally got rid of nkPassAsOpenArrayAraq2011-08-161-43/+35
|
* added xmltree.innerText; fixes #49Araq2011-08-151-24/+17
|