Andreas Rumpf
3e6d708175
implements https://github.com/nim-lang/RFCs/issues/260 ( #15505 )
...
* implements https://github.com/nim-lang/RFCs/issues/260
* added a test case
(cherry picked from commit 51e3e0c7c4 )
2021-12-10 14:59:44 +01:00
Andy Davidoff
a693ce7765
surgical fix for #13319 ( #13604 )
2020-03-08 10:55:19 +01:00
Jasper Jenkins
796aafe7e0
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
Andreas Rumpf
83a736a34a
ARC: cycle detector ( #12823 )
...
* first implementation of the =trace and =dispose hooks for the cycle collector
* a cycle collector for ARC: progress
* manual: the .acyclic pragma is a thing once again
* gcbench: adaptations for --gc:arc
* enable valgrind tests for the strutils tests
* testament: better valgrind support
* ARC refactoring: growable jumpstacks
* ARC cycle detector: non-recursive algorithm
* moved and renamed core/ files back to system/
* refactoring: --gc:arc vs --gc:orc since 'orc' is even more experimental and we want to ship --gc:arc soonish
2019-12-17 17:37:50 +01:00
Clyybber
7e747d11c6
Cosmetic compiler cleanup ( #12718 )
...
* Cleanup compiler code base
* Unify add calls
* Unify len invocations
* Unify range operators
* Fix oversight
* Remove {.procvar.} pragma
* initCandidate -> newCandidate where reasonable
* Unify safeLen calls
2019-11-28 17:13:04 +01:00
Andreas Rumpf
64e8f050e1
implemented a new localPassc pragma ( #12706 )
2019-11-22 14:20:15 +01:00
Clyybber
ed1d41c51e
Small ast.nim cleanup ( #12156 )
...
* Remove sonsLen
* Use Indexable
2019-09-09 11:54:15 +02:00
Araq
49f63d3aae
ic: update to serialize paddingAtEnd
2019-09-05 16:45:07 +02:00
Andreas Rumpf
0d5bd7e8b5
removed unused imports [refactoring]
2019-08-08 17:03:19 +02:00
Andreas Rumpf
c8cffaf420
Incremental compilation (IC): Improvements ( #11881 )
...
* IC: C codegen is aware of IC
* manual: minor change to make VSCode's RST plugin render it properly
* IC: minor refactoring
* testament: code refactorings
* rodutils: removed dead code
* IC: always build the compiler with the IC feature
* IC: C codegen improvements
* IC: implement the undocumented -d:nimMustCache option for testing purposes
* IC: added first basic tests
* IC: extensive testing of the deserialization feature
* testament: refactoring; better IC tests
* IC: removes 'nimMustCache' flag; readonly does the same
* testament: minor refactoring
* update Nimble version
* testament: removed dead code and imports; IC: added simple test
* IC: progress
2019-08-08 08:41:05 +02:00
Andreas Rumpf
f58d87cb43
IC: some progress
2019-07-27 14:01:28 +02:00
Andreas Rumpf
25e6c53bb5
makes the -d:nimIncremental compiler mode compile again
2019-07-27 14:01:28 +02:00
Andreas Rumpf
3d88d06b32
better run [feature] ( #11709 )
...
* track the checksums of all involved Nim files for smarter 'nim c -r' recompiles
* don't recompile unless necessary for 'nim c -r' [feature]
* [feature] koch boot uses a two step process in order to free the RAM before the GCC/Clang invocations
* fixes a serious regression
2019-07-11 21:36:23 +02:00
Andreas Rumpf
651ae68567
fixes #11202
2019-05-14 12:02:26 +02:00
Clyybber
f18b3af9d4
Replace countup(x, y-1) with x ..< y
2019-05-07 12:32:05 +02:00
Araq
d50336837d
IC: much faster caching
2018-12-04 22:41:06 +01:00
Araq
f86b827d9e
IC: more things work
2018-12-03 18:57:44 +01:00
Araq
abbafe606e
IC: further progress
2018-12-01 00:36:14 +01:00
Araq
61d08ebcd8
IC: further progress
2018-11-22 23:17:47 +01:00
Araq
8285e24805
IR: also serialize the new transformedBody field
2018-11-20 23:48:15 +01:00
Araq
eeb7cc6780
IC: further progress
2018-11-20 19:30:00 +01:00
Araq
e8bec61413
incremental compilation: bugfixes
2018-11-19 18:51:47 +01:00
Araq
6acffcd28f
incremental compilation: simple recompilation works
2018-11-19 17:16:52 +01:00
Araq
cd9bc941e1
incremental compilation: fixes basic caching logic of 'module' table
2018-10-19 16:27:20 +02:00
Miran
675c629fee
replace deprecated safeAdd with add ( #9416 )
2018-10-18 12:29:32 +02:00
Andreas Rumpf
89ba0f8592
nimpretty: render r-strings properly, fixes #9236
2018-10-16 13:33:14 +02:00
Araq
621b2db2e8
compiler IC: minor improvements
2018-10-02 16:18:16 +02:00
Araq
76aab9baf1
compiler: make symbolfiles feature compile again
2018-10-02 16:18:15 +02:00
Andreas Rumpf
86556ebfdb
compiler refactoring; use typesafe path handing; docgen: render symbols between modules
2018-09-07 19:21:16 +02:00
Andreas Rumpf
90b1030dec
incremental compilation: save the configuration
2018-06-11 00:14:29 +02:00
Andreas Rumpf
8db27d30e6
record cppdefine for incremental compilation
2018-06-10 18:05:43 +02:00
Andreas Rumpf
2662d713f7
implement passL and passC for the compilation cache
2018-06-10 17:06:02 +02:00
Andreas Rumpf
8ba7e7d807
toy program works with incremental compilation
2018-06-07 18:24:16 +02:00
Andreas Rumpf
2e9d486378
wip
2018-06-04 11:59:02 +02:00
Andreas Rumpf
268260953c
completed VM support for incremental compilations
2018-06-04 01:01:08 +02:00
Andreas Rumpf
b5194f592c
WIP: an API for VM replay global state support
2018-06-03 20:18:43 +02:00
Andreas Rumpf
826c1e2d78
incremental compilation: implemented basic replay logic
2018-06-02 09:41:27 +02:00
Andreas Rumpf
61fb83ecbb
baby steps for incremental compilation
2018-05-30 23:50:34 +02:00
Andreas Rumpf
a36c779f39
incremental compilation subsystem compiles again
2018-05-30 20:27:41 +02:00
Andreas Rumpf
ddc6cec69e
refactoring: move DB model to incremental.nim
2018-05-30 10:15:41 +02:00
Araq
ac6d9a3079
symbol files: baby steps to a working solution
2018-02-26 17:39:19 +01:00
Araq
67380f71d6
symbol files: delay the emission of forwarded procs
2018-02-21 11:42:58 +01:00
Araq
046ed4ed22
symbol files: implemented accurate module dependency tracking
2018-02-21 00:48:23 +01:00
Araq
2fcc163746
symbol files: more progress
2018-02-20 01:15:43 +01:00
Araq
564cff729a
new symbol files: loading of ASTs and module graphs
2018-02-17 00:40:49 +01:00
Araq
f3b8d92216
new .rod file implementation; part 1: writing of the file
2018-02-17 00:40:48 +01:00