[m-dev.] proposal: drop automatic initialisation of solver types

Julien Fischer juliensf at csse.unimelb.edu.au
Fri Oct 26 18:28:06 AEST 2007


On Fri, 26 Oct 2007, Mark Brown wrote:

> On 26-Oct-2007, Julien Fischer <juliensf at csse.unimelb.edu.au> wrote:
>>
>> There has been an on-and-off discussion about removing support for
>> automatic
>> initialisation for solver types.
>>
>> Automatic initialisation is problematic because:
>>
>> * it prevents solver types from being properly polymorphic, e.g.
>>   you cannot have the type foo(bar) where:
>>
>> 	:- solver type foo(T).
>> 	:- solver type bar.
>>
>> * the introduction of calls to the initialisation predicates complicates
>>   mode analysis.  Also, the compiler doesn't do a very good job of
>>   introducing them anyway: the introduction of the calls can change det
>>   code into semidet code etc.
>>
>> * we don't use automatic intialisation in practice anyway.  The solver
>>   types in G12 all require (or we recommend) using explicit
>>   initialisation predicates.
>>
>> * mode error messages are often poor or misleading because of
>>   interactions between automatic initialisation and impure code.
>
> * Sometimes you don't want to provide =/2, but provide some other mechanism
>  for constraining variables to be equal.  In this case, it would be very
>  useful for the compiler to detect implicit attempts to use =/2, and report
>  them as a mode error.

I don't see what this has to do with automatic initialisation.

Interestingly, the reference manual doesn't seem to say what should
happen when you omit the solver type equality and comparison preds.

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



More information about the developers mailing list