Nim/compiler
Zahary Karadjov d0edb1826b adds an option to interleave the generated code with snippets from the original source
Lines from the original source are outputted as comments next to line directives.
Hopefully, this will make debugging codegen problems easier.

Other changes:
The frame setup code now uses a single-line C macro. My motivation was to reduce
the noise in the generated output and make it easier to step over the boiler-plate
code, but counter-intuitively this also improved the overall compilation speed a
little bit so I applied the same treatment to line tracking too (this reduces the size of
the generated files and the explanation is that probably the I/O overhead dominates
the macro expansion costs).
2012-12-02 20:36:29 +02:00
..
c2nim syntax compatibility between do blocks and stmt blocks 2012-10-04 15:37:26 +03:00
pas2nim bugfix: c2nim and pas2nim work again 2012-09-26 02:22:22 +02:00
aliases.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
ast.nim track the "owner" heap object in the ref write barrier 2012-12-01 15:37:13 +02:00
astalgo.nim first steps towards term rewriting macros 2012-08-30 10:55:40 +02:00
bitsets.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
ccgcalls.nim first batch of rope code converted to rfmt 2012-11-28 01:15:13 +02:00
ccgexprs.nim track the "owner" heap object in the ref write barrier 2012-12-01 15:37:13 +02:00
ccgmerge.nim [caas] first version that actually works (still has a lot of logical memory leaks on recompilation) 2012-11-28 01:15:13 +02:00
ccgstmts.nim disables the compile-time rope formatting during bootstrapping 2012-11-28 01:15:14 +02:00
ccgthreadvars.nim more uint related fixes 2012-06-14 17:33:00 +03:00
ccgtrav.nim disables the compile-time rope formatting during bootstrapping 2012-11-28 01:15:14 +02:00
ccgtypes.nim disables the compile-time rope formatting during bootstrapping 2012-11-28 01:15:14 +02:00
ccgutils.nim adds an option to interleave the generated code with snippets from the original source 2012-12-02 20:36:29 +02:00
cgen.nim adds an option to interleave the generated code with snippets from the original source 2012-12-02 20:36:29 +02:00
cgendata.nim [caas] first version that actually works (still has a lot of logical memory leaks on recompilation) 2012-11-28 01:15:13 +02:00
cgmeth.nim next steps for exception tracking 2012-11-03 15:57:12 +01:00
charsets.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
commands.nim adds an option to interleave the generated code with snippets from the original source 2012-12-02 20:36:29 +02:00
condsyms.nim 'assert' hides EAssertionFailsure; stdlib makes use of 'tags' 2012-11-18 01:36:20 +01:00
crc.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
depends.nim CaaS in-memory caching 2012-11-28 01:15:13 +02:00
docgen.nim CaaS in-memory caching 2012-11-28 01:15:13 +02:00
docgen2.nim CaaS in-memory caching 2012-11-28 01:15:13 +02:00
ecmasgen.nim CaaS in-memory caching 2012-11-28 01:15:13 +02:00
evals.nim CaaS in-memory caching 2012-11-28 01:15:13 +02:00
evaltempl.nim bugfix: evalTemplateArgs 2012-10-14 12:02:57 +02:00
extccomp.nim [caas] first version that actually works (still has a lot of logical memory leaks on recompilation) 2012-11-28 01:15:13 +02:00
filter_tmpl.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
filters.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
hlo.nim term rewriting improvements 2012-09-08 15:43:21 +02:00
idents.nim syntax compatibility between do blocks and stmt blocks 2012-10-04 15:37:26 +03:00
idgen.nim next steps to hygienic templates 2012-08-20 08:44:17 +02:00
importer.nim CaaS in-memory caching 2012-11-28 01:15:13 +02:00
lambdalifting.nim 'return' for first class iterators 2012-11-26 08:47:57 +01:00
lexbase.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
lexer.nim adds an option to interleave the generated code with snippets from the original source 2012-12-02 20:36:29 +02:00
lists.nim preparations for making 'closure' the default calling convention for proc types 2012-07-16 23:00:57 +02:00
llstream.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
lookups.nim fixes #73 2012-09-23 01:18:13 +02:00
magicsys.nim temporary debugging code for the memory leak investigation 2012-11-28 01:15:14 +02:00
main.nim temporary debugging code for the memory leak investigation 2012-11-28 01:15:14 +02:00
msgs.nim adds an option to interleave the generated code with snippets from the original source 2012-12-02 20:36:29 +02:00
nimconf.nim caas is now drivable through stdin 2012-11-28 01:15:13 +02:00
nimrod.cfg caas is now drivable through stdin 2012-11-28 01:15:13 +02:00
nimrod.dot big repo cleanup 2011-04-12 01:13:42 +02:00
nimrod.ini nimbuild should work again 2012-11-01 01:11:48 +01:00
nimrod.nim CaaS in-memory caching 2012-11-28 01:15:13 +02:00
nimsets.nim made compiler more robust for idetools; implemented idetools.usages 2012-07-30 23:07:19 +02:00
nversion.nim bugfix: c2nim and pas2nim work again 2012-09-26 02:22:22 +02:00
options.nim adds an option to interleave the generated code with snippets from the original source 2012-12-02 20:36:29 +02:00
parampatterns.nim term rewriting improvements 2012-09-08 15:43:21 +02:00
parsecfg.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
parser.nim CaaS in-memory caching 2012-11-28 01:15:13 +02:00
passaux.nim CaaS in-memory caching 2012-11-28 01:15:13 +02:00
passes.nim CaaS in-memory caching 2012-11-28 01:15:13 +02:00
patterns.nim tr macros now documented 2012-09-10 19:34:16 +02:00
pbraces.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
pendx.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
platform.nim added some support for Haiku 2012-07-29 00:23:37 +02:00
pragmas.nim almost every pragma is allowed in a 'push' pragma 2012-11-20 23:58:45 +01:00
procfind.nim improved support for typedesc values 2012-09-25 02:03:15 +03:00
readme.txt big repo cleanup 2011-04-12 01:13:42 +02:00
renderer.nim made 'shared' a keyword 2012-11-22 07:53:50 +01:00
rodread.nim [caas] first version that actually works (still has a lot of logical memory leaks on recompilation) 2012-11-28 01:15:13 +02:00
rodutils.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
rodwrite.nim CaaS in-memory caching 2012-11-28 01:15:13 +02:00
ropes.nim adds an option to interleave the generated code with snippets from the original source 2012-12-02 20:36:29 +02:00
saturate.nim changed integer promotion rules; breaks bootstrapping and lots of code 2012-07-08 21:03:47 +02:00
sem.nim store the instantiation cache in the generic symbol 2012-11-28 01:15:13 +02:00
semcall.nim distinguish properly between nkOpen and nkClosedSymChoice 2012-08-26 02:47:17 +02:00
semdata.nim temporary debugging code for the memory leak investigation 2012-11-28 01:15:14 +02:00
semexprs.nim 'return' for first class iterators 2012-11-26 08:47:57 +01:00
semfold.nim the is operator now works with type classes and type variables 2012-10-03 01:59:49 +03:00
semgnrc.nim bugfix: threads should work again; fixes #220 2012-10-12 23:34:43 +02:00
seminst.nim store the instantiation cache in the generic symbol 2012-11-28 01:15:13 +02:00
semmagic.nim improved support for typedesc values 2012-09-25 02:03:15 +03:00
sempass2.nim doc2 improvements; small lexer bugfix: backslashes in comments 2012-11-20 17:46:11 +01:00
semstmts.nim temporary debugging code for the memory leak investigation 2012-11-28 01:15:14 +02:00
semtempl.nim allow 'mixin' in generics 2012-10-12 17:13:58 +02:00
semthreads.nim bugfixes for thread analysis 2012-11-22 01:36:57 +01:00
semtypes.nim next steps for first class iterators 2012-11-26 02:43:32 +01:00
semtypinst.nim store the instantiation cache in the generic symbol 2012-11-28 01:15:13 +02:00
service.nim [caas] first version that actually works (still has a lot of logical memory leaks on recompilation) 2012-11-28 01:15:13 +02:00
sigmatch.nim next steps for first class iterators 2012-11-26 02:43:32 +01:00
suggest.nim cas improvements 2012-10-24 08:43:17 +02:00
syntaxes.nim CaaS in-memory caching 2012-11-28 01:15:13 +02:00
tccgen.nim bugfix: wrong assertions for C++ code generation; some solaris support; first steps to an effect system 2012-10-30 22:29:03 +01:00
transf.nim caas is now drivable through stdin 2012-11-28 01:15:13 +02:00
trees.nim term rewriting macros fully implemented; still buggy 2012-09-03 00:55:44 +02:00
treetab.nim fixes 259 2012-11-21 21:00:54 +01:00
types.nim first steps for 'not nil' annotation 2012-11-25 11:03:14 +01:00
wordrecg.nim made 'shared' a keyword 2012-11-22 07:53:50 +01:00

This directory contains the Nimrod compiler written in Nimrod. Note that this
code has been translated from a bootstrapping version written in Pascal, so
the code is **not** a poster child of good Nimrod code.