Estimated hours taken: 2
Branches: main
Fix a bug in my recent diff to allow retries over predicates which are
passed an io.state in their polymorphic arguments.
The IO action number was not being reset if a retry was done over
a predicate with an io.state in one of its polymorphic arguments.
tests/debugger/Mercury.options:
Enable io tabling on poly_io_retry.
tests/debugger/poly_io_retry.exp:
tests/debugger/poly_io_retry.inp:
tests/debugger/poly_io_retry.m:
Test the bug fix.
Previously reexecuting the first call to polycall/3 would result
in another "1" being displayed.
trace/mercury_trace.c:
Find the IO action number of the call being retried to if a
polymorphic argument with an io.state value is found.
Estimated hours taken: 3
Branches: main
Allow retries over procedures which are called with an io.state type in one of
their polymorphic arguments.
tests/debugger/Mmakefile:
tests/debugger/poly_io_retry.exp:
tests/debugger/poly_io_retry.inp:
tests/debugger/poly_io_retry.m:
Test we can retry over a procedure with an io.state in it's
polymorphic arguments. Prevoiusly the retry would give an error
message like "some inputs are missing".
trace/mercury_trace.c:
Construct the type parameters for a call and pass these to
MR_is_io_state so it can instantiate any polymorphic arguments before
checking if they are io.state.
Set has_io_state to true if we find an io.state argument, since this
would not have been done previously if the argument was polymorphic.