Commit graph

105 commits

Author SHA1 Message Date
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