Nim/tests/vm
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