summary refs log tree commit diff stats
path: root/compiler/injectdestructors.nim
Commit message (Collapse)AuthorAgeFilesLines
* fixes #13722 (#13729)Andreas Rumpf2020-03-231-1/+1
| | | | | * fixes #13722 * better fix
* disable even more of scope based destruction handling; fixes #13709Araq2020-03-231-7/+98
|
* fixes #13691 (#13694)Andreas Rumpf2020-03-191-2/+5
|
* arc optimizations (#13325)Andreas Rumpf2020-03-181-81/+240
| | | | | * scope based destructors * handle 'or' and 'and' expressions properly, see the new test arc/tcontrolflow.nim * make this branch mergable, logic is disabled for now
* fixes #13622 (#13679)Andreas Rumpf2020-03-181-2/+4
|
* Fixes #13659 (#13674)cooldome2020-03-171-2/+2
| | | | | * fixes #13659 Co-authored-by: cooldome <ariabushenko@bk.ru>
* fixes #13436 (#13615)Andreas Rumpf2020-03-101-1/+2
|
* sink parameter inference for types that have destructors (#13544)Andreas Rumpf2020-03-041-6/+6
| | | | | | | | | | | | | | * ensure capitalize doesn't take an inferred sink parameter * sink parameter inference: first version, for now disabled. Changed that sink parameters can be consumed multiple times in order to adhere to our spec. * sink inference can now be disabled with .nosinks; sometimes for proc type interop this is required * fixes yet another critical DFA bug * better implementation that also understands if expressions etc * document sink parameter inference and allow for global disabling
* fixes #13368 (#13397)cooldome2020-02-141-7/+8
|
* ARC: optimize complete object constructors to use nimNewObjUninitAraq2020-01-261-2/+4
|
* make sink operator optional (#13068)cooldome2020-01-171-37/+23
| | | | | | | | | | | | | | | | * make sink operator optional * bug fix, add changelog entry * Trigger build * fix one regression * fix test * Trigger build * fix typos
* Cleanup DFA (#13173)Clyybber2020-01-161-2/+2
|
* ARC: misc bugfixes (#13156)Andreas Rumpf2020-01-151-1/+2
| | | | | | | | * 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
* fixes #13119 (#13128)Andreas Rumpf2020-01-141-0/+2
| | | | | * fixes #13119 * fixes a regression
* Continue #13002 (#13021)Clyybber2020-01-061-37/+81
|
* fixes #12956 (#13020)Andreas Rumpf2020-01-031-1/+2
|
* Sink to MemMove optimization in injectdestructors (#13002)cooldome2020-01-021-16/+21
|
* fixes #12989 (#12992)cooldome2019-12-311-8/+10
| | | | | | | * fixes #12989 * Revert "remove unwanted changes" This reverts commit 501829732a8e44deef2d815c303859efbe452cb5.
* ARC: cycle detector (#12823)Andreas Rumpf2019-12-171-3/+3
| | | | | | | | | | | | | * 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
* ARC: fixes cycle detection and move the .cursor attribute into closures (#12872)Andreas Rumpf2019-12-111-1/+2
|
* ARC: yet another bugfix (#12871)Andreas Rumpf2019-12-101-25/+41
|
* ARC related bugfixes and refactorings (#12781)Andreas Rumpf2019-12-051-229/+198
|
* fixes #12766Araq2019-11-291-8/+12
|
* ARC: implemented a simple cycle detectorAraq2019-11-281-0/+33
|
* Cosmetic compiler cleanup (#12718)Clyybber2019-11-281-2/+2
| | | | | | | | | | | | | | | | | | * 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
* ARC: closure bugfixes (#12677)Andreas Rumpf2019-11-181-12/+39
| | | | | | | | * ARC: closure bugfixes * progress * ARC closures: create =hooks for captured parameters * ARC: always destroy constructions like tuples, arrays properly, even in edge cases * fixes a regression
* ARC: fixes leaking new() statement (#12665)Andreas Rumpf2019-11-151-2/+6
|
* ARC: closure inside object constructor now worksAraq2019-11-131-2/+15
|
* ARC: handle closures like tuples consistentlyAraq2019-11-131-2/+2
|
* .cursor implementation (#12637)Andreas Rumpf2019-11-121-3/+15
| | | | | | | | | | | * 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
* inhibit silly warning about moving closure environments for performanceAraq2019-11-091-1/+3
|
* remove unused importsnarimiran2019-11-061-1/+1
|
* --gc:destructors: simple closures workAndreas Rumpf2019-11-021-1/+4
|
* improve codegen quality for --gc:destructorsAndreas Rumpf2019-11-011-4/+7
|
* some progress on bug #12443Andreas Rumpf2019-10-271-1/+2
|
* refactoring: --newruntime consists of 3 different switchesAraq2019-10-201-1/+1
|
* refactor illegal iterator assignment detection (#12212)Arne Döring2019-10-111-1/+1
| | | | | | * refactor illegal iterator assignment detection * delete crappy test
* Refactor injectdestructors (#12295)Clyybber2019-10-011-482/+257
| | | One improvement over #devel is visible in the transformation of getEnv. With this approach we move to result whenever possible.
* Fix spellings (#12277) [backport]Federico Ceratto2019-09-271-2/+2
|
* fixes #12172Araq2019-09-131-2/+2
|
* Revert "Refactored injectdestructors.nim (#11926)" (#12169)Andreas Rumpf2019-09-111-342/+383
| | | This reverts commit 20dec10722eecb1e9b9ee43a3e1cda7533837c72.
* Refactored injectdestructors.nim (#11926)Clyybber2019-08-281-383/+342
| | | | One improvement over #devel is visible in the transformation of getEnv. With this approach we move to result whenever possible.
* fixes #11833 (#12018)Andreas Rumpf2019-08-241-2/+0
|
* fixes #10689Araq2019-08-121-1/+5
|
* fixes #11254Araq2019-08-121-11/+0
|
* [refactoring] remove unused imports in the compiler and in some stdlib modulesAraq2019-07-181-1/+1
|
* newruntime: progress to make 'async' work with --newruntimeAraq2019-07-151-1/+3
|
* newruntime: refchecks:on|off switchAraq2019-07-121-1/+1
|
* styleCheck: make the compiler and large parts of the stdlib compatible with ↵Araq2019-07-101-2/+2
| | | | --styleCheck:error
* newruntime: async progressAraq2019-07-091-1/+1
|