Estimated hours taken: 2.5
Branches: main, release
extras/trailed_update/tr_array.m:
extras/trailed_update/tr_store.m:
extras/trailed_update/var.m:
extras/trailed_update/unsafe.m:
extras/trailed_update/samples/vqueens.m:
Use more recent syntax and make these modules
conform more closely to our coding standard.
Use the new foreign language interface.
Replace deprecated mode and inst syntax.
extras/trailed_update/samples/interpreter.m:
extras/trailed_update/samples/interpreter.exp:
s/mutvar/generic_mutvar/
Estimated hours taken: 1
Branches: main
Fix a problem that broke extras/trailed_update/samples/interpreter.
extras/trailed_update/samples/interpreter.m:
Use an assoc_list rather than a map when mapping from store__mutvars.
This is needed because store__mutvars (and other reference types)
can only be tested for equality, not compared. That changed
after my previous patch to add a new TYPE_CTOR_REP for references.
We need to disallow compare/3 on reference types because in *.agc
grades, their addresses might change after a garbage collection,
and the changes might not preserve the ordering.
extras/trailed_update/samples/interpreter.exp:
Update to reflect the above change to interpreter.m.
Branches: main
Estimated hours taken: 4
Fix some problems with the trailed_update tests.
extras/trailed_update/var.m:
Document that this module doesn't work in `.rt' grades (and why).
extras/trailed_update/samples/Mmakefile:
Disable the vqueens test in `.rt' grades.
Also, enable the interpreter test, since the reason for disabling
it is no longer valid now that the value numbering pass has been
deleted. But disable it for `.rt' grades, since it turns out
to fail for those.
Also, use $(DIFF_OPTS) rather than hard-coding "-c".
extras/trailed_update/samples/interpreter.exp:
Update to reflect the current output,
which has different variable numbers than the original output.
(The output also changed slightly when interpreter.m was changed
to use store__new rather than store__init.)
Estimated hours taken: 1
extras/trailed_update/samples/interpreter.m:
extras/trailed_update/samples/interpreter.exp:
Work around a (spurious) unique mode error, which was
caused by the recent changes to make unique mode checking
of higher-order terms and lambda expressions more strict.
The work-around is to avoid the use of the higher-order
pred unsorted_aggregate/4, and instead use impure code (ugh).
In the long term, a better solution would be to add support
for `call-once' higher-order modes.
Estimated hours taken: 4
extras/trailed_update/samples/interpreter.m:
New file. An example of the use of tr_store.m.
samples/interpreter.m:
Add pointer to extras/trailed_update/samples/interpreter.m.
extras/trailed_update/Mmakefile:
extras/trailed_update/samples/interpreter.inp:
extras/trailed_update/samples/interpreter.exp:
extras/trailed_update/samples/vqueens.exp:
New files. Some testing infrastructure.