Nim/compiler
Paul Tan 1a50442c13 Generate deps file during C compilation
The "genDepend" command was previously taught how to generate a "deps"
file in 4910a87c6 (gendepend improvements; refs #5144). Such a deps file
is useful in integrating the Nim compiler with an external build system
or watch daemon, such that it's possible to only run the Nim compiler
when any of the source files are modified.

It's also useful to generate the deps file in the nimcache directory
during C compilation, without needing to re-run the compilation passes
with "genDepend". This would thus reduce overall project build times.
2017-08-25 17:45:33 +08:00
..
nimfix removed compiler internal list implementation (#5371) 2017-02-22 17:33:12 +01:00
plugins big compiler refactoring; avoid globals for multi method dispatcher generation 2017-02-22 16:27:52 +01:00
aliases.nim removed tyArrayConstr completely from the compiler; introduced tyAlias instead in preparation for further bugfixes 2016-11-14 23:18:30 +01:00
ast.nim distinguish between 'reorder' and 'noforward' 2017-07-26 08:20:11 +02:00
astalgo.nim minor code cleanup 2017-07-08 21:27:56 +02:00
bitsets.nim compiler: Trim .nim files trailing whitespace 2015-09-04 23:03:22 +02:00
canonicalizer.nim removed tyArrayConstr completely from the compiler; introduced tyAlias instead in preparation for further bugfixes 2016-11-14 23:18:30 +01:00
ccgcalls.nim minor codegen bugfix: don't use names for closures that are also mangled Nim names 2017-02-26 17:41:00 +01:00
ccgexprs.nim fixes #6234 2017-08-11 20:14:44 +02:00
ccgmerge.nim Merge branch 'devel' into sighashes 2016-12-01 10:06:41 +01:00
ccgstmts.nim closures have an object type field so that we can perform correct deepCopy() for the BoehmGC target 2017-07-22 11:10:52 +02:00
ccgthreadvars.nim C++ codegen: emit 'extern C' for importc'ed functions that we declare a prototype for 2017-02-14 14:39:53 +01:00
ccgtrav.nim codegen: do not produce empty loops; speeds up debug builds tremendously on Windows 2017-08-04 21:27:14 +02:00
ccgtypes.nim Make Nim gdb pretty print friendly (#6240) 2017-08-24 10:21:38 +02:00
ccgutils.nim a few tiny cleanups (#5712) 2017-05-29 09:42:26 +02:00
cgen.nim fixes #5989 2017-07-17 08:24:34 +02:00
cgendata.nim removed compiler internal list implementation (#5371) 2017-02-22 17:33:12 +01:00
cgmeth.nim Fixes #5946 (#6017) 2017-06-26 21:31:56 +02:00
commands.nim Make Nim gdb pretty print friendly (#6240) 2017-08-24 10:21:38 +02:00
condsyms.nim Introduce first class support for Android (#5772) 2017-08-06 02:18:15 +02:00
debuginfo.nim happy new year 2017-01-07 22:35:09 +01:00
depends.nim gendepend improvements; refs #5144 2017-01-06 13:11:17 +01:00
docgen.nim Do not generate Source/Edit without git in config 2017-07-31 20:54:57 +07:00
docgen2.nim big compiler refactoring; avoid globals for multi method dispatcher generation 2017-02-22 16:27:52 +01:00
evalffi.nim Remove expr/stmt (#5857) 2017-07-25 09:28:23 +02:00
evaltempl.nim Fix #4020; Better handling of templates within concepts 2017-06-20 11:29:42 +02:00
extccomp.nim cleaned up extccomp.nim 2017-07-17 11:42:26 +02:00
filter_tmpl.nim big refactoring: step 1 2016-10-31 15:34:44 +01:00
filters.nim big refactoring: step 1 2016-10-31 15:34:44 +01:00
forloops.nim compiler: Trim .nim files trailing whitespace 2015-09-04 23:03:22 +02:00
guards.nim overloading resolution for getAst; breaking change 2017-03-18 20:57:45 +01:00
hlo.nim fixes #5430 2017-02-26 00:32:07 +01:00
idents.nim remove en-dash from the language 2017-04-02 23:41:29 +02:00
idgen.nim remove unused stuff 2016-08-09 22:54:27 +08:00
importer.nim fixes #5185 2017-02-08 23:04:20 +01:00
installer.ini Introduce first class support for Android (#5772) 2017-08-06 02:18:15 +02:00
jsgen.nim fixes #6096 2017-07-17 16:43:10 +02:00
jstypes.nim fixes #6035 2017-06-30 12:01:51 +02:00
lambdalifting.nim closures have an object type field so that we can perform correct deepCopy() for the BoehmGC target 2017-07-22 11:10:52 +02:00
lexer.nim bugfix: keep the information of a raw float literal in the AST 2017-07-06 13:52:21 +02:00
lists.nim removed compiler internal list implementation (#5371) 2017-02-22 17:33:12 +01:00
llstream.nim use linenoise instead of GNU readline 2015-06-21 10:04:26 +02:00
lookups.nim compiler: better error messages (#5613) 2017-03-26 20:24:06 +02:00
lowerings.nim closures have an object type field so that we can perform correct deepCopy() for the BoehmGC target 2017-07-22 11:10:52 +02:00
magicsys.nim make tests green again 2016-11-01 07:16:07 +01:00
main.nim Generate deps file during C compilation 2017-08-25 17:45:33 +08:00
modulegraphs.nim big compiler refactoring; avoid globals for multi method dispatcher generation 2017-02-22 16:27:52 +01:00
modules.nim Fixes #5112 (Fix error messages raised when multiple modules have the same original name) (#5220) 2017-01-17 16:58:50 +01:00
msgs.nim Lineinfo change (#6084) 2017-07-17 08:12:15 +02:00
ndi.nim name mangling bugfixes; ndi file generation for debugger support 2017-02-03 09:49:36 +01:00
nim.cfg Remove docgen.nim's dependency on things being in path 2016-11-28 23:02:30 +00:00
nim.nim refactoring: explict config state instead of globals 2017-02-01 23:39:40 +01:00
nimblecmd.nim fixes #5752 2017-05-02 01:24:10 +02:00
nimconf.nim fixes #499 2017-07-22 16:52:58 +02:00
nimeval.nim removed compiler internal list implementation (#5371) 2017-02-22 17:33:12 +01:00
nimlexbase.nim compiler: Trim .nim files trailing whitespace 2015-09-04 23:03:22 +02:00
nimsets.nim compiler almost free of deprecated expr/stmt names 2016-07-30 16:34:42 +02:00
nodejs.nim Add "safety compilation". Improved, fixed messages 2015-06-04 07:33:27 +02:00
nversion.nim some progress on --symbolfiles:on 2016-11-02 08:39:51 +01:00
options.nim WIP: --gc:regions instead of --gc:stack 2017-08-13 02:51:00 +02:00
packagehandling.nim happy new year 2017-01-07 22:35:09 +01:00
parampatterns.nim support the full range of type modifiers when declaring concept vars and testing proc signatures 2017-03-24 16:58:15 +02:00
parser.nim Restore the old behavior of parsing "quote do:" 2017-08-19 08:57:43 +02:00
passaux.nim big compiler refactoring; avoid globals for multi method dispatcher generation 2017-02-22 16:27:52 +01:00
passes.nim distinguish between 'reorder' and 'noforward' 2017-07-26 08:20:11 +02:00
patterns.nim big compiler refactoring; avoid globals for multi method dispatcher generation 2017-02-22 16:27:52 +01:00
pbraces.nim support for external types with covariant generic params 2017-05-08 21:45:37 +03:00
platform.nim Introduce first class support for Android (#5772) 2017-08-06 02:18:15 +02:00
pluginsupport.nim fixes #3622 2015-12-04 23:43:03 +01:00
pragmas.nim distinguish between 'reorder' and 'noforward' 2017-07-26 08:20:11 +02:00
prefixmatches.nim nimsuggest: prefixes of abbreviations don't count 2017-03-20 10:56:15 +01:00
procfind.nim fixes #5161 2016-12-30 01:43:26 +01:00
readme.txt Nimrod renamed to Nim 2014-08-28 09:38:14 +02:00
renderer.nim when displaying proc signatures, don't render the implicit generic params 2017-03-24 16:59:47 +02:00
reorder.nim reorder pass: consider the 'using' statement; disabled debug output 2017-08-11 20:14:44 +02:00
rodread.nim refactoring complete: explicit ident cache 2016-10-31 19:47:20 +01:00
rodutils.nim Fixes #5821 (float32 literal comparison issue) (#5825) 2017-05-17 15:57:06 +02:00
rodwrite.nim big compiler refactoring; avoid globals for multi method dispatcher generation 2017-02-22 16:27:52 +01:00
ropes.nim fixes #4656; ropes.nim checks properly for file equality 2016-08-26 18:00:12 +02:00
saturate.nim compiler: Trim .nim files trailing whitespace 2015-09-04 23:03:22 +02:00
scriptconfig.nim removed compiler internal list implementation (#5371) 2017-02-22 17:33:12 +01:00
sem.nim introduce a pre-processing pass for the concept bodies 2017-06-20 11:29:42 +02:00
semasgn.nim introduce tyInferred for the unbound concept type params 2017-03-24 16:58:15 +02:00
semcall.nim fix #1017; fix #3309 2017-06-20 11:29:42 +02:00
semdata.nim introduce a pre-processing pass for the concept bodies 2017-06-20 11:29:42 +02:00
semdestruct.nim big compiler refactoring; avoid globals for multi method dispatcher generation 2017-02-22 16:27:52 +01:00
semexprs.nim fixes mitems iterator on vm. (issue with tuple value) 2017-08-19 08:58:57 +02:00
semfields.nim fix #5642 2017-04-07 19:28:52 +03:00
semfold.nim fix #1082 2017-06-20 11:29:42 +02:00
semgnrc.nim introduce a pre-processing pass for the concept bodies 2017-06-20 11:29:42 +02:00
seminst.nim Fix #5962 2017-06-20 11:29:42 +02:00
semmacrosanity.nim removed tyArrayConstr completely from the compiler; introduced tyAlias instead in preparation for further bugfixes 2016-11-14 23:18:30 +01:00
semmagic.nim introduce a pre-processing pass for the concept bodies 2017-06-20 11:29:42 +02:00
semobjconstr.nim Fixes #5965 (#6237) 2017-08-14 17:43:39 +02:00
semparallel.nim compiler almost free of deprecated expr/stmt names 2016-07-30 16:34:42 +02:00
sempass2.nim fixes #6067 2017-07-08 23:32:40 +02:00
semstmts.nim fixes anon procs created by macros 2017-07-11 18:07:34 +02:00
semtempl.nim Remove expr/stmt (#5857) 2017-07-25 09:28:23 +02:00
semtypes.nim fixes basic type alignement issue on i386 platform. (#6209) 2017-08-19 09:02:02 +02:00
semtypinst.nim fix #2730; fix #4880 2017-06-20 11:29:42 +02:00
service.nim refactoring complete: explicit ident cache 2016-10-31 19:47:20 +01:00
sighashes.nim fix compilation regression in alea 2017-04-16 13:42:33 +03:00
sigmatch.nim fix #5918 2017-08-19 08:57:43 +02:00
suggest.nim nimsuggest: suggest types in a type section 2017-03-14 11:21:35 +01:00
syntaxes.nim big refactoring: step 1 2016-10-31 15:34:44 +01:00
tccgen.nim nimrod is obsolete 2015-11-03 14:52:36 +01:00
transf.nim fixes #5618 2017-03-28 20:57:34 +02:00
trees.nim introduce a pre-processing pass for the concept bodies 2017-06-20 11:29:42 +02:00
treetab.nim compiler: Trim .nim files trailing whitespace 2015-09-04 23:03:22 +02:00
types.nim Fix #5983 2017-06-20 11:29:42 +02:00
typesrenderer.nim fixes #6030 (#6042) 2017-07-01 09:56:20 +02:00
vm.nim Vm fix zero extend proc ze/ze64 && toU32/toU16/toU8 (#5988) 2017-08-03 10:58:45 +02:00
vmdef.nim Vm fix zero extend proc ze/ze64 && toU32/toU16/toU8 (#5988) 2017-08-03 10:58:45 +02:00
vmdeps.nim Corrected tuple type to nkPar for unnamed tuples on getType (#6172) 2017-08-03 10:37:47 +02:00
vmgen.nim fix VM intsize for 32bits and smaller targetOS. (#6211) 2017-08-10 14:34:57 +02:00
vmhooks.nim stdlib and compiler don't use .immediate anymore 2016-07-29 23:51:01 +02:00
vmmarshal.nim removed tyArrayConstr completely from the compiler; introduced tyAlias instead in preparation for further bugfixes 2016-11-14 23:18:30 +01:00
vmops.nim added system.gorgeEx that includes the exitCode; refs #4874; fixes #1994 2017-01-07 02:38:26 +01:00
wordrecg.nim distinguish between 'reorder' and 'noforward' 2017-07-26 08:20:11 +02:00
writetracking.nim make the Nim compiler compile as C++ 2016-12-10 02:27:41 +01: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.