| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
* envPairs works in vm, nims
* fixup
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
* compiler/vmhooks: add getVar to allow vmops with var params
* addFloat vmops with var param
* cgen now renders float32 literals in c backend using roundtrip float to string
|
| |
|
|
|
|
|
|
|
| |
* enable VM tracing in user code via `{.define(nimVmTrace).}`
* add vmutils.vmTrace
* add vmTrace
|
|
|
|
|
|
|
|
|
|
|
| |
info to successx, add gc to compilesettings (#18252)
* merge BuildMode into SuccessX, add more info
* refactor duplicated with drnim
* fixup
* address comment
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
bsd (#17902)
* [WIP] bring back std/ prefix within compiler and ensure it works in bootstrap + bsd
* refs https://github.com/nim-lang/Nim/pull/16282#discussion_r616846863
* sounds very similar to https://github.com/nim-lang/Nim/pull/14291
* more: vmops
* update tools/ci_generate.nim
* auto-generate freebsd.yml as well, to avoid duplication with openbsd.yml
* cleanup
* undo temporary CI removal
|
|
|
|
|
|
|
|
| |
* CIs: attempt to use csources_v1
* also updated the BSDs
* also updated azure pipelines
* std modules should not itself use the 'std/' import dir...
* compiler has to be careful with std/ for v1 booting
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* fix nim js cmp fails at CT
* Add `hasClosure` to `std/effecttraits`
* type
* Update changelog.md
Co-authored-by: Timothee Cour <timothee.cour2@gmail.com>
* Update lib/std/effecttraits.nim
Co-authored-by: Timothee Cour <timothee.cour2@gmail.com>
Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
|
| |
|
|
|
|
|
| |
* fix js unsigned integer
* Use `std` prefix for standard library modules
* fix #17118
|
|
|
|
| |
* make system random work in VM
|
|
|
|
|
|
|
|
|
|
|
| |
* compilesettings: add libpath
* add test
* changelog
* fixup
Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
|
|
|
|
|
|
|
| |
* fix #16815 round+places works again in vm
* improve tests; fix for linux 32bit
* fix test for windows
|
| |
|
|
|
|
|
| |
* add math.copySign
* fix + tests
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* refactoring: idents don't need inheritance
* refactoring: adding an IdGenerator (part 1)
* refactoring: adding an IdGenerator (part 2)
* refactoring: adding an IdGenerator (part 3)
* refactoring: adding an IdGenerator (part 4)
* refactoring: adding an IdGenerator (part 5)
* refactoring: adding an IdGenerator (part 5)
* IdGenerator must be a ref type; hello world works again
* make bootstrapping work again
* progress: add back the 'exactReplica' ideas
* added back the missing exactReplica hacks
* make tcompilerapi work again
* make important packages green
* attempt to fix the build for 32 bit machines (probably need a better solution here)
|
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
`--doccmd:skip` + other improvements (#14278)
* `nim doc --backend:js|cpp...`
`nim doc --doccmd:'-d:foo --threads:on'`
`nim r --backend:cpp...` (implies --run --usenimcache)
* --usenimcache works with all targets
* --docCmd:skip now skips compiling snippets; 50X speedup for doc/manual.rst
|
|
|
|
| |
works even if implicitly set (#14277)
|
|
|
| |
* add --experimental:vmopsDanger; vmops cleanups
|
| |
|
|
|
|
|
|
|
|
| |
* Implement compileSetting() and compileSettingSeq()
* Change from magic to vmop
* better design for querySetting
Co-authored-by: genotrance <dev@genotrance.com>
|
|
|
|
|
|
|
| |
* Revert "remove default argument for readLines (#12807) [backport]"
This reverts commit c949b81efdeb08b38224e1678ad140b7b7663b15.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
|
|
|
|
|
| |
* added cpuTime to VM
* Hide VM-time cpuTime() behind --benchmarkVM flag
|
| |
|
|
|
|
| |
* fixes #12125
|
|
|
|
|
|
|
|
| |
* hashes: implement murmur3
* refactoring; there is only one murmurHash and it works at compile-time via VM hooks
* fixes JS tests
* makes toOpenArrayByte work with C++
* make it bootstrap in C++ mode for 0.20
|
|
|
|
|
|
|
|
| |
* Implement isExported for macros
* Reimplement isExported using VM callback mechanism
* VM does not support exceptions, use stacktrace() instead.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
add tests for vmops (#9925)
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
* make `mod` on floats available in the VM
* add testcase
* removed no longer needed imports
|
|
|
|
| |
between modules
|
| |
|
| |
|