Nim/compiler
Reimer Behrends 68b7779bc7 Fixes various issues with shallow copying.
* The {.shallow.} pragma is now properly respected for objects and
  tuples that are not handled by genGenericAsgn(). Mirroring the
  decision in generic assignments, whether an assignment is shallow
  depends on the destination of the assignment, but not the source.
* String literals and complex inline constants are now properly assigned
  a location kind of locData.
* Assignments from a locData source will now force deep copying to
  occur, even if shallowCopy or {.shallow.} is being used. This
  avoids potential crashes from `shallowCopy s, "xxx"` or from
  `shallowCopy t, ("a", "b")`.
2013-12-01 19:15:43 +01:00
..
c2nim c2nim: added some scope operator parsing 2013-09-11 00:07:39 +02:00
pas2nim c2nim, pas2nim compile again 2013-05-07 17:19:36 +02:00
aliases.nim year 2012 for most copyright headers 2012-01-02 23:07:35 +01:00
ast.nim support for multiple test variables and var qualifiers in user-defined type classes 2013-11-13 02:24:08 +02:00
astalgo.nim minor improvement towards tgenericshardcases 2013-08-28 01:10:51 +03:00
babelcmd.nim Changed babel path handling. 2013-05-02 00:07:59 +01:00
bitsets.nim Removes executable bit for text files. 2013-03-16 23:53:07 +01:00
ccgcalls.nim preparations for the new symbol binding rules for clean templates 2013-05-18 10:05:06 +02:00
ccgexprs.nim Fixes various issues with shallow copying. 2013-12-01 19:15:43 +01:00
ccgmerge.nim nimrod dump can now produce a machine readable json report 2013-05-01 20:46:05 +03:00
ccgstmts.nim implemented top level asm statements 2013-10-07 06:38:04 +02:00
ccgthreadvars.nim Revert "Revert "bugfix: emulated thread vars used in combination with the mark & sweep GC"" 2013-08-19 01:27:05 +03:00
ccgtrav.nim Revert "Revert "bugfix: emulated thread vars used in combination with the mark & sweep GC"" 2013-08-19 01:27:05 +03:00
ccgtypes.nim remerge "allow void as field type" 2013-08-19 01:29:01 +03:00
ccgutils.nim made some tests green; implemented 'from module import nil' 2013-05-19 23:17:16 +02:00
cgen.nim 'noStackFrame' implies 'naked' in the generated C code 2013-10-06 00:10:45 +02:00
cgendata.nim work-in-progress for compiling generics in their owner module 2013-08-19 01:45:16 +03:00
cgmeth.nim fixes #332 2013-03-17 23:40:03 +01:00
charsets.nim Removes executable bit for text files. 2013-03-16 23:53:07 +01:00
commands.nim support for --cs:partial 2013-09-24 09:32:49 +02:00
condsyms.nim implemented computed goto support 2013-08-13 11:21:02 +02:00
crc.nim Removes executable bit for text files. 2013-03-16 23:53:07 +01:00
depends.nim Removes executable bit for text files. 2013-03-16 23:53:07 +01:00
docgen.nim next steps for the new parser/grammar 2013-04-20 01:59:39 +02:00
docgen2.nim CaaS in-memory caching 2012-11-28 01:15:13 +02:00
evalffi.nim first steps to implement object construction expressions 2013-03-07 01:52:17 +01:00
evals.nim support for multiple modules of the same name; niminst supports 'platforms'; minor bugfixes 2013-09-24 16:07:07 +02:00
evaltempl.nim bugfix: evalTemplateArgs 2012-10-14 12:02:57 +02:00
extccomp.nim always call the linker; fixes #660 2013-11-19 15:41:20 +01:00
filter_tmpl.nim better treatment of var/let/const/type sections in the templating system 2013-03-29 15:28:13 +01:00
filters.nim Removes executable bit for text files. 2013-03-16 23:53:07 +01:00
guards.nim Merge branch 'master' of github.com:Araq/Nimrod 2013-07-20 20:18:21 +02:00
hlo.nim should fix newly introduced bugs wrt TR macros 2013-09-18 02:03:56 +02:00
idents.nim support for --cs:partial 2013-09-24 09:32:49 +02:00
idgen.nim next steps to hygienic templates 2012-08-20 08:44:17 +02:00
importer.nim the compiler can now deal with multiple modules of the same name 2013-09-26 17:34:46 +02:00
jsgen.nim fixes #616 2013-10-10 00:55:54 +02:00
jstypes.nim new JS code generator 2013-04-28 23:41:10 +02:00
lambdalifting.nim check the owners of generic instantiations properly and fix tinvalidclosure 2013-08-19 01:45:16 +03:00
lexer.nim Merge branch 'type-classes' into upstream 2013-09-03 03:14:56 +03:00
lists.nim Removes executable bit for text files. 2013-03-16 23:53:07 +01:00
llstream.nim Removes executable bit for text files. 2013-03-16 23:53:07 +01:00
lookups.nim small REPL improvements 2013-06-28 16:40:01 +02:00
magicsys.nim fixes #578 2013-08-30 22:47:14 +02:00
main.nim Take into account dirty buffers in suggest output; Fixes zah/nimrod.vim#14 2013-08-07 18:58:46 +03:00
modules.nim 'modules' module from 'main'; minor bugfixes 2013-07-20 20:17:23 +02:00
msgs.nim simple unit test and better documentation for the user defined type classes 2013-11-17 22:50:26 +02:00
nimconf.nim fixes #459 2013-08-31 11:22:49 +02:00
nimeval.nim first steps to a new evaluation engine 2013-07-24 21:39:39 +02:00
nimlexbase.nim nimrod dump can now produce a machine readable json report 2013-05-01 20:46:05 +03:00
nimrod.cfg disabled M&S GC again 2013-09-10 00:46:02 +02:00
nimrod.dot Removes executable bit for text files. 2013-03-16 23:53:07 +01:00
nimrod.ini support for multiple modules of the same name; niminst supports 'platforms'; minor bugfixes 2013-09-24 16:07:07 +02:00
nimrod.nim Removes executable bit for text files. 2013-03-16 23:53:07 +01:00
nimsets.nim fixed and documented computedGoto pragma 2013-08-22 08:38:47 +02:00
nversion.nim the compiler can now deal with multiple modules of the same name 2013-09-26 17:34:46 +02:00
options.nim bugfix: package names should not contain '.' 2013-10-07 21:36:31 +02:00
parampatterns.nim implemented large parts of the 'not nil' checking 2013-06-09 23:29:43 +02:00
parsecfg.nim nimrod dump can now produce a machine readable json report 2013-05-01 20:46:05 +03:00
parser.nim support for multiple test variables and var qualifiers in user-defined type classes 2013-11-13 02:24:08 +02:00
passaux.nim Removes executable bit for text files. 2013-03-16 23:53:07 +01:00
passes.nim fixes #429 and tstmtexpr 2013-05-12 21:01:39 +03:00
patterns.nim improvements for TR macros 2013-09-17 23:43:07 +02:00
pbraces.nim Removes executable bit for text files. 2013-03-16 23:53:07 +01:00
pendx.nim Removes executable bit for text files. 2013-03-16 23:53:07 +01:00
platform.nim --os:standalone works again 2013-06-30 21:15:28 +02:00
pragmas.nim fixes #576 2013-09-18 02:58:18 +02:00
pretty.nim first version of the debug GC; doesn't work yet 2013-10-01 08:44:09 +02:00
procfind.nim merged the persistent scopes work with the delayed proc compilation strategy 2013-05-12 14:41:32 +03:00
readme.txt Removes executable bit for text files. 2013-03-16 23:53:07 +01:00
renderer.nim implemented 'import a as b' 2013-09-24 09:36:31 +02:00
rodread.nim the compiler can now deal with multiple modules of the same name 2013-09-26 17:34:46 +02:00
rodutils.nim Removes executable bit for text files. 2013-03-16 23:53:07 +01:00
rodwrite.nim the compiler can now deal with multiple modules of the same name 2013-09-26 17:34:46 +02:00
ropes.nim Removes executable bit for text files. 2013-03-16 23:53:07 +01:00
saturate.nim changed integer promotion rules; breaks bootstrapping and lots of code 2012-07-08 21:03:47 +02:00
sem.nim simple unit test and better documentation for the user defined type classes 2013-11-17 22:50:26 +02:00
semcall.nim fixes #588 2013-09-10 23:49:53 +02:00
semdata.nim simple unit test and better documentation for the user defined type classes 2013-11-17 22:50:26 +02:00
semdestruct.nim get rid of the SymTab* procs in astalgo 2013-05-12 00:49:00 +03:00
semexprs.nim simple unit test and better documentation for the user defined type classes 2013-11-17 22:50:26 +02:00
semfold.nim don't mess with semfold, use vars instead 2013-09-26 15:10:54 -05:00
semgnrc.nim fixes #531 2013-07-24 23:07:28 +02:00
seminst.nim Experimental support for delayed instantiation of generics 2013-08-23 01:10:20 +03:00
semmagic.nim implemented delegators and improved the error messages of unmatched type classes 2013-08-26 23:29:24 +03:00
sempass2.nim fixes #534 2013-08-07 00:01:58 +03:00
semstmts.nim fixes #663 2013-11-19 15:11:44 +01:00
semtempl.nim Merge branch 'master' of github.com:Araq/Nimrod 2013-05-14 00:59:07 +02:00
semthreads.nim 'noStackFrame' implies 'naked' in the generated C code 2013-10-06 00:10:45 +02:00
semtypes.nim support for multiple test variables and var qualifiers in user-defined type classes 2013-11-13 02:24:08 +02:00
semtypinst.nim 'noStackFrame' implies 'naked' in the generated C code 2013-10-06 00:10:45 +02:00
service.nim -d:nocaas mode for easier bootstrapping on exotic OSes (Haiku) 2013-09-01 15:54:32 +02:00
sigmatch.nim simple unit test and better documentation for the user defined type classes 2013-11-17 22:50:26 +02:00
suggest.nim Take into account dirty buffers in suggest output; Fixes zah/nimrod.vim#14 2013-08-07 18:58:46 +03:00
syntaxes.nim Removes executable bit for text files. 2013-03-16 23:53:07 +01:00
tccgen.nim Removes executable bit for text files. 2013-03-16 23:53:07 +01:00
transf.nim improvements for TR macros 2013-09-17 23:43:07 +02:00
trees.nim implemented large parts of the 'not nil' checking 2013-06-09 23:29:43 +02:00
treetab.nim Removes executable bit for text files. 2013-03-16 23:53:07 +01:00
types.nim better better fix for Issue #629 Recursive generic types not working 2013-10-30 16:09:00 -07:00
vm.nim cooler quote for c2nim 2013-10-10 00:45:15 +02:00
vmdef.nim cooler quote for c2nim 2013-10-10 00:45:15 +02:00
vmdeps.nim docgen: more newlines in the output to support primitive postprocessors 2013-08-29 23:18:02 +02:00
vmgen.nim implemented opcTypeTrait 2013-08-22 19:28:34 +02:00
wordrecg.nim implemented the using statement 2013-08-31 19:40:36 +03: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.