summary refs log tree commit diff stats
path: root/compiler/lambdalifting.nim
Commit message (Collapse)AuthorAgeFilesLines
* Force lambda lifting for getImplTransformed. Hacky. Fixes #19818 (#21031)Yuriy Glukhov2023-01-191-2/+2
|
* fix #20152 Illegal capture of closure iterator, when should be legal (#20607)Bung2022-10-211-1/+1
|
* fixes #20572 (#20585)Andreas Rumpf2022-10-171-1/+1
| | | | | * fixes #20572 * added a test case
* refactorings (#20536)Andreas Rumpf2022-10-101-2/+2
| | | | | | | * refactoring * refactoring: removed unused macroUsagesSection * enum instead of bool for better readability
* cleanup nfFirstWrite flags (#20500)Andreas Rumpf2022-10-051-1/+1
|
* new move analyser2 (#20471)Andreas Rumpf2022-10-011-4/+12
| | | | | | | | * produce better code for closure environment creation * new 'first write' analysis; * scope based move analyser * code cleanup Co-authored-by: ringabout <43030857+ringabout@users.noreply.github.com>
* Friendlier error message with solution (#19880)Carlo Capocasa2022-06-111-1/+2
| | | | | | | | | | | | | * Add helpful suggestion, should always apply * mention var param limitation in async docs * Update compiler/lambdalifting.nim whoops thanks Co-authored-by: flywind <43030857+xflywind@users.noreply.github.com> Co-authored-by: flywind <43030857+xflywind@users.noreply.github.com>
* Fix bug in freshVarForClosureIter. Fixes #18474 (#19675) [backport]flywind2022-04-041-9/+4
| | | | | | | | | | * Fix bug in freshVarForClosureIter. Fixes #18474. freshVarForClosureIter was returning non-fresh symbols sometimes. Fixed by making addField return the generated PSym. * remove discardable Co-authored-by: Nick Smallbone <nick@smallbone.se>
* move assertions out of system (#19599)flywind2022-03-231-0/+3
|
* closes #18690; make view types stricter [backport] (#18891)Andreas Rumpf2021-09-241-4/+2
| | | | | * closes #18690 * don't allow capturing of view types [backport]
* use more meaningful name than "workaround14447" (#18237)Miran2021-06-111-1/+1
|
* fixes #11225; generic sandwich problems; [backport:1.2] (#17255)Andreas Rumpf2021-03-091-2/+3
| | | | | * fixes #11225; generic sandwich problems; [backport:1.2] * progress * delegating these symbols must be done via 'bind'
* big steps torwards an efficient, simple IC implementation (#16543)Andreas Rumpf2021-01-021-14/+14
| | | | | | | | | | | | | | | | | | | * reworked ID handling * the packed AST now has its own ID mechanism * basic serialization code works * extract rodfiles to its own module * rodfiles: store and compare configs * rodfiles: store dependencies * store config at the end * precise dependency tracking * dependency tracking for rodfiles * completed loading of PSym, PType, etc * removed dead code * bugfix: do not realloc seqs when taking addr into an element * make IC opt-in for now * makes tcompilerapi green again * final cleanups Co-authored-by: Andy Davidoff <github@andy.disruptek.com>
* fix #15043 (#16441) [backport:1.4]cooldome2020-12-271-5/+7
| | | | | * fix #15043 * Trigger build
* Use modern enums in compiler (#15775)cooldome2020-11-021-1/+1
|
* explicit ID generation for easier IC (#15559)Andreas Rumpf2020-10-251-67/+71
| | | | | | | | | | | | | | | | | * refactoring: idents don't need inheritance * refactoring: adding an IdGenerator (part 1) * refactoring: adding an IdGenerator (part 2) * refactoring: adding an IdGenerator (part 3) * refactoring: adding an IdGenerator (part 4) * refactoring: adding an IdGenerator (part 5) * refactoring: adding an IdGenerator (part 5) * IdGenerator must be a ref type; hello world works again * make bootstrapping work again * progress: add back the 'exactReplica' ideas * added back the missing exactReplica hacks * make tcompilerapi work again * make important packages green * attempt to fix the build for 32 bit machines (probably need a better solution here)
* Use typeflag insteadClyybber2020-08-101-2/+3
|
* Make explicit {.nimcall.} a seperate calling conventionClyybber2020-08-081-2/+2
|
* fix #14421 items uses lent T (#14447)Timothee Cour2020-05-291-1/+2
| | | | | * fix #14421 items uses lent T for seq + openArray * add -d:nimWorkaround14447 * fix test
* `nim doc --backend:js`, `nim doc --doccmd:-d:foo`, `nim r --backend:js`, ↵Timothee Cour2020-05-111-3/+3
| | | | | | | | | | `--doccmd:skip` + other improvements (#14278) * `nim doc --backend:js|cpp...` `nim doc --doccmd:'-d:foo --threads:on'` `nim r --backend:cpp...` (implies --run --usenimcache) * --usenimcache works with all targets * --docCmd:skip now skips compiling snippets; 50X speedup for doc/manual.rst
* make case-object transitions explicit, make unknownLineInfo a const, replace ↵Jasper Jenkins2020-01-171-3/+3
| | | | a few magic numbers with consts (#13170)
* ARC: cycle detector (#12823)Andreas Rumpf2019-12-171-0/+1
| | | | | | | | | | | | | * 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: implemented a simple cycle detectorAraq2019-11-281-4/+6
|
* Cosmetic compiler cleanup (#12718)Clyybber2019-11-281-41/+40
| | | | | | | | | | | | | | | | | | * 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-2/+9
| | | | | | | | * 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-6/+9
|
* ARC: solves phase ordering problems (#12654)Andreas Rumpf2019-11-141-7/+4
|
* ARC: use the new .cursor annotation for 'up' pointersAraq2019-11-131-2/+6
|
* fixes #12577 [backport] (#12584)Andreas Rumpf2019-11-031-8/+4
|
* --gc:destructors: simple closures workAndreas Rumpf2019-11-021-9/+13
|
* --gc:destructors now means Nim uses pure refcounting (#12557)Andreas Rumpf2019-10-301-1/+2
|
* proof that refcounting can handle Nim's async (#12533)Andreas Rumpf2019-10-281-18/+18
|
* some progress on bug #12443Andreas Rumpf2019-10-271-1/+1
|
* refactoring: use the new strings and seqs when optSeqDestructors is activeAraq2019-10-201-3/+3
|
* refactoring: --newruntime consists of 3 different switchesAraq2019-10-201-10/+10
|
* fixes #12323 [backport]Andreas Rumpf2019-10-071-1/+3
|
* int128 on firstOrd, lastOrd and lengthOrd (#11701)Arne Döring2019-08-071-1/+1
| | | | * fixes #11847
* [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/+1
|
* styleCheck: make the compiler and large parts of the stdlib compatible with ↵Araq2019-07-101-4/+4
| | | | --styleCheck:error
* fixes #11523Andreas Rumpf2019-06-261-1/+2
|
* [bugfix] newruntime: trivial closure iterator worksAraq2019-06-201-0/+7
|
* [bugfix] owned closures (#11544)Andreas Rumpf2019-06-201-15/+47
|
* [refactoring] liftdestructors.nim is callable from lambdalifting; refs #11217Araq2019-06-121-1/+6
|
* make fullpaths the default in error messages and stack traces for mor… ↵Andreas Rumpf2019-06-051-3/+1
| | | | | | | | | | | | (#11385) * make fullpaths the default in error messages and stack traces for more convenient development * split up -d:release into -d:release and -d:danger flags * workaround a Nim config parser bug * fixes an old nim config parser bug * make megatest green again * make nimpretty tests work again * make nimsuggest green
* make twidgets example green (#11135)Andreas Rumpf2019-04-281-19/+27
|
* make strscans module work with --newruntimeAndreas Rumpf2019-04-141-3/+6
|
* ignore nkCommentStmt in lambda liftingAndreas Rumpf2019-02-061-1/+1
|
* fixes silly typo causing tons of async regressionsAraq2019-01-301-1/+1
|
* destructors: do not produce strong backrefs in closure environments so that ↵Araq2019-01-301-4/+17
| | | | refcounting works