[m-dev.] Trailing

Fergus Henderson fjh at cs.mu.oz.au
Wed Aug 13 23:16:55 AEST 1997


Peter Schachte wrote:
> 
> The only catch is that we use values of max_fr to "segment" the trail,
> ie to decide when we need to trail something and when we don't, but
> max_fr doesn't change in this scheme.  So the hack to work around that
> would be to simply do max_fr++ immediately before the call to test/1,
> and max_fr-- immediately afterwards (anywhere up to the next call).

As we discussed, this won't work.  The nondet stack has a fixed structure,
and max_fr++ doesn't preserve that; that would make it impossible for
the garbage collector to trace the nondet stack properly.

The alternative we discussed was to have a separate global variable
(virtual machine register) called MR_ticket_count.
But I'm a bit concerned about the efficiency costs of this.

-- 
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