| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
[bugfix]
* add vm value preparation proc
* small optimization
|
|
|
|
|
|
| |
* macrocache improvements
* fix macrocache implementation
|
|
|
|
|
|
| |
* intVal works now on enum field symbols
* disable flakey titerators test
|
| |
|
| |
|
|
|
|
|
| |
* remove immediate from tests
* remove immediate from the compiler
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
* allow void macro result
* add test for void macro result type
|
| |
|
| |
|
|
|
|
|
| |
* fixes #11180, forbid casting to unchecked array.
* allow UncheckedArray as param
|
|
|
| |
Merging
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Revert "Support for stmtListExpr in parser after major keywords. Scaled down version. (#10852)"
This reverts commit 862897dc0f122e374c0e4d44770ffcd8825e51e3.
* redo fix for #4035
* render stmtlistExpr using semicolon
* Revert "render stmtlistExpr using semicolon"
This reverts commit cafb78b8d5b125b5f6ba94248377a1433b3138cb.
* revert test
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
version. (#10852)
* Support for stmtListExpr in parser after major keywords
* fixes #4035
|
| |
|
|
|
|
|
| |
* fixes #10807
* use nkAddr instead of nkHiddenAddr
|
|
|
|
|
|
| |
* --define:nimQuirky exception handling for Nim; in preparation of a blog post
* make it work with latest system.nim
* make code more readable
* fixes #10702
|
| |
|
|
|
| |
Fixes #8997
|
|
|
| |
Fixes #10548
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* fix #10339 by checking for nkObjConstr
* revert check for nkObjConstr, return type from nkEmpty node
The correct type needed in `semObjConstr` to fix #10339 is indeed
available, but attached to an `nkEmpty` node. These were previously
discarded in `semTypeNode`, which is used to extract the type for the
object.
* simplify return of PType from `nkEmpty`
* also fixes #9866, add test case
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
| |
fixes #7670.
|
|
|
|
|
|
| |
* newLit works on enum
* remove debugging echo
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Fix result not being able to use in quote do
This fixes the annoying issue of not be able to use result inside a
quote do block. It works by a simple trick. The quote do mechanic is
based on dynamically creating a template and immediately calling it with
the arguments found within the quote do block. Since this is called in
the scope of the macro the result variable is shadowed. This trick works
by changing all occurences of result (which shouldn't cause any issues
as result isn't used for anything else for the same reason) to another
name and then passing in an IdentNode with result as a named parameter
with that name.
Note that currently this just replaces it with a fixed named variable
"res" which should be changed to a non-colliding, dynamically created
name.
* Fix hard coded parameter "res" to anonymous symbol
This fixes the hard coded parameter "res" to be an anonymous symbol
instead so it won't collide with other parts of the argument list.
* Add test case for result in quote do block
A simple test case based on GitHub issue #7323 on how you can't put
result in a quote do block. This test verifies that it actually works
correctly now.
* Add test for explicit capturing of result
* Rebased against devel
|
| |
|
|
|
|
|
| |
* change generic `tissues` name to more specific
* change `tvarious` to more specific names
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
| |
|