[m-rev.] for review: a better approximation to rational debugging
Ian MacLarty
maclarty at cs.mu.OZ.AU
Fri Jul 8 19:21:38 AEST 2005
On Fri, 8 Jul 2005, Mark Brown wrote:
> On 06-Jul-2005, Ian MacLarty <maclarty at cs.mu.OZ.AU> wrote:
> > + Node = exit(_, CallId, _, _, _, _, _)
> > + ->
> > + %
> > + % Only include an exit node as a missing answer child
> > + % if it produces output. If the exit event doesn't
> > + % produce output then the only way the call could have
> > + % behaved differently is by failing, which won't change
> > + % the FAIL, NEGS or ELSE anchoring the end of the
> > + % current stratum.
>
> ...<thinks>...
>
> Ok, that's right. But I would add "since the rest of the goal failed anyway"
> to the end of that last sentence.
>
Done.
> > - % is anything other than failed.
> > + % This handles the following cases: redo, switch,
> > + % first_disj, later_disj, then and neg_succ. Also
> > + % handles cond when the status is anything other than
> > + % failed. We skip neg_succ nodes since they cannot
> > + % bind anything, so could not be the cause of the
> > + % FAIL, NEGS or ELSE anchoring the end of the
> > + % current stratum.
>
> Also add that here, or else change it to "We skip neg_succ nodes for the
> same reason that we skip exit nodes where there are no outputs (see above)"
> or something like that.
>
Followed your second suggestion.
> > +:- pred calls_arguments_are_all_ground(S::in, R::in) is semidet
> > + <= annotated_trace(S, R).
> > +
> > +calls_arguments_are_all_ground(Store, CallId) :-
> > + call_node_from_id(Store, CallId, Call),
> > + Args = Call ^ call_atom_args,
> > + %
> > + % XXX The following won't work for partially instantiated arguments.
> > + %
> > + all [Arg] (
> > + (
> > + list.member(Arg, Args),
> > + Arg = arg_info(yes, _, _)
> > + )
>
> Restricting the test to programmer visible arguments is unnecessary, and
> possibly harmful (I can't think of any examples that would make any
> difference at the moment, but if there ever were any cases where it would
> make a difference in future then the above test would be wrong).
>
Agreed. I've changed it to check all arguments.
Thanks for that,
Ian.
--------------------------------------------------------------------------
mercury-reviews mailing list
post: mercury-reviews at cs.mu.oz.au
administrative address: owner-mercury-reviews at cs.mu.oz.au
unsubscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: unsubscribe
subscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------
More information about the reviews
mailing list