[mercury-users] List literals are falsely treated as being unique

Julien Fischer juliensf at csse.unimelb.edu.au
Mon Jan 5 22:16:35 AEDT 2009

On Mon, 5 Jan 2009, Michael Day wrote:

> Hi,
> Mercury will accept that the literal list [1,2,3] is unique and allow me to 
> pass it to a predicate that accepts lists with mode di.
> However, the list is stored as static data, in a non-writable page, so the 
> program will segfault if the list is actually modified.
> This is similar to the issue affecting set_char on strings.
> Summary: OUCH! Any program that performs destructive update on lists is only 
> one accidentally passed constant away from disaster.

Yes, we know about this one.  The CTGC system uses the approach in the 
outlined in the following diff to avoid it:

mercury-users mailing list
Post messages to:       mercury-users at csse.unimelb.edu.au
Administrative Queries: owner-mercury-users at csse.unimelb.edu.au
Subscriptions:          mercury-users-request at csse.unimelb.edu.au

More information about the users mailing list