summary refs log tree commit diff stats
path: root/compiler/vm.nim
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* Replace countup(x, y-1) with x ..< yClyybber2019-05-071-3/+3
|
* Compiler plugin for implementing incremental computation in user space (#10819)cooldome2019-04-111-3/+1
| | | | | | | | | | This plugin provides essential building block for implementing incremental computations in your programs. The idea behind incremental computations is that if you do the same calculation multiple times but with slightly different inputs you don't have to recompute everything from scratch. Also you don't want to adopt special algorithms either, you would like to write your code in standard from scratch manner and get incrementality for free when it is possible. The plugin computes the digest of the proc bodies, recursively hashing all called procs as well . Such digest with the digest of the argument values gives a good "name" for the result. Terminology loosely follows paper "Incremental Computation with Names" link below. It works well if you have no side effects in your computations. If you have global state in your computations then you will need problem specific workarounds to represent global state in set of "names" . SideEffect tracking in Nim also useful in this topic. Classical examples: Dashboard with ticking data. New data arrives non stop and you would like to update the dashboard recomputing only changed outputs. Excel spreadsheet where user changes one cell and you would like to recompute all cells that are affected by the change, but do not want to recompute every cell in the spreadsheet.
* sizeof alignof offsetof macros api (#10855)Arne Döring2019-03-191-0/+21
|