[m-dev.] for review: direct retry
Zoltan Somogyi
zs at cs.mu.OZ.AU
Thu Oct 12 13:30:10 AEDT 2000
On 12-Oct-2000, Fergus Henderson <fjh at cs.mu.OZ.AU> wrote:
> > compiler/stack_layout.m:
> > Generate the three new fields.
>
> Which three new fields?
> (From the description above, I only count two, and I'm not quite sure
> about those...)
compiler/stack_layout.m:
Generate the three new fields: the evaluation method, (maybe) the id
of the stack slot containing the saved value of maxfr, and (maybe)
the id of the stack slot containing the call table tip.
> > compiler/handle_options.m:
> > Disable hijacks if debugging is enabled. This is required for the
> > correctness of the code we use to restore the stacks for direct
> > retries.
>
> What about when you mix code which is compiled with debugging and
> without debugging? Does the direct retry code work correctly in
> that case?
compiler/handle_options.m:
Disable hijacks if debugging is enabled. The code we now use to
restore the stacks for direct retries works only if the retry does not
"backtrack" over a hijacked nondet stack frame whose hijack has not
been undone. Note that code compiled without debugging may still hijack
nondet stack frames. Execution may reemerge from the nondebugged region
in one of two ways. If the nondebugged code returns, then it will have
undone hijack, and the retry code will work. If the nondebugged code
calls debugged code, there will be a region on the stacks containing
no debugging information, and the retry command will refuse to perform
retries that go into or beyond this region. Both cases preserve
correctness.
I have also put this as a comment in handle_options.m.
> [I haven't looked at the diff yet, just at the log message.]
I want to work on a change that depends on this, so I want to commit this
before I go home today.
Zoltan.
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to: mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions: mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------
More information about the developers
mailing list