Commit Graph

2 Commits

Author SHA1 Message Date
Ian MacLarty
17ca99b27e Fix a bug in my recent diff to allow retries over predicates which are
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.
2005-05-13 13:45:32 +00:00
Ian MacLarty
5ecee352bd Allow retries over procedures which are called with an io.state type in one of
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.
2005-05-11 09:39:22 +00:00