[m-rev.] for review: timestamp.m: fix order-of-eval problem
Ralph Becket
rafe at cs.mu.OZ.AU
Wed Nov 20 10:02:15 AEDT 2002
Fergus Henderson, Tuesday, 19 November 2002:
> > (P && Q)
> >
> > into
> >
> > (if P' then X1 = X1', ..., Xn = Xn', Q else false)
> >
> > where if the Xi are the output non-locals of P then
> >
> > P' = P[X1'/X1, ..., Xn'/Xn]
>
> I think that transformation would not handle dynamic modes or partially
> instantiated modes properly. That transformation only works if the
> initial insts of the Xi are all "free", not if they are partially
> instantiated or if they have the "any" inst.
As a first cut we could just forbid the use of && in these situations.
I admit that is less than ideal, but it would cover most day-to-day
situations.
> Also, at what point in the compilation process were you thinking of
> doing this transformation? If it is done before semantic analysis
> is finished, then the result will be confusing error messages,
> because the errors will refer to the transformed code rather than the
> source code.
Perhaps a better alternative would be to just add a new hlds_goal_expr
connective for ordered conjunction?
- Ralph
--------------------------------------------------------------------------
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