| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
* use existing sort for CountTable, and
add SortOrder options to CountTable, OrderedTable sort(s)
* add some tests, runnables, etc.
* fix runnable imports
|
|
|
|
|
|
| |
* Extend the fix for #11018 to strings
* Fix testcase
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
currentException global is not an 'owned' ref
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
* fixes #10940
* bug fixes
* fix spacing
|
| |
|
|
|
|
|
|
|
|
| |
* fixes #10942
* add test
* bug build
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
* fixes #8202
* make tests green
|
|
|
|
|
|
|
|
| |
* calling the "_actual" versions of functions when defined within the same module - slowdown for the snappy compression is now down from x6 to x4-x5 when HCR is ON
* dynamically linking to the runtime for VS when HCR is on - binaries are smaller
* compilerProcs are also called using the _actual direct version within the module they are defined (system)!
* updated comments & goals
* handling VS-compatible compilers on Windows in a cleaner way
* now the .dll/.so files end up in the nimcache even when --nimcache isn't explicitly stated
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* mark user defined destructors with sfOverriden to simplify the logic
* refactoring in preparation to merge liftings and generic instantiations for destructors
* ast: introduce nkHiddenTryStmt for destructor generation in order to be able to optimize better the code later on
* renamed 'patterns' switch to 'trmacros' as it was totally misleading before
* destructors: introduce tfCheckedForDestructor flag in preparation of strict =destroy checking
* test for invalid/too late destructor introductions
* liftdestructors: make code robust for nimsuggest
* --newruntime works for hello world again
* newruntime: code generation for closures
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
* fixes #10117
* Add support for recursive tuples
* detect in generics
|
|
|
|
|
|
|
| |
version. (#10852)
* Support for stmtListExpr in parser after major keywords
* fixes #4035
|
|
|
|
|
|
| |
* fixes #10838
* reject func in types instead
* trigger tests
|
|
|
|
|
|
| |
* multi-methods need to be explicitly enabled
* update changelog, manual and tutorial
|
| |
|
|
|
|
|
|
| |
* revert discard in destroyer
* disable test
|
| |
|
| |
|
| |
|
|
|
|
|
| |
* fixes #10807
* use nkAddr instead of nkHiddenAddr
|
| |
|
|
|
|
|
| |
* move assertions and iterators out of system.nim
* limit nimsuggest tests to the first 3 suggestions
|
| |
|
| |
|
| |
|