summary refs log tree commit diff stats
path: root/compiler/cgen.nim
Commit message (Collapse)AuthorAgeFilesLines
* Added system.program_results for controlling the exit code of the program ↵Zahary Karadjov2011-11-101-2/+2
| | | | | | | | under normal circumstances Implemented operators like +=, -=, etc for ordinals, floats and string Programs using the UnitTest module will now report the number of failed tests as the exit code of test runs (0 for successful run)
* lazy loading of body ast implementedAraq2011-10-301-1/+1
|
* constant folding for cnst[i] and cnst.attrAraq2011-10-291-1/+1
|
* compilation cache: DLL interfacing now worksAraq2011-10-271-8/+13
|
* compilation cache: small fixes; methods still not workingAraq2011-10-231-1/+6
|
* rod files: next trivial examples workingAraq2011-10-221-8/+11
|
* trivial change scenario works with symbol filesAraq2011-10-221-21/+28
|
* got rid of gToTypeInfoIdAraq2011-10-211-2/+0
|
* got rid of gGeneratedSymsAraq2011-10-211-9/+16
|
* further steps for incremental C code generationAraq2011-10-211-32/+32
|
* first steps to C file merge operation for incremental compilationAraq2011-10-211-111/+34
|
* bugfixes for ROD file generation; nimcache dir is now flatAraq2011-10-201-10/+18
|
* much more efficient rod file generationAraq2011-10-181-1/+1
|
* implemented optional pragma for implicit discardAraq2011-09-241-2/+2
|
* Multiple C lines corresponding to a single nimrod line are joined togetherZahary Karadjov2011-09-201-11/+38
| | | | | | | | | | | | | | | | | | | | | | 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-1/+1
|
* support for C++ code generation; importcpp and importobjc pragmasAraq2011-08-071-3/+4
|
* bugfix: forwarding of generic procs now worksAraq2011-07-301-20/+17
|
* bugfixes; step one for 'var T' as return type supportAraq2011-07-281-1/+1
|
* bugfix: proper cache for generic instantiationsAraq2011-07-211-1/+1
|
* importCompilerProc pragma introduced because the hacks for typeinfo.nim did ↵Araq2011-06-271-4/+8
| | | | not suffice
* code gen bugfixes; marshal.nim implementedAraq2011-06-261-2/+3
|
* compiler can emulate thread local variablesAraq2011-06-151-72/+34
|
* intsets are now a proper module and part of the stdlibAraq2011-06-141-12/+12
|
* got rid of nstrtabs and nhashes modulesAraq2011-06-101-1/+1
|
* first steps to thread local heapsAraq2011-06-021-6/+16
|
* further steps for thread support; bootstrapping should require unzip C ↵Araq2011-05-161-16/+14
| | | | sources and ./build.sh
* deprecated system.copy: use system.substr insteadAraq2011-05-141-5/+5
|
* gc tweaking to gain a few percent of performanceAraq2011-05-071-2/+2
|
* got rid of some arcane module namesAraq2011-04-211-1/+1
|
* big repo cleanupAraq2011-04-121-0/+1032