summary refs log tree commit diff stats
path: root/compiler/trees.nim
Commit message (Collapse)AuthorAgeFilesLines
* Revert "fix #16185 (#16195)" (#16197)Andreas Rumpf2020-11-301-15/+0
| | | This reverts commit bb4b27a2ca414f06fbb9d14ff76fa02a088ac141.
* fix #16185 (#16195)cooldome2020-11-301-0/+15
| | | | | | | | | | | * fix #16185 * fix test * fix comment * fix comment * better approach
* fixes #16069; [backport:1.2] [backport:1.4] (#16115)Andreas Rumpf2020-11-241-1/+1
| | | | | * fixes #16069; refs https://github.com/nim-lang/RFCs/issues/257 [backport:1.2] [backport:1.4] * make tests green again
* implements https://github.com/nim-lang/RFCs/issues/258 (#15503)Andreas Rumpf2020-10-061-1/+13
| | | | | | | | | * implements https://github.com/nim-lang/RFCs/issues/258 * don't be too strict with custom pragma blocks * cast pragmas: documentation * added most missing inference query procs to effecttraits.nim
* fixes https://github.com/nim-lang/RFCs/issues/257 [backport:1.2] (#15479)Andreas Rumpf2020-10-031-2/+2
|
* implements https://github.com/nim-lang/RFCs/issues/257 (#15466)Andreas Rumpf2020-10-021-0/+7
|
* views: yet another bugfix (#15447)Andreas Rumpf2020-10-011-0/+5
| | | | | | | * views: yet another bugfix * views: extended the spec * views: take into account potential hidden mutations via proc calls
* borrow checking (#15282)Andreas Rumpf2020-09-091-1/+1
| | | | | | | | | | | * refactoring: move procs to typeallowed.nim * frontend preparations for first class openArray support * prepare the code generator for first class openArray * code generation for first class openArray; WIP * code generation for open arrays, progress * added isViewType proc * preparations for borrow checking * added borrow checking to the front end
* drnim: tiny progress (#13882)Andreas Rumpf2020-04-151-0/+21
| | | | | | | | | | | * drnim: tiny progress * refactoring complete * drnim: prove .ensures annotations * Moved code around to avoid code duplication * drnim: first implementation of the 'old' property * drnim: be precise about the assignment statement * first implementation of --assumeUnique * progress on forall/exists handling
* DrNim (Nim compiler with Z3 integration) (#13743)Andreas Rumpf2020-03-311-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | * code cleanups and feature additions * added basic test and koch/CI integration * make it build on Unix * DrNim: now buildable on Unix, only takes 10 minutes, enjoy * added basic documentation for DrNim which can also be seen as the RFC we're following * drnim: change the build setup so that drnim.exe ends up in bin/ * makes simple floating point ranges work * added basic float range check * drnim: teach Z3 about Nim's range types plus code refactoring * drnim: make unsigned numbers work * added and fixed index checking under setLen * first implementation of .ensures, .invariant and .assume (.requires still missing and so is proc type compatibility checking * drnim: .requires checking implemented * drnim: implemented .ensures properly * more impressive test involving min() * drnim: check for proc type compatibility and base method compatibility wrt .requires and .ensures * testament: support for 'pattern <directory> * koch: uses new <directory> feature of testament * drnim: added tiny musings about 'old' * Make testament work with old SSL versions * koch: add support for 'koch drnim -d:release' * drnim: preparations for the param.old notation
* fix #13730 (#13787)Timothee Cour2020-03-281-2/+6
|
* trees.nim: compare floating points by their bitpatterns because NaN ↵Araq2020-03-231-1/+1
| | | | comparisions are always false (WORST design in the history of computing!)
* trees.nim: compare floating points by their bitpatterns because NaN ↵Araq2020-03-231-1/+1
| | | | comparisions are always false (WORST design in the history of computing!)
* new feature: --staticBoundChecks:on to enforce static array index checking ↵Andreas Rumpf2020-03-181-0/+1
| | | | (#10965)
* better support for PROGMEM like annotations for lets/vars; fixes #12216 (#12799)Andreas Rumpf2019-12-051-5/+12
|
* Cosmetic compiler cleanup (#12718)Clyybber2019-11-281-19/+19
| | | | | | | | | | | | | | | | | | * 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
* Small ast.nim cleanup (#12156)Clyybber2019-09-091-5/+5
| | | | | * Remove sonsLen * Use Indexable
* [refactoring] remove unused imports in the compiler and in some stdlib modulesAraq2019-07-181-1/+1
|
* Render deprecated pragmas (#8886)LemonBoy2019-06-031-0/+6
| | | | | | | | | * Render deprecated pragmas * fix the expected html * clean up the documentation regarding deprecations * fix typo * fix system.nim * fix random
* Replace countup(x, y-1) with x ..< yClyybber2019-05-071-3/+3
|
* introduce temporary <//> for 'owned' to get this compile with 0.19 (#11145)Andreas Rumpf2019-05-021-1/+1
| | | | | | | | * introduce temporary <//> for 'owned' to get this compile with 0.19 * make newTable[string, owned Node]() compile (but it crashes) * make sink/owned parameters consistent * make actiontable test compile again * VM: support sytem.move; makes tests green
* more destructor based changes (#10885)Andreas Rumpf2019-03-231-0/+10
| | | | | | | | | | | * 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
* allow uints to appear in deep constant expressionsJacek Sieka2018-12-051-2/+1
|
* introduce nkTupleConstr AST node for unary tuple construction; breaking changeAndreas Rumpf2018-04-131-1/+1
|
* the .deprecated pragma for procs now supports a user-definable deprecation ↵Andreas Rumpf2018-02-021-1/+1
| | | | message
* preparations for language extensions: 'sink' and 'lent' typesAndreas Rumpf2018-01-071-1/+1
|
* deprecated unary '<'Andreas Rumpf2017-10-291-1/+1
|
* introduce a pre-processing pass for the concept bodiesZahary Karadjov2017-06-201-3/+5
| | | | | | | fixes #4982 fixes #3805 close #3414
* improved comment satement support in macros (#5904)Arne Döring2017-06-021-0/+1
|
* isDeepConstExpr helper can handle nkRangeAndreas Rumpf2017-05-011-1/+1
|
* update code from a time when unsigned didn't existAraq2017-02-161-1/+1
|
* fixes #5391Araq2017-02-161-1/+1
|
* removed tyArrayConstr completely from the compiler; introduced tyAlias ↵Araq2016-11-141-1/+1
| | | | instead in preparation for further bugfixes
* big refactoring: step 1Araq2016-10-311-1/+1
|
* Cleanup and fix isConstExpr to return true for all atomic node types.Matthew Baulch2016-08-271-4/+2
|
* Remove unnecessary result initialisations.Matthew Baulch2016-08-271-2/+1
|
* Remove useless/misleading comment. flattenStmts not only for patterns.Matthew Baulch2016-08-271-1/+0
|
* Remove unused procs getProcSym, getOpSym.Matthew Baulch2016-08-271-11/+0
|
* Remove (unused) flattenTree proc.Matthew Baulch2016-08-271-14/+0
|
* Remove (unused) swapOperands proc.Matthew Baulch2016-08-271-5/+0
|
* Rewrite cyclicTree. Performance improved by approx 50%.Matthew Baulch2016-08-271-20/+10
|
* fixes #4354Andreas Rumpf2016-08-041-7/+12
|
* fixes #2985Araq2015-06-251-4/+8
|
* VM: minor fixes to make lexim workAraq2015-04-201-42/+42
|
* fixes #1547Araq2014-11-271-1/+3
|
* Nimrod renamed to NimAraq2014-08-281-1/+1
|
* case consistency: cs:partial bootstraps on windowsAraq2013-12-291-2/+2
|
* case consistency part 1Araq2013-12-271-18/+18
|
* implemented large parts of the 'not nil' checkingAraq2013-06-091-2/+1
|
* Removes executable bit for text files.Grzegorz Adam Hankiewicz2013-03-161-0/+0
|