Nim/compiler
Alexander Ivanov 672dc5cd87
Nil type check implementation (#15287)
* Nil checking
* Enable current older not nil checking again, run new checking only under flag, skip our test
* Enable tests, work on try/except and bugs, fix notnil tests

* Enable strictNotNil tests (currently with lowercase category) and add some expected output
* Work on try/except/finally: still some things unclear and a lot of code can raise out of try
* Fix the notnil build by going back to the old version of a test which I shouldn't have changed

* Fix test : use action compile
* Work on mutation and aliasing: not finished
* Render var parititions graph, try to understand it, fix a nilcheck if bug
* Rebase, progress on working with partitions
* Improve time logic
* Fix some bugs, use graph indices instead of symbol in nil map
* Fix bugs, test simpler ident aliasing for now, support two mutation levels
* Support ContentMutation and ReAssignment: for now just detect possible re assignment for var parameters of calls
* Enable several simple passing tests
* Cleanup a bit, fix condition/branch infix-related bug
* Remove some files, address some comments by Araq
* Use internalError and no quit for now
* Separate tests with expected warnings and with expected ok, fix a bug with if with a single branch related to copyMap
* Fix new data structures, bugs: make tests pass, disable some for now
* Work on fixing errors with non-sym nodes, aliasing: tests fail
* Work on alias support: simple set-based logic, todo more tests and ref sets?
* Use ref sets: TODO can we think of handle seq-s similar to varpartitions' Araq ones
* Handle defers in one place, stop raising in reverse to make an async test compile with strictNotNil, add a commented out test
* Dot expressions: call/reassignment. Other refactorings and distinct, SeqOfDistinct support. Checkout an older varpartitions
* Work on field tracking
* Backup : trying to fix bugs when running some stdlib stuff for running an async test
* Start a section about strict not nil checking in experimental manual
* Fix experimental strict not nil manual section and move it to another file based on Araq feedback
* Fix unstructured flow and double warning problems, fix manual, cleanup
* Fix if/elif/else : take in account structure according to Araq feedback
* Refactor a bit
* Work on bracket expr support, re-enable tests, clarify in manual/tests/implementation static index support for now
* Work on compiling stdlib and compiler with strictNotNil
* Small fixes to the manual for strictNotNil
* Fix idgen for strict check nil rebase
* Enable some simple tests, remove old stuff, comment out code/print
* Copy the original varpartitions source instead of my changes
* Remove some files
2020-12-29 10:31:11 +01:00
..
ic refactorings to prepare the compiler for IC (#15935) 2020-12-17 08:01:36 +01:00
nimfix cmdline: improve command processing (#16056) 2020-11-26 15:55:56 -08:00
plugins refactorings to prepare the compiler for IC (#15935) 2020-12-17 08:01:36 +01:00
aliases.nim Fixed objects being erroneously zeroed out before object construction (#12814) [backport] 2019-12-05 17:31:51 +01:00
asciitables.nim Fix spellings (#12277) [backport] 2019-09-27 07:02:54 +02:00
ast.nim Nil type check implementation (#15287) 2020-12-29 10:31:11 +01:00
astalgo.nim [docs minor]space for code-block (#16266) 2020-12-06 09:54:32 +01:00
bitsets.nim Cosmetic compiler cleanup (#12718) 2019-11-28 17:13:04 +01:00
btrees.nim move tests under the compiler directory to testament (#16096) 2020-11-25 07:48:27 +01:00
canonicalizer.nim make case-object transitions explicit, make unknownLineInfo a const, replace a few magic numbers with consts (#13170) 2020-01-17 10:34:31 +01:00
ccgcalls.nim fixes https://github.com/status-im/nimbus-eth2/issues/1549 (#16146) 2020-11-26 19:05:21 +01:00
ccgexprs.nim fixes #16069; [backport:1.2] [backport:1.4] (#16115) 2020-11-24 16:09:00 +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.nim explicit ID generation for easier IC (#15559) 2020-10-25 08:50:47 +01:00
ccgreset.nim specialize genericReset (#14398) 2020-05-19 21:42:53 +02:00
ccgstmts.nim fix #12640 (#15829) 2020-11-03 11:41:41 +01:00
ccgthreadvars.nim fixes #14865 (#14937) 2020-07-08 18:59:34 +02:00
ccgtrav.nim allow old styled RTTI for arc/orc (#15331) 2020-09-16 14:57:01 +02:00
ccgtypes.nim fix #15958 (#15970) [backport:1.4] 2020-11-20 14:58:16 +01:00
ccgutils.nim Cosmetic compiler cleanup (#12718) 2019-11-28 17:13:04 +01:00
cgen.nim fix #16265; fix #13999 (HCR on OSX); cgen now does not line wrap string litterals (#16329) 2020-12-14 11:17:24 +01:00
cgendata.nim allow old styled RTTI for arc/orc (#15331) 2020-09-16 14:57:01 +02:00
cgmeth.nim explicit ID generation for easier IC (#15559) 2020-10-25 08:50:47 +01:00
closureiters.nim explicit ID generation for easier IC (#15559) 2020-10-25 08:50:47 +01:00
cmdlinehelper.nim cmdline: improve command processing (#16056) 2020-11-26 15:55:56 -08:00
commands.nim fix #16346 rst2html now honors SuccessX (#16347) 2020-12-26 23:28:56 +01:00
condsyms.nim clean up old codes (#16284) 2020-12-09 12:18:32 +01:00
debuginfo.nim happy new year 2017-01-07 22:35:09 +01:00
depends.nim explicit ID generation for easier IC (#15559) 2020-10-25 08:50:47 +01:00
dfa.nim fixes #15130 (#15141) 2020-08-01 18:04:04 +02:00
docgen.nim misc cleanups (#16383) 2020-12-18 08:53:43 +01:00
docgen2.nim explicit ID generation for easier IC (#15559) 2020-10-25 08:50:47 +01:00
enumtostr.nim explicit ID generation for easier IC (#15559) 2020-10-25 08:50:47 +01:00
evalffi.nim Use typeflag instead 2020-08-10 12:57:32 +02:00
evaltempl.nim explicit ID generation for easier IC (#15559) 2020-10-25 08:50:47 +01:00
extccomp.nim Fix nimsuggest/#117 (#15602) 2020-11-15 15:08:27 +01:00
filter_tmpl.nim Big compiler Cleanup (#14777) 2020-08-28 22:18:09 +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 explicit ID generation for easier IC (#15559) 2020-10-25 08:50:47 +01:00
hlo.nim explicit ID generation for easier IC (#15559) 2020-10-25 08:50:47 +01:00
idents.nim Use modern enums in compiler (#15775) 2020-11-02 10:35:24 +01:00
importer.nim refactorings to prepare the compiler for IC (#15935) 2020-12-17 08:01:36 +01:00
incremental.nim disable IC and the SQLite dependency for version 1 2019-09-03 18:43:57 +02: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 Revert "fix #16185 (#16195)" (#16197) 2020-11-30 23:36:38 +01:00
installer.ini OSX: support for M1 [backport:1.0] (#16279) 2020-12-07 10:50:30 +01:00
int128.nim move tests under the compiler directory to testament (#16096) 2020-11-25 07:48:27 +01:00
isolation_check.nim canAlias improvement (#15773) 2020-10-30 11:42:06 +00:00
jsgen.nim ref #16054 remove typed array (#16077) 2020-11-24 19:30:17 +01:00
jstypes.nim Cosmetic compiler cleanup (#12718) 2019-11-28 17:13:04 +01:00
lambdalifting.nim fix #15043 (#16441) [backport:1.4] 2020-12-27 20:05:33 +01:00
layouter.nim Use modern enums in compiler (#15775) 2020-11-02 10:35:24 +01:00
lexer.nim Fix typo in lexer.nim (#15876) 2020-11-07 15:58:49 +01:00
liftdestructors.nim ORC: prepare for another patent-pending optimization (#15996) 2020-11-18 22:31:06 +01:00
liftlocals.nim explicit ID generation for easier IC (#15559) 2020-10-25 08:50:47 +01:00
lineinfos.nim Nil type check implementation (#15287) 2020-12-29 10:31:11 +01:00
linter.nim Use modern enums in compiler (#15775) 2020-11-02 10:35:24 +01:00
llstream.nim fix nim secret dots interfering with prompt (#16491) 2020-12-28 12:19:47 +01:00
lookups.nim refactorings to prepare the compiler for IC (#15935) 2020-12-17 08:01:36 +01:00
lowerings.nim fix #15463 (#15831) 2020-11-05 14:00:08 +01:00
macrocacheimpl.nim [refactoring] remove unused imports in the compiler and in some stdlib modules 2019-07-18 00:36:03 +02:00
magicsys.nim explicit ID generation for easier IC (#15559) 2020-10-25 08:50:47 +01:00
main.nim fix nim secret dots interfering with prompt (#16491) 2020-12-28 12:19:47 +01:00
modulegraphs.nim misc cleanups (#16383) 2020-12-18 08:53:43 +01:00
modulepaths.nim Big compiler Cleanup (#14777) 2020-08-28 22:18:09 +02:00
modules.nim refactorings to prepare the compiler for IC (#15935) 2020-12-17 08:01:36 +01:00
msgs.nim fix nim secret dots interfering with prompt (#16491) 2020-12-28 12:19:47 +01:00
ndi.nim fix open file leak when running --debugger:native (#13832) 2020-04-01 17:48:17 +02:00
nilcheck.nim Nil type check implementation (#15287) 2020-12-29 10:31:11 +01:00
nim.cfg remove nim.cfg file change lefover [backport:1.2] (#15469) 2020-10-02 18:51:49 +02:00
nim.nim cmdline: improve command processing (#16056) 2020-11-26 15:55:56 -08:00
nimblecmd.nim move tests under the compiler directory to testament (#16096) 2020-11-25 07:48:27 +01:00
nimconf.nim cmdline: improve command processing (#16056) 2020-11-26 15:55:56 -08:00
nimeval.nim cmdline: improve command processing (#16056) 2020-11-26 15:55:56 -08:00
nimlexbase.nim fixed article duplication typos (#16216) 2020-12-02 09:15:29 +01:00
nimpaths.nim use release version (#15400) 2020-09-24 14:14:23 +02:00
nimsets.nim init checks and 'out' parameters (#14521) 2020-06-23 10:53:57 +02:00
nodejs.nim Remove IO.js compat (long dead vanished project,superseed by NodeJS) (#11627) 2019-07-01 11:59:02 +02:00
nversion.nim Fix spellings (#12277) [backport] 2019-09-27 07:02:54 +02:00
optimizer.nim An optimizer for ARC (#14962) 2020-07-15 23:00:06 +02:00
options.nim Nil type check implementation (#15287) 2020-12-29 10:31:11 +01:00
packagehandling.nim Correct all eggs (#15906) 2020-11-10 21:53:25 +01:00
parampatterns.nim reuse existing toHumanStr (#15674) 2020-10-21 15:53:43 -07:00
parser.nim Use modern enums in compiler (#15775) 2020-11-02 10:35:24 +01:00
passaux.nim explicit ID generation for easier IC (#15559) 2020-10-25 08:50:47 +01:00
passes.nim explicit ID generation for easier IC (#15559) 2020-10-25 08:50:47 +01:00
pathutils.nim move tests under the compiler directory to testament (#16096) 2020-11-25 07:48:27 +01:00
patterns.nim Cosmetic compiler cleanup (#12718) 2019-11-28 17:13:04 +01:00
platform.nim Add 32-bit RISC-V support (#16231) 2020-12-03 17:33:42 +01:00
pluginsupport.nim refactoring: fewer global variables 2018-05-27 19:19:12 +02:00
pragmas.nim refactorings to prepare the compiler for IC (#15935) 2020-12-17 08:01:36 +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 Correct all eggs (#15906) 2020-11-10 21:53:25 +01:00
renderverbatim.nim Big compiler Cleanup (#14777) 2020-08-28 22:18:09 +02:00
reorder.nim Big compiler Cleanup (#14777) 2020-08-28 22:18:09 +02:00
rod.nim refactorings to prepare the compiler for IC (#15935) 2020-12-17 08:01:36 +01:00
rodimpl.nim explicit ID generation for easier IC (#15559) 2020-10-25 08:50:47 +01:00
rodutils.nim Big compiler Cleanup (#14777) 2020-08-28 22:18:09 +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 cmdline: improve command processing (#16056) 2020-11-26 15:55:56 -08:00
sem.nim refactorings to prepare the compiler for IC (#15935) 2020-12-17 08:01:36 +01:00
semcall.nim fix #16150 improve type mismatch errors (#16152) 2020-12-09 16:19:39 +01:00
semdata.nim refactorings to prepare the compiler for IC (#15935) 2020-12-17 08:01:36 +01:00
semexprs.nim refactorings to prepare the compiler for IC (#15935) 2020-12-17 08:01:36 +01:00
semfields.nim fix #16150 improve type mismatch errors (#16152) 2020-12-09 16:19:39 +01:00
semfold.nim fixes #16069; [backport:1.2] [backport:1.4] (#16115) 2020-11-24 16:09:00 +01:00
semgnrc.nim refactorings to prepare the compiler for IC (#15935) 2020-12-17 08:01:36 +01:00
seminst.nim explicit ID generation for easier IC (#15559) 2020-10-25 08:50:47 +01:00
semmacrosanity.nim Cosmetic compiler cleanup (#12718) 2019-11-28 17:13:04 +01:00
semmagic.nim fix #15707 (#15870) 2020-11-09 11:47:29 +01:00
semobjconstr.nim Nil type check implementation (#15287) 2020-12-29 10:31:11 +01:00
semparallel.nim explicit ID generation for easier IC (#15559) 2020-10-25 08:50:47 +01:00
sempass2.nim Nil type check implementation (#15287) 2020-12-29 10:31:11 +01:00
semstmts.nim refactorings to prepare the compiler for IC (#15935) 2020-12-17 08:01:36 +01:00
semtempl.nim explicit ID generation for easier IC (#15559) 2020-10-25 08:50:47 +01:00
semtypes.nim Nil type check implementation (#15287) 2020-12-29 10:31:11 +01:00
semtypinst.nim explicit ID generation for easier IC (#15559) 2020-10-25 08:50:47 +01:00
sighashes.nim Big compiler Cleanup (#14777) 2020-08-28 22:18:09 +02:00
sigmatch.nim [docs minor]space for code-block (#16266) 2020-12-06 09:54:32 +01:00
sinkparameter_inference.nim explicit ID generation for easier IC (#15559) 2020-10-25 08:50:47 +01:00
sizealignoffsetimpl.nim Fix #12636 (#15850) 2020-11-05 18:55:52 +01:00
sourcemap.nim Big compiler Cleanup (#14777) 2020-08-28 22:18:09 +02:00
spawn.nim explicit ID generation for easier IC (#15559) 2020-10-25 08:50:47 +01:00
strutils2.nim Correct all eggs (#15906) 2020-11-10 21:53:25 +01:00
suggest.nim refactorings to prepare the compiler for IC (#15935) 2020-12-17 08:01:36 +01:00
syntaxes.nim Big compiler Cleanup (#14777) 2020-08-28 22:18:09 +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 fixes #16069; [backport:1.2] [backport:1.4] (#16115) 2020-11-24 16:09:00 +01:00
trees.nim Revert "fix #16185 (#16195)" (#16197) 2020-11-30 23:36:38 +01:00
treetab.nim Nil type check implementation (#15287) 2020-12-29 10:31:11 +01:00
typeallowed.nim fixes #15671 [backport:1.4] (#15690) 2020-11-20 18:14:15 +01:00
types.nim fix #16150 improve type mismatch errors (#16152) 2020-12-09 16:19:39 +01: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 Nil type check implementation (#15287) 2020-12-29 10:31:11 +01:00
vm.nim fixes #15939, fixes #15464, fixes #16169, fixes #16226 VM now supports addr(mystring[ind]) (index + index assignment) (#15987) 2020-12-03 16:55:43 +01:00
vmconv.nim add --experimental:vmopsDanger; add generic conversion for vmops (#13813) 2020-04-20 12:00:00 +02:00
vmdef.nim fixes #15939, fixes #15464, fixes #16169, fixes #16226 VM now supports addr(mystring[ind]) (index + index assignment) (#15987) 2020-12-03 16:55:43 +01:00
vmdeps.nim explicit ID generation for easier IC (#15559) 2020-10-25 08:50:47 +01:00
vmgen.nim fix #16469 vm float constants: do not conflate -0.0 and 0.0 (#16470) 2020-12-27 14:35:01 +01:00
vmhooks.nim Fix vm.nim for --gc:arc (#13741) 2020-03-26 15:18:45 +00:00
vmmarshal.nim explicit ID generation for easier IC (#15559) 2020-10-25 08:50:47 +01:00
vmops.nim explicit ID generation for easier IC (#15559) 2020-10-25 08:50:47 +01:00
vmprofiler.nim cleanup of PR #14833 (VM profiler) 2020-07-09 19:21:20 +02:00
wordrecg.nim EnumUtils, speed up findStr in compiler (#15777) 2020-11-03 16:26:16 +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.