[m-dev.] proposal: drop automatic initialisation of solver types
Ralph Becket
rafe at csse.unimelb.edu.au
Fri Oct 26 16:49:14 AEST 2007
Julien Fischer, Friday, 26 October 2007:
>
> 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.
>
> In light of this, I propose that we drop support for automatic
> initialisation.
>
> Objections?
I wholeheartedly endorse this change.
--------------------------------------------------------------------------
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