cooldome
0d8507cd3d
fix #14236 ( #14250 )
...
Co-authored-by: cooldome <ariabushenko@bk.ru>
2020-05-07 00:13:59 +02:00
cooldome
6dba06f9e6
fixes #14244 ( #14248 )
...
Co-authored-by: cooldome <ariabushenko@bk.ru>
2020-05-06 20:43:18 +02:00
Andreas Rumpf
065a6af2de
fixes a critical =trace generation bug (see test case) ( #14140 )
2020-04-27 22:20:14 +02:00
Andreas Rumpf
269a458d74
cycle collector ( #14071 )
...
* figured out the wrong cycle trace proc problem
* cycle collector/break refactorings and minor improvements
2020-04-22 17:34:35 +02:00
cooldome
9295251e68
Implements RFCs #209 ( #13995 )
...
* add test
* add changelod entry
Co-authored-by: cooldome <ariabushenko@bk.ru>
2020-04-16 21:04:05 +02:00
cooldome
c70b3952ff
fixes #13810 ( #13821 )
...
Co-authored-by: cooldome <ariabushenko@bk.ru>
2020-03-31 21:15:06 +02:00
Andreas Rumpf
35fb38629f
cycle breaker ( #13593 )
...
* cycle breaking as an alternative to cycle detection
2020-03-19 22:58:16 +01:00
Andreas Rumpf
c87796180e
fixes #13269 ( #13344 )
2020-02-07 06:58:57 +01:00
Andreas Rumpf
41555ca86f
fixes #13110 ( #13197 )
2020-01-19 23:30:45 +01:00
cooldome
f51613e262
make sink operator optional ( #13068 )
...
* make sink operator optional
* bug fix, add changelog entry
* Trigger build
* fix one regression
* fix test
* Trigger build
* fix typos
2020-01-17 11:44:06 +00:00
Andreas Rumpf
a5e67071d2
ARC: misc bugfixes ( #13156 )
...
* fixes #13102
* closes #13149
* ARC: fixes a move optimizer bug (there are more left regarding array and tuple indexing)
* proper fix; fixes #12957
* fixes yet another case object '=' code generation problem
2020-01-15 22:13:31 +01:00
Andreas Rumpf
d56848878c
fixes #13119 ( #13128 )
...
* fixes #13119
* fixes a regression
2020-01-14 09:56:08 +01:00
cooldome
002d50f1f0
Sink to MemMove optimization in injectdestructors ( #13002 )
2020-01-02 22:58:01 +01:00
Andreas Rumpf
3f6df5cc34
fixes #12899 ( #12921 )
...
* fixes #12899
* fixes regression: destroy global variables in reverse declaration order, closureleak test relies on it
2019-12-18 07:54:20 +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
cooldome
5929c3da21
fixes #12820 ( #12828 )
2019-12-09 20:03:23 +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
Brian Wignall
a7aeabb9d2
[backport] Fix spelling typos ( #12755 )
2019-11-28 08:30:55 +01:00
Araq
3020e49b75
ARC: use the new .cursor annotation for 'up' pointers
2019-11-13 23:29:21 +01:00
Andreas Rumpf
dfb020b174
.cursor implementation ( #12637 )
...
* cursors: first implementation
* added currently failing test
* .cursor works for doubly linked lists
* make -d:useMalloc work again
* added code to nil out refs in a destructor
* it's now called --gc:arc
* renderer.nim: render nkBreakState properly
* make simple closure iterators work without leaking
2019-11-12 15:05:36 +01:00
Araq
a4d43d7d0c
--gc:destructors: bugfixes
2019-11-09 20:34:51 +01:00
Andreas Rumpf
82e0765fc9
--gc:destructors improvements ( #12626 )
...
* do not cache the noDestructors transformation
* liftdestructor: improvements
* undo bugfix
2019-11-09 13:21:55 +01:00
Andreas Rumpf
1746da2d9e
--gc:destructors now means Nim uses pure refcounting ( #12557 )
2019-10-30 16:15:17 +01:00
Araq
ed2fb36bc6
refactoring: use the new strings and seqs when optSeqDestructors is active
2019-10-20 08:11:07 +02:00
Araq
61ea85687c
refactoring: --newruntime consists of 3 different switches
2019-10-20 08:11:07 +02:00
Andreas Rumpf
2a59f499e9
some gc:destructors progress
2019-09-16 13:54:58 +02:00
Araq
5018e7f304
fixes #12172
2019-09-13 18:12:38 +02:00
Araq
cf99c9bfb5
fixes #12051
2019-09-10 09:43:37 +02:00
Araq
ad82e65387
gc:destructors progress
2019-09-01 23:28:26 +02:00
cooldome
c9f49cbc0a
lift destructor for openarray ( #12073 )
...
* destroy for sink openarray
2019-08-28 12:07:46 +02:00
Arne Döring
afbcd1b330
int128 on firstOrd, lastOrd and lengthOrd ( #11701 )
...
* fixes #11847
2019-08-07 15:53:16 +02:00
Araq
07d465ca42
[refactoring] remove unused imports in the compiler and in some stdlib modules
2019-07-18 00:36:03 +02:00
Araq
423e8cca91
newruntime: refchecks:on|off switch
2019-07-12 21:53:46 +02:00
Andreas Rumpf
28c9c062a4
fixes #11610 ( #11659 )
2019-07-05 07:26:06 +02:00
Andreas Rumpf
c65a5d754b
[bugfix] owned closures ( #11544 )
2019-06-20 07:40:45 +02:00
Araq
ab36ffbeb1
[bugfix] fixes #11517
2019-06-19 17:39:52 +02:00
Araq
b056d32a79
[refactoring] liftdestructors.nim is callable from lambdalifting; refs #11217
2019-06-12 10:44:45 +02:00
Araq
c07973e313
[refactoring] liftdestructors is now a module of its own
2019-06-12 08:45:47 +02:00
Araq
950f2d7c2f
fixes #6755 ; error message could be better but oh well
2019-05-28 22:20:49 +02:00
Araq
a3e27ffa2c
fixes #11215
2019-05-12 15:07:35 +02:00
Arne Döring
b92fd30282
rename tyExpr/tyStmt to tyUntyped/tyTyped ( #11227 )
2019-05-11 10:11:08 +02:00
cooldome
d3db189eb4
Destructor lifting fixes #11149 ( #11163 )
...
* fixes #11149
* add test
2019-05-04 22:34:37 +02:00
Andreas Rumpf
44ec66bd48
fixes #11053
2019-04-19 18:02:43 +02:00
Araq
750f50b6c0
destructors: internal compiler refactoring
2019-04-18 00:53:02 +02:00
Araq
d8a8c8806f
fixes #11014
2019-04-17 00:15:40 +02:00
Araq
572735bbfa
fixes #11004
2019-04-12 13:28:12 +02:00
Araq
a2ad069769
preparations for --newruntime owned refs/callbacks
2019-04-11 12:42:51 +02:00
Araq
2846156e13
newruntime: raising an exception works but currently leaks memory because currentException global is not an 'owned' ref
2019-04-10 20:34:00 +02:00
Andreas Rumpf
b2898cd254
an owned ref parameter behaves as a 'sink' parameter
2019-04-07 23:11:37 +02:00
Andreas Rumpf
f08e90f0d6
more efficient enumToStr implementation that works without the old typeinfo structures
2019-04-07 21:14:54 +02:00