[m-dev.] for review: implementation of --no-allow-hijacks

Fergus Henderson fjh at cs.mu.OZ.AU
Tue Jul 28 00:32:43 AEST 1998


On 27-Jul-1998, Zoltan Somogyi <zs at cs.mu.OZ.AU> wrote:
> 
> Extend the new failure handling method to optionally preserve an invariant
> required by accurate gc: always being able to tell with respect to what MR_sp
> or MR_curfr to interpret the stackvars and framevars referred to by the label
> whose address is the redoip slot of a nondet stack frame.

I don't understand that -- often the redoip slot will be `do_fail'.
What happens in that case?

> tests/{general,hard_coded}/space.{m,exp}:
> 	Move this test case from general to hard_coded.

You need to also modify tests/{general,hard_coded}/Mmakefile
(probably you have, but the log message didn't say so).

> tools/bootcheck:
> 	If the -r option is given, remove the stage2/runtime directory
> 	before creating it.

That one should probably be committed separately (indeed, I think you
did commit it separately), so it shouldn't be part of the log message
for this change.

> Index: tests/hard_coded/complex_failure.m
> +
> +% Note that NU-Prolog cannot execute this test case correctly. With -> ;
> +% notation, NU-Prolog does a hard neck cut, which is not Mercury's desired
> +% semantics; with the if-then-else notation, it delays the conditions
> +% since they are not ground.

Why not use the `if some [OutputVar] ...' notation?
I think that should work fine in both NU-Prolog and Mercury.

(I didn't look at all of this too closely... Tyson should still review it.)

-- 
Fergus Henderson <fjh at cs.mu.oz.au>  |  "I have always known that the pursuit
WWW: <http://www.cs.mu.oz.au/~fjh>  |  of excellence is a lethal habit"
PGP: finger fjh at 128.250.37.3        |     -- the last words of T. S. Garp.



More information about the developers mailing list