cooldome
041d15392a
Compiler plugin for implementing incremental computation in user space ( #10819 )
...
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.
2019-04-11 23:09:11 +02:00
..
meta.nim
make more tests green
2018-08-13 13:02:52 +02:00
t2574.nim
require errormsg to be specified before file.
2018-12-11 21:23:21 +01:00
tableinstatic.nim
Improved collection-to-string behavior ( #6825 )
2017-12-14 14:02:13 +01:00
tanonproc.nim
Merge tests into a larger file (part 5 of ∞) ( #9368 )
2018-10-16 10:50:10 +02:00
tarrayboundeval.nim
the parser finally parses 'echo {1,2}' as it should
2017-09-30 21:35:30 +02:00
tasmparser.nim
Remove expr/stmt ( #5857 )
2017-07-25 09:28:23 +02:00
tbitops.nim
Fix vm signed xor ( #10519 )
2019-02-01 12:12:10 +01:00
tcastint.nim
require errormsg to be specified before file.
2018-12-11 21:23:21 +01:00
tcgemptycallarg.nim
Field checks for everybody ( #8957 )
2018-10-09 19:54:12 +02:00
tcompiletimesideeffects.nim
Check there are no side effects before optimizing away compile time expressions. ( #9934 )
2018-12-31 14:41:24 +01:00
tcompiletimetable.nim
fixes #5327
2017-02-03 17:35:58 +01:00
tcomponent.nim
make more tests green
2018-08-13 13:02:52 +02:00
tconst_float_as_int.nim
fixes #4619
2016-08-23 01:10:34 +02:00
tconsteval.nim
updated tests to be executed
2018-11-23 11:58:28 +01:00
tconstobj.nim
Object downconversion in VM should not copy ( #10378 )
2019-01-22 07:36:40 +01:00
tconsttable.nim
tables work in 'const' sections; echo supports 'nil' strings; minor cleanups
2015-02-09 00:08:55 +01:00
tconsttable2.nim
cleanup tests; don't use non-working 'msg' spec field
2018-11-23 13:16:45 +01:00
tcopy_global_var.nim
fixes #5269
2017-02-05 08:51:43 +01:00
teval1.nim
updated tests to be executed
2018-11-23 11:58:28 +01:00
tevalffi.nim
disable compile-time FFI support
2019-02-23 11:34:39 +01:00
texcl.nim
Remove expr/stmt ( #5857 )
2017-07-25 09:28:23 +02:00
textensionmap.nim
fixes #5237
2017-01-19 13:26:22 +01:00
tfile_rw.nim
Compiler plugin for implementing incremental computation in user space ( #10819 )
2019-04-11 23:09:11 +02:00
tforwardproc.nim
lots of small changes
2018-12-11 21:23:22 +01:00
tgorge.bat
Fixes #4871
2016-10-09 18:02:48 +02:00
tgorge.nim
add getCurrentCompilerExe to vmops (eg allows to get nim compiler at CT); add tests for vmops ( #9925 )
2018-12-18 09:07:12 +01:00
tgorge.sh
make run the default action of a test in tester
2018-11-23 11:58:28 +01:00
tgorgeex.bat
added system.gorgeEx that includes the exitCode; refs #4874 ; fixes #1994
2017-01-07 02:38:26 +01:00
tgorgeex.sh
make run the default action of a test in tester
2018-11-23 11:58:28 +01:00
tinheritance.nim
cleanup tests; don't use non-working 'msg' spec field
2018-11-23 13:16:45 +01:00
tissues.nim
add isNamedTuple; make $(1, 2) be (1, 2) instead of (Field0: 1, Field1: 2) which leaked implementation detail ( #10070 )
2019-01-08 18:37:25 -08:00
tldconst.nim
tests: Trim .nim files trailing whitespace
2015-09-04 23:04:32 +02:00
tmisc_vm.nim
Rework exception handling in the VM ( #10544 )
2019-02-08 11:57:47 +01:00
tmitems_vm.nim
megatest can be executed
2018-12-11 21:23:21 +01:00
tnilref.nim
Improve vm support for ref types
2018-06-26 21:25:27 +02:00
tnimnode.nim
Improve dumpLisp macro ( #9515 )
2018-10-27 14:10:05 +01:00
toverflowopcaddimmint.nim
Add underflow/overflow tests.
2014-03-31 14:50:44 +02:00
toverflowopcaddint.nim
Add underflow/overflow tests.
2014-03-31 14:50:44 +02:00
toverflowopcmulint.nim
Add underflow/overflow tests.
2014-03-31 14:50:44 +02:00
toverflowopcsubimmint.nim
Add underflow/overflow tests.
2014-03-31 14:50:44 +02:00
toverflowopcsubint.nim
Add underflow/overflow tests.
2014-03-31 14:50:44 +02:00
tquadplus.nim
fixes #1023
2014-03-22 21:18:56 +01:00
tref.nim
Fix ref bug in vmgen ( #8424 )
2018-07-30 22:28:24 +02:00
treset.nim
added system.default in order to prevent the abstraction inversion that 'template default(T): untyped = (var x: T; x)' causes
2019-03-05 09:54:59 +01:00
triangle_array.nim
fixes #1781
2014-12-28 00:42:24 +01:00
tseq_badinit.nim
make tests green again
2018-08-13 23:16:03 +02:00
tsetlen.nim
fix #9872 : setLen now works properly at CT [backport]
2018-12-08 14:33:42 -08:00
tsignaturehash.nim
Compiler plugin for implementing incremental computation in user space ( #10819 )
2019-04-11 23:09:11 +02:00
tsimpleglobals.nim
cleanup tests; don't use non-working 'msg' spec field
2018-11-23 13:16:45 +01:00
tslurp.nim
updated tests to be executed
2018-11-23 11:58:28 +01:00
tstaticprintseq.nim
cleanup tests; don't use non-working 'msg' spec field
2018-11-23 13:16:45 +01:00
tstring_openarray.nim
Fix operations on string as openarray in VM. ( #6257 )
2017-09-15 13:35:57 +02:00
tstringnil.nim
make more tests green
2018-08-13 13:02:52 +02:00
tswap.nim
cleanup tests; don't use non-working 'msg' spec field
2018-11-23 13:16:45 +01:00
ttouintconv.nim
cleanup tests; don't use non-working 'msg' spec field
2018-11-23 13:16:45 +01:00
tvarsection.nim
Fix compileTime pragma applying to whole var/let section ( #10389 )
2019-01-22 07:55:11 +01:00
tvmmisc.nim
fixes #10886 [backport] ( #10897 )
2019-03-23 14:44:53 +01:00
tvmops.nim
32 bit fixes ( #10608 )
2019-02-13 23:30:14 +01:00
twrong_concat.nim
fixes #3804
2016-04-04 01:41:14 +02:00
twrongarray.nim
fixes #1343
2014-08-15 09:57:03 +02:00
twrongconst.nim
Remove expr/stmt ( #5857 )
2017-07-25 09:28:23 +02:00
twrongwhen.nim
make some tests green
2014-03-16 20:42:49 +02:00
tyaytypedesc.nim
fixes #3357
2015-09-23 21:46:33 +02:00
tzero_extend.nim
32 bit fixes ( #10608 )
2019-02-13 23:30:14 +01:00