Nim/compiler
PMunch 9a49451124
Remove volatiles when compiling with ARC/ORC (#19545)
This removes volatiles on ARC/ORC targets in NimMain and PreMainInner.
This avoids an issue where they couldn't be optimised out on
microcontrollers leading to larger code. Since the stack bottom doesn't
have to be initialised this way when using ARC or ORC (or None, which is
also covered by this PR) these can be safely removed.
2022-02-25 10:43:03 +01:00
..
ic [minor]use addInt and addFloat (#18733) 2021-08-24 17:16:12 +02:00
nimfix [backport] use old style hints in .cfg files (#18917) 2021-09-29 11:14:47 +02:00
plugins IC: next steps (#16550) 2021-01-07 20:26:40 +01:00
aliases.nim Fixed objects being erroneously zeroed out before object construction (#12814) [backport] 2019-12-05 17:31:51 +01:00
ast.nim nvro don't touch cdecl types [backport: 1.6] (#19461) 2022-01-28 09:53:42 +01: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 bitsets.nim: cleanup (#19361) 2022-01-11 10:16:51 +01:00
btrees.nim ORC: progress (#18000) 2021-05-12 22:00:37 +02:00
ccgcalls.nim don't use a temp for addr [backport: 1.6] (#19503) 2022-02-08 08:34:44 +01:00
ccgexprs.nim fixes an old ARC bug: the produced copy/sink operations don't copy the hidden type field for objects with enabled inheritance; fixes #19205 [backport:1.6] (#19232) 2021-12-09 22:23:16 +01:00
ccgliterals.nim Removed lib/system/allocators.nim. seqs_v2 and strs_v2 now uses allocShared0. (#13190) 2020-01-23 14:25:22 +01:00
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 nvro don't touch cdecl types [backport: 1.6] (#19461) 2022-01-28 09:53:42 +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 allow old styled RTTI for arc/orc (#15331) 2020-09-16 14:57:01 +02:00
ccgtypes.nim nvro don't touch cdecl types [backport: 1.6] (#19461) 2022-01-28 09:53:42 +01:00
ccgutils.nim Fix #17412 (#17560) 2021-03-29 21:16:11 +02:00
cgen.nim Remove volatiles when compiling with ARC/ORC (#19545) 2022-02-25 10:43:03 +01:00
cgendata.nim Removes deprecated {.injectStmt.}. Fixes #18666 (#18984) 2021-10-13 11:09:45 +02: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 undefine C symbols in JS backend [backport:1.6] (#19437) 2022-02-04 17:10:24 -05:00
commands.nim setjump => setjmp [backport: 1.2] (#19496) 2022-02-06 08:51:03 +01:00
concepts.nim Make error message for empty new-styled concept more descriptive (#18506) 2021-07-18 10:49:03 +02:00
condsyms.nim fixes #19078 [backport] (#19090) 2021-11-02 16:30:59 +01:00
debuginfo.nim happy new year 2017-01-07 22:35:09 +01:00
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 [backport] arc: improve compile time of (nested) loops (#18890) 2021-09-24 14:59:48 +02:00
docgen.nim Document links repect --out in .idx file (#19543) 2022-02-24 15:16:46 -05: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 compile pragma: cache the result sooner (#19554) 2022-02-24 08:31:40 +01:00
filter_tmpl.nim fix wrong name (rnimsyn => renderer; pnimsyn => parser; scanner => lexer) (#18895) 2021-09-25 13:22:00 +02:00
filters.nim Cosmetic compiler cleanup (#12718) 2019-11-28 17:13:04 +01:00
gorgeimpl.nim Fixed #12337, leaking pipe after gorge (#12339) 2019-10-03 00:48:31 -04:00
guards.nim this ensures libp2p continues to compile [backport] (#18908) 2021-09-27 19:25:00 +02:00
hlo.nim explicit ID generation for easier IC (#15559) 2020-10-25 08:50:47 +01:00
idents.nim IC: next steps (#16550) 2021-01-07 20:26:40 +01:00
importer.nim fixes a converter handling regression that caused private converters to leak into client modules; fixes #19213; [backport:1.6] (#19229) 2021-12-09 13:56:51 +01:00
index.nim walkDirRecFilter, update doc CI filter, compiler/index.nim for docs + various other fixes (#14501) 2020-06-01 19:21:41 +02:00
injectdestructors.nim fixes #18570 (#18599) 2021-07-27 12:48:27 +02:00
installer.ini make choosenim work on windows [backport] (#18993) 2021-10-14 23:55:05 +08:00
int128.nim CIs: attempt to use csources_v1 (#16282) 2021-04-21 07:41:33 +02:00
isolation_check.nim deprecate unsafeAddr; extend addr (#19373) 2022-01-16 11:08:38 +01:00
jsgen.nim Optimize lent in JS [backport:1.6] (#19393) 2022-01-17 13:03:40 +01:00
jstypes.nim jsgen improve spacing (#18048) 2021-05-20 15:48:46 +02:00
lambdalifting.nim closes #18690; make view types stricter [backport] (#18891) 2021-09-24 16:27:34 +02:00
layouter.nim fix #12155, improve nimpretty's handling of pragmas (#17353) 2021-03-12 15:34:42 +01:00
lexer.nim fix wrong name (rnimsyn => renderer; pnimsyn => parser; scanner => lexer) (#18895) 2021-09-25 13:22:00 +02:00
liftdestructors.nim fixes an old ARC bug: the produced copy/sink operations don't copy the hidden type field for objects with enabled inheritance; fixes #19205 [backport:1.6] (#19232) 2021-12-09 22:23:16 +01:00
liftlocals.nim fixes #11225; generic sandwich problems; [backport:1.2] (#17255) 2021-03-09 20:19:24 +01:00
lineinfos.nim fix broken CI (#19472) 2022-01-31 13:49:20 +01: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 after a candidate is added to seqs (#18770) 2021-08-31 13:32:37 +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
md5_old.nim Use openarray of bytes in md5 (#19307) 2022-01-15 13:19:05 +01:00
modulegraphs.nim Use openarray of bytes in md5 (#19307) 2022-01-15 13:19:05 +01: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 fix open file leak when running --debugger:native (#13832) 2020-04-01 17:48:17 +02:00
nilcheck.nim CIs: attempt to use csources_v1 (#16282) 2021-04-21 07:41:33 +02:00
nim.cfg [backport] use old style hints in .cfg files (#18917) 2021-09-29 11:14:47 +02:00
nim.nim Remove trailing space in nim r command; Amend one error message (#19487) 2022-02-18 17:24:42 -05:00
nimblecmd.nim Add changes required by Nimble lock file support (#12104) 2021-07-15 22:13:01 +02:00
nimconf.nim fix wrong name (rnimsyn => renderer; pnimsyn => parser; scanner => lexer) (#18895) 2021-09-25 13:22:00 +02:00
nimeval.nim Added setGlobalValue to VM api (#19007) 2021-10-17 16:24:43 +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 init checks and 'out' parameters (#14521) 2020-06-23 10:53:57 +02:00
nodejs.nim Improve error message when NodeJS is not installed and 'nim js -r' is run (#18978) 2021-10-12 15:41:30 +02:00
nversion.nim Fix spellings (#12277) [backport] 2019-09-27 07:02:54 +02:00
optimizer.nim correct the comments (#19322) 2022-01-04 11:10:46 +01:00
options.nim update copyright year (#19381) 2022-01-13 14:43:35 +01:00
packagehandling.nim IC: next steps (#16550) 2021-01-07 20:26:40 +01:00
parampatterns.nim fix term rewriting with sideeffect (#19410) 2022-01-19 12:37:30 +01:00
parser.nim Allow full commands and blocks in type sections (#19181) 2022-01-02 07:29:55 +01: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 correct typos (#19485) 2022-02-03 11:15:46 +08:00
patterns.nim fix a typo (canonilization => canonicalization) (#18914) 2021-09-28 03:05:22 -04:00
platform.nim Add support for LoongArch (#19223) 2021-12-09 14:00:33 +01:00
pluginsupport.nim refactoring: fewer global variables 2018-05-27 19:19:12 +02:00
pragmas.nim fixes #19078 [backport] (#19090) 2021-11-02 16:30:59 +01:00
prefixmatches.nim move tests under the compiler directory to testament (#16096) 2020-11-25 07:48:27 +01:00
procfind.nim Fix forward declarations in shadow scope contexts (#15386) 2020-09-22 18:24:13 +02:00
readme.md refactor: renamed readme to readme.md (#14283) 2020-05-11 13:50:40 +02:00
renderer.nim fix wrong name (rnimsyn => renderer; pnimsyn => parser; scanner => lexer) (#18895) 2021-09-25 13:22:00 +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 Cosmetic compiler cleanup (#12718) 2019-11-28 17:13:04 +01:00
saturate.nim fix warnings for deprecated low and high (#15291) 2020-09-11 01:04:07 +02:00
scriptconfig.nim fix setCommand so it behaves like regular nim invocation (#18555) 2021-07-22 08:00:29 +02:00
sem.nim fixes 'lent T' inside object constructor [backport] (#18911) 2021-09-27 22:23:31 +02:00
semcall.nim Fixed distinct composite type class proc borrowing (#18904) 2021-10-26 11:29:07 +02:00
semdata.nim implements https://github.com/nim-lang/RFCs/issues/407 (#18793) 2021-09-03 21:52:24 +02:00
semexprs.nim Fixed object field access of static objects in generics (#19283) [backport] 2021-12-23 07:12:56 +01:00
semfields.nim IC: next steps (#16550) 2021-01-07 20:26:40 +01:00
semfold.nim allow HSlice bounded by constants of distinct types (#19219) [backport:1.2] 2021-12-06 20:38:23 +01:00
semgnrc.nim fixes #18769 (#18790) 2021-09-03 15:18:55 +02:00
seminst.nim Fixed distinct composite type class proc borrowing (#18904) 2021-10-26 11:29:07 +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 deprecate unsafeAddr; extend addr (#19373) 2022-01-16 11:08:38 +01:00
semobjconstr.nim misc bugfixes [backport:1.2] (#19203) 2021-12-04 07:42:34 +01:00
semparallel.nim minor typos (#17668) 2021-04-07 19:54:28 +02:00
sempass2.nim fixes #19159 [backport:1.6] (#19210) 2021-12-04 07:44:26 +01:00
semstmts.nim nvro don't touch cdecl types [backport: 1.6] (#19461) 2022-01-28 09:53:42 +01:00
semtempl.nim New/better macro pragmas, mark some as experimental (#19406) 2022-01-20 20:57:50 +01:00
semtypes.nim Don't reject types directly on AST (#19407) 2022-01-19 12:38:14 +01:00
semtypinst.nim test whether it is unnecessary (#18893) 2021-10-14 09:23:36 +02:00
sighashes.nim Use openarray of bytes in md5 (#19307) 2022-01-15 13:19:05 +01:00
sigmatch.nim No longer segfault when using a typeclass with a self referencing type (#19467) 2022-02-02 09:38:21 +01:00
sinkparameter_inference.nim big steps torwards an efficient, simple IC implementation (#16543) 2021-01-02 07:30:39 +01:00
sizealignoffsetimpl.nim fixes #19051 [backport:1.6] (#19133) 2021-11-12 11:19:24 +01: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 move tinyc to a separate repo and allow installing external dependencency (eg tinyc) from koch / library code (#13850) 2020-04-03 09:10:45 +02:00
transf.nim Fixed distinct composite type class proc borrowing (#18904) 2021-10-26 11:29:07 +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 bugfix: varargs count as open arrays (#19447) 2022-01-25 08:08:22 +01:00
types.nim fixes an old ARC bug: the produced copy/sink operations don't copy the hidden type field for objects with enabled inheritance; fixes #19205 [backport:1.6] (#19232) 2021-12-09 22:23:16 +01:00
typesrenderer.nim docgen: implement doc link resolution in current module (#18642) 2021-10-28 19:20:52 +02:00
varpartitions.nim fixes #19013 [backport:1.6] (#19111) 2021-11-09 12:43:16 +01:00
vm.nim fixes #19404 by protecting the memory we borrow from. this replaces crashes with minor memory leaks which seems to be acceptable. In the longer run we need a better VM that didn't grow hacks over a decade. (#19515) 2022-02-12 15:10:45 +01: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 fixes #19198 [backport:1.6] (#19209) 2021-12-04 07:43:20 +01: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 fix marshal bugs in VM (#19161) [backport:1.6] 2021-11-17 10:15:54 +01:00
vmops.nim move io out of system (#19442) 2022-02-02 17:10:11 +01:00
vmprofiler.nim cleanup of PR #14833 (VM profiler) 2020-07-09 19:21:20 +02:00
wordrecg.nim stylecheck usages part two: stdlib cleanup (#19338) 2022-01-08 21:34:22 +01: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.