[m-dev.] for review: retry across I/O

Zoltan Somogyi zs at cs.mu.OZ.AU
Wed Dec 6 12:14:28 AEDT 2000


On 05-Dec-2000, Fergus Henderson <fjh at cs.mu.OZ.AU> wrote:
> On 07-Nov-2000, Fergus Henderson <fjh at cs.mu.OZ.AU> wrote:
> > It's also possible to write predicates that have two io__state
> > arguments but both have mode `out'.  E.g.
> > 
> > 	main(IO0, _IO) -->
> > 		nasty_fail(IO0, IO0).
> > 
> > 	:- mode nasty_fail(in, in) is erroneous.
> > 	nasty_fail(_, _) :- throw("ouch").
> ...
> > It should not be an error to write code which declares an io__state argument
> > to have mode `any'.  For example, the following should be legal:
> > 
> > 	main(IO0, _IO) -->
> > 		another_nasty_fail(IO0, IO0).
> > 
> > 	:- mode another_nasty_fail(in(any), in(any)) is erroneous.
> > 	another_nasty_fail(_, _) :- throw("ouch").
> 
> What does your code do with these two test cases now?

It leaves them untransformed. There is no compiler abort or anything.
I added a test case to the valid directory to make sure.

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