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
Araq
f1ee36692a
fixes compiler regression
2019-04-06 19:12:44 +02:00
Araq
6e6a9a721f
destructors: we are cooking now
2019-04-06 17:32:53 +02:00
Andreas Rumpf
efeee326f8
destructors: progress
2019-04-05 12:38:30 +02:00
cooldome
795de374fb
fixes destructor tuple regression #10940 ( #10941 )
...
* fixes #10940
* bug fixes
* fix spacing
2019-04-04 20:46:02 +01:00
Araq
c9c6741cde
newruntime: fixes codegen for closures
2019-04-04 16:35:15 +02:00
Araq
f5a7a3bee9
make megatest work again
2019-04-02 08:23:13 +02:00
Araq
b77a2037f8
newruntime: progress
2019-04-02 00:46:38 +02:00
Araq
c3067e36bb
newruntime: progress
2019-04-01 16:51:18 +02:00