summary refs log tree commit diff stats
path: root/compiler/lowerings.nim
Commit message (Collapse)AuthorAgeFilesLines
* Step2: fixes #13781, fixes #13805 (#13897)cooldome2020-04-161-0/+7
| | | | | | | | | * 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>
* fixes #13708 (#13711)cooldome2020-03-211-2/+2
| | | | | | * fixes #13708 * differentiate between arc and rest of GC Co-authored-by: cooldome <ariabushenko@bk.ru>
* fixes #13368 (#13397)cooldome2020-02-141-2/+3
|
* make case-object transitions explicit, make unknownLineInfo a const, replace ↵Jasper Jenkins2020-01-171-1/+1
| | | | a few magic numbers with consts (#13170)
* Sink to MemMove optimization in injectdestructors (#13002)cooldome2020-01-021-2/+8
|
* fixes #12989 (#12992)cooldome2019-12-311-1/+0
| | | | | | | * fixes #12989 * Revert "remove unwanted changes" This reverts commit 501829732a8e44deef2d815c303859efbe452cb5.
* Revert "fixes #12989"Andrii Riabushenko2019-12-311-0/+1
| | | | This reverts commit 928c2fee06bd11a0901c5f563b4953788be76ae6.
* fixes #12989Andrii Riabushenko2019-12-311-1/+0
|
* ARC: fixes cycle detection and move the .cursor attribute into closures (#12872)Andreas Rumpf2019-12-111-0/+1
|
* Cosmetic compiler cleanup (#12718)Clyybber2019-11-281-76/+76
| | | | | | | | | | | | | | | | | | * 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: ported the GC tests over to --gc:arcAraq2019-11-261-0/+1
|
* Revert "ARC: another critical bugfix; temporary tuples we introduce for ↵narimiran2019-11-241-1/+0
| | | | | | tuple unpackaging are not owning the data" This reverts commit 8b2f8f5430e8c328efe5bce94e397f15e3c501af.
* ARC: another critical bugfix; temporary tuples we introduce for tuple ↵Araq2019-11-221-0/+1
| | | | unpackaging are not owning the data
* more arc improvements (#12690)Andreas Rumpf2019-11-201-0/+8
| | | | | * ARC: bugfix for =destroy for inherited objects * added code useful for debugging
* Small ast.nim cleanup (#12156)Clyybber2019-09-091-5/+5
| | | | | * Remove sonsLen * Use Indexable
* Support iterators returning lent T (#11938)cooldome2019-08-311-2/+2
| | | | | | | * lent iterators * rebase tests * update changelog * fix comments, more tests
* int128 on firstOrd, lastOrd and lengthOrd (#11701)Arne Döring2019-08-071-2/+2
| | | | * fixes #11847
* [refactoring] remove unused imports in the compiler and in some stdlib modulesAraq2019-07-181-1/+0
|
* [refactoring] moves transformation for 'spawn' into its own spawn.nim ↵Araq2019-07-141-428/+15
| | | | implementation
* fixes #7057Andreas Rumpf2019-07-061-1/+1
|
* [bugfix] owned closures (#11544)Andreas Rumpf2019-06-201-0/+3
|
* fixes #11215Araq2019-05-121-2/+2
|
* rename tyExpr/tyStmt to tyUntyped/tyTyped (#11227)Arne Döring2019-05-111-2/+2
|
* Replace countup(x, y-1) with x ..< yClyybber2019-05-071-2/+2
|
* added lowerings.evalOnceAraq2019-04-091-0/+16
|
* more destructor based changes (#10885)Andreas Rumpf2019-03-231-1/+1
| | | | | | | | | | | * mark user defined destructors with sfOverriden to simplify the logic * refactoring in preparation to merge liftings and generic instantiations for destructors * ast: introduce nkHiddenTryStmt for destructor generation in order to be able to optimize better the code later on * renamed 'patterns' switch to 'trmacros' as it was totally misleading before * destructors: introduce tfCheckedForDestructor flag in preparation of strict =destroy checking * test for invalid/too late destructor introductions * liftdestructors: make code robust for nimsuggest * --newruntime works for hello world again * newruntime: code generation for closures
* added lowerings.genLen helper procAndreas Rumpf2019-03-141-0/+9
|
* Tuple unpacking now works for `for` vars (#10152)Neelesh Chandola2019-02-231-6/+14
| | | | | | | | * Tuple unpacking now works for `for` vars * Give error if length of tuple vars != length of tuple * Fix error message showing wrong tuple length * unpacking now works now for mutable items * Update changelog
* Destructors: more moves for tuples (#9808)cooldome2018-11-271-1/+1
|
* Change the order of compilation passes, transformation is made lazy at code ↵cooldome2018-10-181-0/+2
| | | | | | | | | | | | | | | gen (#8489) * Ast no transformation * Add getImplNoTransform to the macros module * progress on delaying transf * Fix methods tranformation * Fix lazy lambdalifting * fix create thread wrapper * transform for lambda lifting * improve getImplTransformed * Fix destructor tests * try to fix nimprof for linux
* Field checks for everybody (#8957)LemonBoy2018-10-091-12/+18
| | | | | | | | | | | | | | | | | | | | | * Field checks for JS backend * Clean nkCall nodes with no arguments Generating a nkEmpty in place of no arguments makes no sense form the AST point of view and also trips up the VM codegen. * Field checks for VM backend * Test case for #6612 This patchset fixes #6612 * Add test case for LHS double evaluation * Prevent LHS double-eval for JS backend * Prevent double evaluation in VM backend
* allow referencing other parameters in default parameter valuesZahary Karadjov2018-06-161-0/+12
| | | | | | | | fix #7756 fix #1201 fix #7000 fix #3002 fix #1046
* refactoring: remove idents.legacy global variable and pass the IdentCache ↵Andreas Rumpf2018-05-271-37/+37
| | | | around explicitly
* remove more global variables in the Nim compilerAndreas Rumpf2018-05-271-1/+2
|
* platform.nim doesn't use globals anymore; prepare msgs.nim for not using globalsAndreas Rumpf2018-05-181-2/+2
|
* preparations of making compiler/msgs.nim free of global variablesAndreas Rumpf2018-05-171-1/+1
|
* remove ast.emptyNode global; cleanup configuration.nimAraq2018-05-161-9/+13
|
* options.nim: no global variables anymoreAndreas Rumpf2018-05-131-20/+24
|
* lambda lifting compiles againAndreas Rumpf2018-05-121-62/+62
|
* preparations for language extensions: 'sink' and 'lent' typesAndreas Rumpf2018-01-071-2/+2
|
* implemented undocumented '.liftLocals' featureAndreas Rumpf2017-11-021-2/+4
|
* deprecated unary '<'Andreas Rumpf2017-10-291-2/+2
|
* initial version of the new untested destructor passAndreas Rumpf2017-10-121-0/+11
|
* first implementation of the 'func' keywordAndreas Rumpf2017-09-231-1/+1
|
* closures have an object type field so that we can perform correct deepCopy() ↵Andreas Rumpf2017-07-221-9/+11
| | | | for the BoehmGC target
* fixes tuple unpacking regressionAndreas Rumpf2017-04-261-1/+1
|
* make nimble compile againAndreas Rumpf2017-04-221-1/+1
|
* make sighashes work in more casesAndreas Rumpf2017-04-211-10/+54
|
* attempt to make sighashes produce smaller diffsAndreas Rumpf2017-04-191-1/+1
|
* re-enable object name generation for less dependence on IDsAraq2016-12-051-1/+2
|