summary refs log tree commit diff stats
path: root/compiler/guards.nim
Commit message (Collapse)AuthorAgeFilesLines
* init checks and 'out' parameters (#14521)Andreas Rumpf2020-06-231-1/+1
| | | | | | | | | | | * I don't care about observable stores * enforce explicit initializations * cleaner code for the stdlib * stdlib: use explicit initializations * make tests green * algorithm.nim: set result explicitly * remove out parameters and bring the PR into a mergable state * updated the changelog
* drnim: tiny progress (#13882)Andreas Rumpf2020-04-151-7/+10
| | | | | | | | | | | * 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/+3
| | | | | | | | | | | | | | | | | | | | | | | | * 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
* new feature: --staticBoundChecks:on to enforce static array index checking ↵Andreas Rumpf2020-03-181-11/+36
| | | | (#10965)
* fix operators containing percent for VM usage (#13536)Arne Döring2020-03-111-2/+2
| | | | * fixes #13513 * merge tarithmetics in tarithm
* Remove dead magics (#13551)Arne Döring2020-03-031-7/+4
|
* Cosmetic compiler cleanup (#12718)Clyybber2019-11-281-172/+172
| | | | | | | | | | | | | | | | | | * 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
* guards.nim:sameTree(): handle uint literals correctly (#12483) [backport]Paul Tan2019-10-221-1/+1
|
* Small ast.nim cleanup (#12156)Clyybber2019-09-091-2/+2
| | | | | * Remove sonsLen * Use Indexable
* fix min/max for float numbers (#12068)Arne Döring2019-09-021-2/+2
|
* int128 on firstOrd, lastOrd and lengthOrd (#11701)Arne Döring2019-08-071-2/+2
| | | | * fixes #11847
* fixes #11436Araq2019-06-191-3/+4
|
* Replace countup(x, y-1) with x ..< yClyybber2019-05-071-1/+1
|
* add custom pragma support for var and let symbols (#9582)jcosborn2019-01-071-4/+4
| | | | | | * add custom pragma support for var and let symbols * updated changelog for custom pragmas on var and let symbols * add oldast switch for backwards compatibility
* Change the order of compilation passes, transformation is made lazy at code ↵cooldome2018-10-181-1/+1
| | | | | | | | | | | | | | | 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
* remove more global variables in the Nim compilerAndreas Rumpf2018-05-271-1/+1
|
* platform.nim doesn't use globals anymore; prepare msgs.nim for not using globalsAndreas Rumpf2018-05-181-12/+12
|
* more modules compile againAndreas Rumpf2018-05-121-2/+2
|
* sempass2 compiles againAndreas Rumpf2018-05-111-2/+2
|
* guards.nim does compileAndreas Rumpf2018-05-111-115/+125
|
* Get symbol kind (#7491)Arne Döring2018-04-111-2/+4
|
* macros.nim: deprecated ! operatorAndreas Rumpf2017-11-191-2/+4
|
* fixes #5781Andreas Rumpf2017-11-181-1/+1
|
* deprecated unary '<'Andreas Rumpf2017-10-291-1/+1
|
* overloading resolution for getAst; breaking changeAraq2017-03-181-2/+3
|
* removed tyArrayConstr completely from the compiler; introduced tyAlias ↵Araq2016-11-141-1/+1
| | | | instead in preparation for further bugfixes
* refactoring complete: explicit ident cacheAraq2016-10-311-4/+0
|
* big refactoring: step 1Araq2016-10-311-0/+4
|
* compiler almost free of deprecated expr/stmt namesAndreas Rumpf2016-07-301-8/+8
|
* disjoint checker is smarter (and slower)Araq2015-09-231-7/+113
|
* made disjoint checker smarter; fixes regressionsAraq2015-09-231-3/+17
|
* Removed magics: mEqI64 mLtI64 mLeI64rku2015-06-101-3/+3
|
* Removed magics: mAddI64, mSubI64, mMulI64, mDivI64, mModI64rku2015-06-101-5/+5
| | | | Author: rku <rokups@zoho.com>
* sempass2: bugfixesAraq2015-04-281-2/+2
|
* added '..^' and '..<' operators; 'nil' is allowed for 'len'; added plugin ↵Araq2015-04-221-1/+2
| | | | system to the compiler
* cleaned up some magics to make room for new magics; added '..<' and '..^' ↵Araq2015-04-221-2/+2
| | | | templates
* fixes #2359Araq2015-03-161-2/+2
|
* disjoint checker is somewhat smarterAraq2015-03-161-2/+17
|
* fixes #2287Araq2015-03-121-42/+62
|
* fixes #325Araq2015-01-281-6/+0
|
* Happy new year!Guillaume Gelin2015-01-061-1/+1
|
* implemented 'guard' annotationAraq2014-09-211-0/+16
|
* Nimrod renamed to NimAraq2014-08-281-1/+1
|
* fixes tinavlid_array_bounds testAraq2014-08-101-1/+1
|
* Merge pull request #1279 from Varriount/fix-1216Simon Hafner2014-06-181-1/+1
|\ | | | | Fix issue #1216
| * Fix issue #1216Clay Sweetser2014-06-151-1/+1
| |
* | tdisjoint_slice2 worksAraq2014-05-311-0/+8
| |
* | 'parallel' proves array boundsAraq2014-05-291-4/+63
| |
* | 'parallel' statement almost workingAraq2014-05-221-21/+37
| |
* | 'parallel' statement: next stepsAraq2014-05-141-37/+75
| |