summary refs log tree commit diff stats
path: root/compiler/vm.nim
Commit message (Collapse)AuthorAgeFilesLines
* VM profiler (#14833)Ico Doornekamp2020-07-091-12/+5
| | | | | | | | | | | | | | | | | | | | | | | | | * Crude VM profiler * Added --profileVM flag, refactoring * fixed FileLine hash * Use TLineInfo instead of own FileLine, updated formatting * Refactoring, moved PStackFrame to vmdefs for cleaner data structure * Moved vmprofiler to separate file * Simplified TLineInfo hash, use toFileLineCol for output * Hash * Moved profile data into Config, dump only once at end of run * Changed profile output header to show '#instr' instead of 'count' * Do not accumulate instrcount for non-top frames Co-authored-by: Ico Doornekamp <git@zevv.nl>
* Deprecated laxStrings for mutating the internal zero terminator on strings ↵Juan Carlos2020-06-231-2/+0
| | | | | and its Deprecated code cleaned out (#14766) Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
* `hintMsgOrigin` now works in VM code (#14678)Timothee Cour2020-06-161-10/+8
| | | | | * `hintMsgOrigin` now works in VM code * remove a simplification for now
* fixes #14340Araq2020-05-141-4/+4
|
* Make ./koch temp --gc:arc work (#14186)Clyybber2020-05-011-3/+6
|
* fix https://github.com/timotheecour/Nim/issues/88 (#13865) [backport:1.2]Timothee Cour2020-04-061-30/+23
|
* Fix vm.nim for --gc:arc (#13741)Clyybber2020-03-261-14/+2
| | | | | | | | | | | | | * koch boot --gc:arc now passes the nim stage ... but generates invalid C code * Move it closer to where its used * Try something else * Poor mans var * Use UncheckedArray instead
* fixes #13744 (#13749)cooldome2020-03-251-0/+6
| | | | | | | * fixes #13744 * improve style Co-authored-by: cooldome <ariabushenko@gmail.ru>
* Remove dead magics (#13551)Arne Döring2020-03-031-5/+0
|
* fix #13479 (#13503)Arne Döring2020-02-261-2/+2
|
* make goto based exceptions available for 'nim cpp' (#13244)Andreas Rumpf2020-01-251-1/+1
| | | | | * make goto based exceptions available for 'nim cpp' * optimize seq.add to be comparable to C++'s emplace_back
* VM: allow overriding MaxLoopIterations without rebuilding nim (#13233)Timothee Cour2020-01-231-4/+3
|
* make case-object transitions explicit, make unknownLineInfo a const, replace ↵Jasper Jenkins2020-01-171-51/+26
| | | | a few magic numbers with consts (#13170)
* VM: support importc var, ptr/pointer types, cast int <=> ptr/pointer (#12877)Timothee Cour2020-01-051-19/+153
| | | | | | | | | | | | | | * VM: allow certain hardcoded special var variables at CT * VM: allow all importc var, cast[int](ptr) * fix tests tests/vm/tstaticprintseq.nim, tests/cpp/t8241.nim * VM: == works for ptr/pointer nodes * bugfix: ==, cast now also works for pointer, not just ptr * VM supports cast PtrLikeKinds <=> PtrLikeKinds / int * improve cname handling * fixup + bug fix * VM: support cast from ref to int * address comment: opcLdGlobalDeref => opcLdGlobalDerefFFI * defensive check against typ == nil
* VM: allow ptr setting ptr fields (#12825)Timothee Cour2019-12-061-1/+5
|
* fixes #11727 [backport]Araq2019-11-281-2/+4
|
* Cosmetic compiler cleanup (#12718)Clyybber2019-11-281-68/+68
| | | | | | | | | | | | | | | | | | * 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
* VM: improvements for var T/addr (#12667); fixes #12489Andreas Rumpf2019-11-281-0/+27
|
* fixes #12670 [backport] (#12693)Andreas Rumpf2019-11-201-1/+2
|
* ARC: solves phase ordering problems (#12654)Andreas Rumpf2019-11-141-10/+12
|
* backtick and export marker handling in `eqIdent` (#12574)Arne Döring2019-11-071-5/+16
|
* fixes #12244 [backport]Araq2019-10-101-1/+0
|
* VM: no special casing for big endian machines; refs #9690 [backport] (#12364)Andreas Rumpf2019-10-061-6/+2
|
* fixes #12281 [backport]Andreas Rumpf2019-09-301-5/+6
|
* Fix spellings (#12277) [backport]Federico Ceratto2019-09-271-4/+4
|
* add nodeId proc to macros (#11456)Arne Döring2019-09-181-0/+6
| | | | | | | | * add nodeId proc to macros * add doc comment. * fix typo
* rename cast opcodes, fix for 32bit cast, fix python pretty printer (#12207)Arne Döring2019-09-181-4/+4
|
* fixes #12195Araq2019-09-171-6/+14
|
* Small ast.nim cleanup (#12156)Clyybber2019-09-091-5/+5
| | | | | * Remove sonsLen * Use Indexable
* error for NimNode index kind (#12154)Jasper Jenkins2019-09-081-6/+10
|
* fixes #12125 (#12131)Andreas Rumpf2019-09-061-11/+14
| | | | * fixes #12125
* fixes #11903 (#11908)Arne Döring2019-08-311-1/+3
|
* new gensym handling (#11985)Andreas Rumpf2019-08-231-1/+1
| | | | | | | | | | | * new .gensym implementation * make astspec test green again * introduce a --useVersion switch to group compatibility switches * fixes #10180 * fixes #11494 * fixes #11483 * object constructor fields and named parameters are also not gensym'ed * disabled broken package
* Lock semchecked ast for macros (#11883) [bugfix]Arne Döring2019-08-081-10/+15
| | | | | | * reject to modify type checked AST * add flag to back out * Introduce legacy feature set.
* int128 on firstOrd, lastOrd and lengthOrd (#11701)Arne Döring2019-08-071-3/+3
| | | | * fixes #11847
* VM exception fixes (#11868)Oscar Nihlgård2019-08-021-2/+10
|
* Fix VM conversion to var type [bugfix] (#11866)Oscar Nihlgård2019-08-011-2/+2
|
* [refactoring] remove unused imports in the compiler and in some stdlib modulesAraq2019-07-181-1/+1
|
* 'nim check' stability improvementsAraq2019-07-141-1/+9
|
* fixes #8405: -d:useNimRtl now works even when {.rtl.} procs are used at ↵Timothee Cour2019-07-031-1/+4
| | | | compile time; CTFFI now works with {dynlib} (#11635)
* [refactoring] remove zeroExtend and friends from the compiler builtins. (#11531)Arne Döring2019-06-241-10/+0
| | | | | * remove zeroExtend and friends from the compiler builtins. * fix jssys
* fix for passing tuples as static params to macros (#11423); fixes #10751 ↵Arne Döring2019-06-071-3/+20
| | | | | | | | [bugfix] * add vm value preparation proc * small optimization
* fix macrocache implementation (#11404)andri lim2019-06-051-7/+9
| | | | | | * macrocache improvements * fix macrocache implementation
* intVal works now on enum field symbols (#11403)Arne Döring2019-06-051-3/+8
| | | | | | * intVal works now on enum field symbols * disable flakey titerators test
* pass typedesc as NimNode to macros (#11400)Arne Döring2019-06-051-2/+2
| | | | | | | | * change typedesc's design in macros * Manual and changelog entry. * add link to RFC
* make fullpaths the default in error messages and stack traces for mor… ↵Andreas Rumpf2019-06-051-1/+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
* Remove immediate pragma (#11308)Arne Döring2019-05-291-11/+6
| | | | | * remove immediate from tests * remove immediate from the compiler
* right shift is now by default sign preserving (#11322)Arne Döring2019-05-291-5/+11
| | | | | | | | | | | * right shift is now by default sign preserving * fix hashString and semfold * enable arithmetic shift right globally for CI * fix typo * remove xxx * use oldShiftRight as flag * apply feedback * add changelog entry
* Allow void macro result (#11286)Arne Döring2019-05-211-1/+1
| | | | | * allow void macro result * add test for void macro result type
* Replace countup(x, y) with x .. yClyybber2019-05-071-1/+1
|