Nim/compiler
Zahary Karadjov fe124ceadc Disable the new generic params handling for immediate template and macros
Since immediate templates are not subjected to the standard sigmatching
algorithm, they will have a number of deficiencies when it comes to generic
params: Type dependencies between the parameters won't be honoured
and the bound generic symbols won't be resolvable within their bodies.
We could try to fix this, but it may be wiser to just deprecate immediate
templates and macros now that we have working untyped parameters.

Disabling the new features is admittedly not the greatest way to handle
this situations as it introduces inconsistency in the language, but at least
it makes the code backwards-compatible with the previous version of the
compiler instead of triggering more serious problems.
2015-08-02 23:58:22 +03:00
..
nimfix renamed writeln to writeLine in compiler 2015-06-19 01:45:12 -05:00
nimsuggest Removed nimsuggest from this repo. 2015-06-04 23:25:29 +01:00
plugins Hopefully fixes nimsuggest building against the compiler package. 2015-06-04 23:07:57 +01:00
aliases.nim updated the compiler to use the new symbol names 2014-08-28 23:48:42 +02:00
ast.nim fixes #3079, fixes #1146, fixes #2879 2015-07-22 16:32:56 +02:00
astalgo.nim renamed writeln to writeLine in compiler 2015-06-19 01:45:12 -05:00
bitsets.nim Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
canonicalizer.nim compiler_ropes: ropeToStr -> $ 2015-04-01 22:32:15 +08:00
ccgcalls.nim fixes #3144 2015-07-26 21:07:11 +02:00
ccgexprs.nim fixes #1832 2015-07-24 01:04:45 +02:00
ccgmerge.nim Get rid of deprecation warnings 2015-04-07 15:47:18 +02:00
ccgstmts.nim fixes #2963 2015-07-22 01:21:42 +02:00
ccgthreadvars.nim Get rid of deprecation warnings 2015-04-07 15:47:18 +02:00
ccgtrav.nim Get rid of deprecation warnings 2015-04-07 15:47:18 +02:00
ccgtypes.nim fixes #2823 2015-07-24 01:04:40 +02:00
ccgutils.nim fixes #2551; fixes #2212; breaks bootstrapping in debug mode; bootstrap with -d:release 2015-04-25 23:16:57 +02:00
cgen.nim gc:none works again 2015-07-26 22:03:52 +02:00
cgendata.nim Get rid of deprecation warnings 2015-04-07 15:47:18 +02:00
cgmeth.nim Merge branch 'devel' into bigbreak 2014-11-03 22:50:55 +01:00
commands.nim List warnings & hints via --(hints|warnings):list 2015-07-03 14:05:00 +02:00
condsyms.nim implements varargs[untyped]; refs #2545; to be documented 2015-07-02 16:18:11 +02:00
depends.nim Get rid of deprecation warnings 2015-04-07 15:47:18 +02:00
docgen.nim Dropped 'T' from types 2015-06-04 13:15:07 +02:00
docgen2.nim Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
evaltempl.nim Disable the new generic params handling for immediate template and macros 2015-08-02 23:58:22 +03:00
extccomp.nim Merge pull request #3020 from flaviut/rename-crc-to-hash 2015-07-05 00:41:13 +02:00
filter_tmpl.nim Replaced deprecated repeatChar() with repeat() or spaces(). 2015-03-04 03:30:43 +01:00
filters.nim Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
forloops.nim Removed magics: mEqI64 mLtI64 mLeI64 2015-06-10 10:25:36 +03:00
guards.nim Removed magics: mEqI64 mLtI64 mLeI64 2015-06-10 10:25:36 +03:00
hlo.nim Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
idents.nim Dropped 'T' from types 2015-06-04 13:15:07 +02:00
idgen.nim renamed writeln to writeLine in compiler 2015-06-19 01:45:12 -05:00
importer.nim prepare for upcoming parsing change of unary operators 2015-03-22 09:31:15 +01:00
installer.ini Removed duplicate 'mipsel' from installer.ini. Ref #3164. 2015-08-01 13:43:51 +01:00
jsgen.nim Merge pull request #3147 from yglukhov/js-emit 2015-08-02 11:06:13 +02:00
jstypes.nim Get rid of deprecation warnings 2015-04-07 15:47:18 +02:00
lambdalifting.nim fixes #3054 2015-07-05 15:00:48 +02:00
lexer.nim fixes #2909 2015-06-15 00:56:20 +02:00
lists.nim Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
llstream.nim use linenoise instead of GNU readline 2015-06-21 10:04:26 +02:00
lookups.nim Rewrite in order to not introduce a new node kind. 2015-04-05 15:46:56 +01:00
lowerings.nim Merge branch 'more_concurrency' into devel 2015-06-30 12:50:24 +02:00
magicsys.nim implemented 'guard' annotation 2014-09-21 18:39:00 +02:00
main.nim Reset terminal colors before running compiled program 2015-07-10 00:48:11 +02:00
modules.nim CRC -> Hash 2015-07-03 10:13:45 -04:00
msgs.nim don't reset the terminal when --stdout is active 2015-07-16 15:26:04 +02:00
nim.nim Turn GC_getStatistics into hintGCStats 2015-07-03 14:05:00 +02:00
nim.nim.cfg fixed the tester; more tests green 2015-03-10 12:32:48 +01:00
nimblecmd.nim Introduce NotesVerbosity defining verbosity levels 2015-07-03 12:37:42 +02:00
nimconf.nim Introduce NotesVerbosity defining verbosity levels 2015-07-03 12:37:42 +02:00
nimeval.nim Make nimeval compile 2015-01-12 23:04:53 +01:00
nimlexbase.nim Replaced deprecated repeatChar() with repeat() or spaces(). 2015-03-04 03:30:43 +01:00
nimsets.nim Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
nodejs.nim Add "safety compilation". Improved, fixed messages 2015-06-04 07:33:27 +02:00
nversion.nim Happy new year! 2015-01-06 15:26:33 +01:00
options.nim Added absolute path support to options.findFile 2015-07-21 09:58:26 +06:00
parampatterns.nim fix #2585 properly 2015-04-22 20:33:06 +02:00
parser.nim Parser: Inline expr pragmas with parenthesis 2015-06-02 21:58:14 +02:00
passaux.nim Introduce NotesVerbosity defining verbosity levels 2015-07-03 12:37:42 +02:00
passes.nim implemented {.noforward:on.} for type sections; useful for c2nim generated wrappers; to be documented 2015-07-08 11:49:34 +02:00
patterns.nim Introduce {.noRewrite.} expr pragma disabling TR 2015-06-02 21:38:53 +02:00
pbraces.nim Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
platform.nim Add arm64 support (untested) 2015-07-31 23:57:50 +02:00
plugins.nim added '..^' and '..<' operators; 'nil' is allowed for 'len'; added plugin system to the compiler 2015-04-22 12:04:11 +02:00
pragmas.nim fixes #3171 2015-08-02 02:55:59 +02:00
procfind.nim Fix #1561 2014-10-29 18:57:03 -04:00
readme.txt Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
renderer.nim source code renderer doesn't produce trailing whitespace anymore 2015-07-12 13:33:23 +02:00
rodread.nim small steps for making --symbolFiles:on work again 2015-07-20 13:43:59 +02:00
rodutils.nim Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
rodwrite.nim small steps for making --symbolFiles:on work again 2015-07-20 13:43:59 +02:00
ropes.nim compiler_ropes: more lib_ropes porting 2015-04-08 23:30:03 +08:00
saturate.nim Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
sem.nim fixes #3158 2015-08-02 02:56:00 +02:00
semasgn.nim overloading of '=' works 2015-04-06 23:21:52 +02:00
semcall.nim fix #1858 again; restores the support for static macro params 2015-08-02 23:58:22 +03:00
semdata.nim fixes #2585 2015-04-22 20:25:11 +02:00
semdestruct.nim fixes #2420; negative indexing for slicing is obsolete (breaking change!) 2015-03-28 00:15:04 +01:00
semexprs.nim fixes #3079, fixes #1146, fixes #2879 2015-07-22 16:32:56 +02:00
semfields.nim fixes #2134 2015-02-20 20:01:25 +01:00
semfold.nim fixes #3099 2015-07-21 19:00:48 +02:00
semgnrc.nim interpret tuple as a class and tuple[] as the empty tuple 2015-03-06 12:20:15 +13:00
seminst.nim fix #1858 again; restores the support for static macro params 2015-08-02 23:58:22 +03:00
semmacrosanity.nim fixes #2603 2015-04-26 22:44:05 +02:00
semmagic.nim system.locals is now a plugin for education 2015-04-24 02:08:06 +02:00
semparallel.nim disjoint checker works with the new countup iterators 2015-03-14 01:26:32 +01:00
sempass2.nim fixes #3032 2015-07-01 13:35:58 +02:00
semstmts.nim implemented {.noforward:on.} for type sections; useful for c2nim generated wrappers; to be documented 2015-07-08 11:49:34 +02:00
semtempl.nim minor refactoring for big fixes to come 2015-07-24 01:04:42 +02:00
semtypes.nim fixes #3052 2015-08-02 02:56:02 +02:00
semtypinst.nim fixes #3112 2015-07-14 01:37:09 +02:00
service.nim CRC -> Hash 2015-07-03 10:13:45 -04:00
sigmatch.nim fix recently introduced regressions 2015-07-22 18:49:18 +02:00
suggest.nim changed from parseEnum to direct copy 2015-05-13 18:34:29 +05:00
syntaxes.nim Introduce NotesVerbosity defining verbosity levels 2015-07-03 12:37:42 +02:00
tccgen.nim Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
testability.nim distinguish between 'defined' and 'declared' 2014-08-11 20:38:28 +02:00
transf.nim fixes #3054 2015-07-05 15:00:48 +02:00
trees.nim fixes #2985 2015-06-25 11:42:27 +02:00
treetab.nim Dropped 'T' from types 2015-06-04 13:15:07 +02:00
types.nim implements varargs[untyped]; refs #2545; to be documented 2015-07-02 16:18:11 +02:00
typesrenderer.nim interpret tuple as a class and tuple[] as the empty tuple 2015-03-06 12:20:15 +13:00
vm.nim Disable the new generic params handling for immediate template and macros 2015-08-02 23:58:22 +03:00
vmdef.nim macros: Introduce sameType(a, b) for node types 2015-07-03 11:11:10 +02:00
vmdeps.nim staticExec now supports caching 2015-07-15 22:00:44 +02:00
vmgen.nim Disable the new generic params handling for immediate template and macros 2015-08-02 23:58:22 +03:00
vmhooks.nim Happy new year! 2015-01-06 15:26:33 +01:00
vmmarshal.nim marshalling can be done at compile-time 2015-04-25 23:17:00 +02:00
vmops.nim system.locals is now a plugin for education 2015-04-24 02:08:06 +02:00
wordrecg.nim Introduce {.noRewrite.} expr pragma disabling TR 2015-06-02 21:38:53 +02:00

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