Nim/compiler
Timothee Cour fa7c1aa864
move PNode.comment to a side channel, reducing memory usage during compilation by a factor 1.25x (#18760)
* move PNode.comment so a side channel, reducing memory usage

* fix a bug

* fixup

* use sfHasComment to speedup comment lookups

* fix for IC

* Update compiler/parser.nim

Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
2021-08-29 15:54:07 +02:00
..
ic [minor]use addInt and addFloat (#18733) 2021-08-24 17:16:12 +02:00
nimfix change --hint[X] => --hint:X in nim repo (avoids shell quoting issues) (#18085) 2021-05-26 09:51:48 +02:00
plugins IC: next steps (#16550) 2021-01-07 20:26:40 +01:00
aliases.nim
ast.nim move PNode.comment to a side channel, reducing memory usage during compilation by a factor 1.25x (#18760) 2021-08-29 15:54:07 +02:00
astalgo.nim add comment to astalgo.debug (#18594) 2021-07-27 09:37:11 +02:00
astmsgs.nim properly fix #10053 ; FieldDefect msg now shows discriminant value + lineinfo, in all backends (c,vm,js) (#11955) 2021-08-13 09:35:48 +02:00
bitsets.nim
btrees.nim ORC: progress (#18000) 2021-05-12 22:00:37 +02:00
ccgcalls.nim fixes #18558 again (#18586) 2021-07-26 14:15:55 +02:00
ccgexprs.nim allow building 1.4.0 from devel (#18708) 2021-08-18 19:33:11 +02:00
ccgliterals.nim
ccgmerge_unused.nim IC: green tests (#17311) 2021-03-19 16:53:38 +01:00
ccgreset.nim cString => cSourceString; tyCString => tyCstring so that error msgs show cstring, not cString (#17744) 2021-04-17 11:14:09 +02:00
ccgstmts.nim fixes #17085 [backport:1.2] (#17101) 2021-02-19 12:30:39 +01:00
ccgthreadvars.nim fix #16752: threadvar now works with importcpp types; osx now uses native TLS (--tlsEmulation:off), which can be orders of magnitude faster (#16750) 2021-01-27 22:35:43 +01:00
ccgtrav.nim
ccgtypes.nim more minor bootstrapping cleanups (#18759) 2021-08-28 08:27:56 +02:00
ccgutils.nim Fix #17412 (#17560) 2021-03-29 21:16:11 +02:00
cgen.nim more minor bootstrapping cleanups (#18759) 2021-08-28 08:27:56 +02:00
cgendata.nim IC: green tests (#17311) 2021-03-19 16:53:38 +01:00
cgmeth.nim IC: final implementation steps (#16801) 2021-01-25 20:52:26 +01:00
closureiters.nim real bugfix for #17170 (#18171) 2021-06-04 16:20:47 +02:00
cmdlinehelper.nim fix setCommand so it behaves like regular nim invocation (#18555) 2021-07-22 08:00:29 +02:00
commands.nim move PNode.comment to a side channel, reducing memory usage during compilation by a factor 1.25x (#18760) 2021-08-29 15:54:07 +02:00
concepts.nim Make error message for empty new-styled concept more descriptive (#18506) 2021-07-18 10:49:03 +02:00
condsyms.nim ORC: support for custom =trace procs (#18459) 2021-07-09 15:15:49 +02:00
debuginfo.nim
debugutils.nim add more APIs to compiler/debugutils; re-export it (#18243) 2021-06-18 15:52:08 +02:00
depends.nim genDepend: fix for module names that are reserved DOT keywords (#18392) 2021-06-30 07:29:10 +02:00
dfa.nim fixes #18665 DFA generator bug (#18676) 2021-08-11 17:19:23 +02:00
docgen.nim replace wrt with proper word (#18724) 2021-08-22 06:21:53 +02:00
docgen2.nim docgen: move to shared RST state (fix #16990) (#18256) 2021-06-20 09:50:03 +02:00
enumtostr.nim big steps torwards an efficient, simple IC implementation (#16543) 2021-01-02 07:30:39 +01:00
errorhandling.nim misc fixes: build_all.sh, changelog (#17601) 2021-04-01 08:48:44 +02:00
evalffi.nim cString => cSourceString; tyCString => tyCstring so that error msgs show cstring, not cString (#17744) 2021-04-17 11:14:09 +02:00
evaltempl.nim fix #16993, #18054, #17835 runnableExamples now works with templates and nested templates (#18082) 2021-06-02 09:02:14 -07:00
extccomp.nim --cc:env now works correctly to assign linker executable, allowing to cross-compile/run for windows on osx via wine (#18672) 2021-08-11 11:42:01 +02:00
filter_tmpl.nim
filters.nim
gorgeimpl.nim
guards.nim clean up old codes (#17071) 2021-02-17 19:26:08 +01:00
hlo.nim
idents.nim IC: next steps (#16550) 2021-01-07 20:26:40 +01:00
importer.nim followup #18362: make UnusedImport work robustly (#18366) 2021-06-27 20:39:16 +02:00
index.nim
injectdestructors.nim fixes #18570 (#18599) 2021-07-27 12:48:27 +02:00
installer.ini compiler/installer.ini: package cacert.pem on Windows [backport:1.2] (#17172) 2021-02-24 17:57:19 +01:00
int128.nim CIs: attempt to use csources_v1 (#16282) 2021-04-21 07:41:33 +02:00
isolation_check.nim fixes #18326 (#18335) 2021-06-23 23:31:17 +02:00
jsgen.nim allow building 1.4.0 from devel (#18708) 2021-08-18 19:33:11 +02:00
jstypes.nim jsgen improve spacing (#18048) 2021-05-20 15:48:46 +02:00
lambdalifting.nim use more meaningful name than "workaround14447" (#18237) 2021-06-11 10:07:23 +02:00
layouter.nim fix #12155, improve nimpretty's handling of pragmas (#17353) 2021-03-12 15:34:42 +01:00
lexer.nim [minor]remove unnecessary stringify (#18419) 2021-07-02 14:38:01 +02:00
liftdestructors.nim fixes #17893 (#18485) 2021-07-13 14:17:59 +02:00
liftlocals.nim fixes #11225; generic sandwich problems; [backport:1.2] (#17255) 2021-03-09 20:19:24 +01:00
lineinfos.nim fix RFC #341: dot-like operators are now parsed with same precedence as . (#18711) 2021-08-25 06:50:40 +02:00
linter.nim add astmsgs; add declared in msg for usage lint errors (#17961) 2021-05-08 06:43:52 +02:00
llstream.nim Use readable escape sequences (#17241) 2021-03-03 07:15:07 +01:00
lookups.nim [minor] break loops if it is ambiguous (#18745) 2021-08-27 11:50:06 +02:00
lowerings.nim big steps torwards an efficient, simple IC implementation (#16543) 2021-01-02 07:30:39 +01:00
macrocacheimpl.nim IC: next steps (#16632) 2021-01-12 09:36:51 +01:00
magicsys.nim cString => cSourceString; tyCString => tyCstring so that error msgs show cstring, not cString (#17744) 2021-04-17 11:14:09 +02:00
main.nim rst: add missing line/column info for some warnings (#18383) 2021-07-20 08:32:22 +02:00
modulegraphs.nim improvements to hint:processing: show import stack, distinguish nims, show includes etc (#18372) 2021-06-30 07:16:31 +02:00
modulepaths.nim Add changes required by Nimble lock file support (#12104) 2021-07-15 22:13:01 +02:00
modules.nim improvements to hint:processing: show import stack, distinguish nims, show includes etc (#18372) 2021-06-30 07:16:31 +02:00
msgs.nim [wip]better hint message for JS (#18704) 2021-08-18 15:53:52 +02:00
ndi.nim
nilcheck.nim CIs: attempt to use csources_v1 (#16282) 2021-04-21 07:41:33 +02:00
nim.cfg rename nimFpRoundtrips => nimPreviewFloatRoundtrip (#18566) 2021-07-23 14:57:47 -07:00
nim.nim cross compilation targetting windows now supports nim r: nim r -d:mingw main (#18682) 2021-08-16 09:32:12 +02:00
nimblecmd.nim Add changes required by Nimble lock file support (#12104) 2021-07-15 22:13:01 +02:00
nimconf.nim simplify extccomp.nim json logic via jsonutils; fix #18084 (#18100) 2021-06-03 22:29:45 +02:00
nimeval.nim import foo {.all.} reboot (#17706) 2021-04-16 09:16:39 +02:00
nimlexbase.nim get rid of the warnings during bootstrapping (#18741) 2021-08-24 17:15:26 +02:00
nimpaths.nim CIs: attempt to use csources_v1 (#16282) 2021-04-21 07:41:33 +02:00
nimsets.nim
nodejs.nim
nversion.nim
optimizer.nim fixes #11225; generic sandwich problems; [backport:1.2] (#17255) 2021-03-09 20:19:24 +01:00
options.nim implements overloadable enum values; WIP (#18470) 2021-07-28 12:46:28 +02:00
packagehandling.nim IC: next steps (#16550) 2021-01-07 20:26:40 +01:00
parampatterns.nim
parser.nim move PNode.comment to a side channel, reducing memory usage during compilation by a factor 1.25x (#18760) 2021-08-29 15:54:07 +02:00
passaux.nim improvements to hint:processing: show import stack, distinguish nims, show includes etc (#18372) 2021-06-30 07:16:31 +02:00
passes.nim IC: backend: remember produced type information (#17440) 2021-03-23 08:52:00 +01:00
pathutils.nim move tests under the compiler directory to testament (#16096) 2020-11-25 07:48:27 +01:00
patterns.nim remove conditionals on nimHasUserErrors, nimNoNilSeqs2, nimNoNilSeqs (#16861) 2021-01-29 14:30:24 +01:00
platform.nim closes #18433 (#18484) 2021-07-13 12:44:29 +02:00
pluginsupport.nim
pragmas.nim properly fix #10053 ; FieldDefect msg now shows discriminant value + lineinfo, in all backends (c,vm,js) (#11955) 2021-08-13 09:35:48 +02:00
prefixmatches.nim move tests under the compiler directory to testament (#16096) 2020-11-25 07:48:27 +01:00
procfind.nim
readme.md
renderer.nim properly fix #10053 ; FieldDefect msg now shows discriminant value + lineinfo, in all backends (c,vm,js) (#11955) 2021-08-13 09:35:48 +02:00
renderverbatim.nim runnableExamples now show originating location in stacktraces on failure (#18457) 2021-07-09 11:41:28 +02:00
reorder.nim ast: add getPIdent (#17684) 2021-04-09 08:00:13 +02:00
rodutils.nim make -d:nimFpRoundtrips work consistently in vm vs rt, fix #18400, etc (#18531) 2021-07-20 22:13:52 +02:00
ropes.nim
saturate.nim
scriptconfig.nim fix setCommand so it behaves like regular nim invocation (#18555) 2021-07-22 08:00:29 +02:00
sem.nim implements overloadable enum values; WIP (#18470) 2021-07-28 12:46:28 +02:00
semcall.nim fix a typo (#18715) 2021-08-19 21:54:45 +08:00
semdata.nim refactoring: removed dead code (#18567) 2021-07-24 00:30:02 +02:00
semexprs.nim implements overloadable enum values; WIP (#18470) 2021-07-28 12:46:28 +02:00
semfields.nim IC: next steps (#16550) 2021-01-07 20:26:40 +01:00
semfold.nim get rid of the warnings during bootstrapping (#18741) 2021-08-24 17:15:26 +02:00
semgnrc.nim Fixed const tuples in inferred generics (#18598) 2021-07-27 09:36:59 +02:00
seminst.nim fixes #18030 (#18415) 2021-07-01 17:35:04 +02:00
semmacrosanity.nim cString => cSourceString; tyCString => tyCstring so that error msgs show cstring, not cString (#17744) 2021-04-17 11:14:09 +02:00
semmagic.nim Add optional recursive arg to distinctBase (v2) (#18659) 2021-08-09 08:51:39 +02:00
semobjconstr.nim refactoring: removed dead code (#18567) 2021-07-24 00:30:02 +02:00
semparallel.nim minor typos (#17668) 2021-04-07 19:54:28 +02:00
sempass2.nim mitigates #12815 (#18557) 2021-07-22 11:59:21 +02:00
semstmts.nim fix: var a{.foo.} = expr inside templates (refs #15920) (except when foo is overloaded) (#13869) 2021-08-11 12:17:17 +02:00
semtempl.nim fix: var a{.foo.} = expr inside templates (refs #15920) (except when foo is overloaded) (#13869) 2021-08-11 12:17:17 +02:00
semtypes.nim followup #18759: make compiler build cleanly with 0 warnings/hints (#18764) 2021-08-28 16:34:27 -07:00
semtypinst.nim ORC: improvements (#17993) 2021-05-12 07:15:05 +02:00
sighashes.nim get rid of the warnings during bootstrapping (#18741) 2021-08-24 17:15:26 +02:00
sigmatch.nim sigmatch: support optional params with last block arg(s) (#18631) 2021-08-20 10:13:03 +02:00
sinkparameter_inference.nim big steps torwards an efficient, simple IC implementation (#16543) 2021-01-02 07:30:39 +01:00
sizealignoffsetimpl.nim cString => cSourceString; tyCString => tyCstring so that error msgs show cstring, not cString (#17744) 2021-04-17 11:14:09 +02:00
sourcemap.nim cString => cSourceString; tyCString => tyCstring so that error msgs show cstring, not cString (#17744) 2021-04-17 11:14:09 +02:00
spawn.nim add colon (#17834) 2021-04-24 18:33:29 +01:00
strutils2.nim Correct all eggs (#15906) 2020-11-10 21:53:25 +01:00
suggest.nim get rid of the warnings during bootstrapping (#18741) 2021-08-24 17:15:26 +02:00
syntaxes.nim -d:nimDebug: calls doAssert false instead of quit (#17739) 2021-04-17 11:49:54 +02:00
tccgen.nim
transf.nim cString => cSourceString; tyCString => tyCstring so that error msgs show cstring, not cString (#17744) 2021-04-17 11:14:09 +02:00
trees.nim Revert "fix #16185 (#16195)" (#16197) 2020-11-30 23:36:38 +01:00
treetab.nim treetab: tiny cleanup (#17929) 2021-05-09 00:56:37 +02:00
typeallowed.nim cString => cSourceString; tyCString => tyCstring so that error msgs show cstring, not cString (#17744) 2021-04-17 11:14:09 +02:00
types.nim fixes #18550 (#18553) 2021-07-21 16:55:50 +02:00
typesrenderer.nim remove all mentions of doc2, jsondoc2 (except 1 mentioning the alias) (#15683) 2020-11-26 11:54:18 -08:00
varpartitions.nim fixes #18287 (#18346) 2021-06-25 06:22:52 +02:00
vm.nim properly fix #10053 ; FieldDefect msg now shows discriminant value + lineinfo, in all backends (c,vm,js) (#11955) 2021-08-13 09:35:48 +02:00
vmconv.nim make system random work in VM (#17059) 2021-02-17 11:52:46 +01:00
vmdef.nim ORC: progress (#18000) 2021-05-12 22:00:37 +02:00
vmdeps.nim getType now works with tyInferred (arising from concepts); refs #18220 (#18241) 2021-06-12 21:35:12 +02:00
vmgen.nim allow building 1.4.0 from devel (#18708) 2021-08-18 19:33:11 +02:00
vmhooks.nim make -d:nimFpRoundtrips work consistently in vm vs rt, fix #18400, etc (#18531) 2021-07-20 22:13:52 +02:00
vmmarshal.nim cString => cSourceString; tyCString => tyCstring so that error msgs show cstring, not cString (#17744) 2021-04-17 11:14:09 +02:00
vmops.nim followup #18759: make compiler build cleanly with 0 warnings/hints (#18764) 2021-08-28 16:34:27 -07:00
vmprofiler.nim
wordrecg.nim CIs: attempt to use csources_v1 (#16282) 2021-04-21 07:41:33 +02:00

Nim Compiler

  • 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.

See Internals of the Nim Compiler for more information.