[m-dev.] proposal: drop automatic initialisation of solver types
Julien Fischer
juliensf at csse.unimelb.edu.au
Fri Oct 26 16:43:05 AEST 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?
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