[mercury-users] io.set_globals and uniqueness

Fergus Henderson fjh at cs.mu.OZ.AU
Wed Oct 19 10:52:55 AEST 2005

On 13-Oct-2005, Michael Day <mikeday at yeslogic.com> wrote:
> Why must the univ value passed to io.set_globals be unique?

I think the use of unique modes for io.set_globals and io.get_globals
is a bug.

I think the original reason for giving io.set_globals a "di" mode
is that io.get_globals has a "uo" mode, which can only be true if
io.set_globals has a "di" mode.  Unfortunately that is still not
a sufficient condition to allow io.get_globals to safely have a
"uo" mode, since the user could call io.get_globals twice in a
row and get two references to the same data.

> Are any bad
> things likely to happen if a non-unique value is passed after calling
> unsafe_promise_unique?

I think the answer is "no", so long as you are not relying on
the uniqueness of the value returned by io.get_globals.

Fergus Henderson                    |  "I have always known that the pursuit
                                    |  of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh>  |     -- the last words of T. S. Garp.
mercury-users mailing list
post:  mercury-users at cs.mu.oz.au
administrative address: owner-mercury-users at cs.mu.oz.au
unsubscribe: Address: mercury-users-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-users-request at cs.mu.oz.au Message: subscribe

More information about the users mailing list