summary refs log tree commit diff stats
path: root/compiler/injectdestructors.nim
Commit message (Collapse)AuthorAgeFilesLines
* Fix #15286 (#15292)cooldome2020-09-101-0/+3
| | | | | * fix #15286 * fix spacing
* Big compiler Cleanup (#14777)Clyybber2020-08-281-3/+3
|
* fix #15035 (#15236)cooldome2020-08-281-2/+3
|
* cursor and mutation tracking fixes (#15113)Andreas Rumpf2020-07-301-2/+2
| | | | | | | | * fixes #15110 * fixes #15096 * prepare varpartitions for cursor inference * new cursor inference begins to work * make tests green
* fixes #15076 (#15095)Andreas Rumpf2020-07-271-13/+20
|
* fixes a closure iterator memory leaks, progress on #15076Araq2020-07-271-1/+1
|
* fixes #15038 [backport:1.2]Andreas Rumpf2020-07-261-46/+1
|
* fixes #15036Andreas Rumpf2020-07-231-2/+0
|
* arc: cursors for simple for loop variables (#15008)Andreas Rumpf2020-07-171-1/+1
| | | | | * arc: cursors for simple for loop variables * merged devel
* Show that a variable is cursor in --expandArc (#15002)Clyybber2020-07-171-6/+5
|
* An optimizer for ARC (#14962)Andreas Rumpf2020-07-151-26/+28
| | | | | | | | | | | | | | | | | | | | * WIP: an optimizer for ARC * do not optimize away destructors in 'finally' if unstructured control flow is involved * optimized the optimizer * minor code cleanup * first steps to .cursor inference * cursor inference: big steps to a working solution * baby steps * better .cursor inference * new feature: expandArc for easy inspection of the AST after ARC transformations * added topt_cursor test * adapt tests * cleanups, make tests green * optimize common traversal patterns * moved test case * fixes .cursor inference so that npeg compiles once again * cursor inference: more bugfixes Co-authored-by: Clyybber <darkmine956@gmail.com>
* Fix #14985 (#14988)Clyybber2020-07-151-2/+2
|
* injectdestructors fixes and refactor (#14964)Clyybber2020-07-141-192/+109
| | | | | | | | | | | | | | | | | | | | | | | | | | | * injectdestructors fixes and refactor * Tiny cleanup * Refactor and expand testcase * Closes #14902 by adding testcase * Better naming * Fix test failures * Misc cleanup * Add testcase for #14968 * Better approach; expand testcases * Optimizations and fixes * Add testcase * typo * Tiny cleanup
* fixes a minor regressionAraq2020-07-101-1/+1
|
* fixes the tcontrolflow regression, clen idea of an escaping expressionAraq2020-07-101-20/+44
|
* no wasMoved() calls after destructors necessaryAraq2020-07-101-6/+6
|
* optimize sinks even when in a loopAraq2020-07-101-23/+12
|
* Move `wasMoved` out of `=destroy`Clyybber2020-07-101-5/+5
|
* CosmeticsClyybber2020-07-101-52/+51
|
* Make arc compile laser againClyybber2020-07-081-1/+1
|
* fixes #14900, this time for real, maybe (#14934)Andreas Rumpf2020-07-081-2/+8
|
* fixes #14900Araq2020-07-081-38/+42
|
* fixes #14899Araq2020-07-081-4/+37
|
* progressAraq2020-07-081-17/+33
|
* injectdestructors: refactoring, added more cases explicitly (#14929)Andreas Rumpf2020-07-071-7/+68
|
* scoped memory management (#14790)Andreas Rumpf2020-07-041-416/+301
| | | | | | | * fixes the regressions * closes #13936 * scope based memory management implemented * enabled tcontrolflow.nim test case * final cleanups
* DFA and injectdestructors cleanup (#14824)Clyybber2020-06-281-22/+26
| | | | | | | | | | | | | | | * DFA and injectdestructors cleanup * More precise write analysis * Cleanup obsoleted path * Unify defInstrTargets and useInstrTargets * Misc cleanups * Nicer CFG printing * Misc cleanups 2
* Fix #14568 (#14583)Clyybber2020-06-071-23/+23
| | | | | | | * Fix #14568 * Add testcase * Fix bogus test * Adapt other failing tests * Declarations are always first writes
* fixes #14118 (#14595)Andreas Rumpf2020-06-071-1/+4
|
* more checking for --gc:arc, no need for valgrind (#14467)Andreas Rumpf2020-05-291-0/+2
| | | | * sigmatch: removed dead code
* New "ping-pong" DFA (#14322)Clyybber2020-05-151-32/+38
| | | | | | | | | | | | | | | | | * New ping-pong analysis * Add testcase for #13456 * Remove debugging leftover * Unquote "unstructured controlflow" * Fix typo * Fix exponential complexity in edge cases * Add sanity testcase * Fix
* fix detecting closure env for nested asts (#14326)b3liever2020-05-121-3/+3
| | | Co-authored-by: b3liever <b3liever@yandex.com>
* fix #14219 (#14225)cooldome2020-05-111-1/+1
| | | Co-authored-by: cooldome <ariabushenko@bk.ru>
* small refactoring (#14303)b3liever2020-05-111-3/+4
| | | Co-authored-by: Antonis <b3liever@yandex.com>
* better error messageAntonis2020-05-111-1/+1
|
* fix closure env checkAntonis2020-05-111-1/+2
|
* Fix the DFA for "unstructured controlflow" (#14263)Clyybber2020-05-071-6/+2
| | | | | * Fix the DFA for "unstructured controlflow" * Add testcase from #14233
* destructors: don't produce stupid code for 'cast' (#14208) [backport:1.2]Andreas Rumpf2020-05-041-2/+6
| | | | | * destructors: don't produce stupid code for 'cast' * fixes #14207
* Step2: fixes #13781, fixes #13805 (#13897)cooldome2020-04-161-4/+9
| | | | | | | | | * Fix sym owner in wrapper proc * threadpool changes * revert lowerings * add newFastMoveStmt * try fixing test by switching to cpp Co-authored-by: cooldome <ariabushenko@bk.ru>
* Implements RFCs #209 (#13995)cooldome2020-04-161-16/+57
| | | | | * add test * add changelod entry Co-authored-by: cooldome <ariabushenko@bk.ru>
* 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
|