[m-dev.] Reconsidering initialisation of solver types

Ralph Becket rafe at csse.unimelb.edu.au
Thu Jul 27 13:55:55 AEST 2006

I propose that we remove automatic initialisation of solver variables
from the solver types design.

Problems induced by automatic initialisation include:
- significant complication in the Mercury compiler;
- unpredictable code generation (i.e., there may be several different
  ways local solver variables in a clause could be automatically
  initialised, each leading to different scheduled code) which makes it
  harder to understand error messages;
- solver code often appears near impure code and error messages in these
  circumstances are often misleading (i.e., a symptom is reported rather
  than the cause);
- manual initialisation does not seem to be an issue for most solver
  programs (i.e., most of them explicitly initialise solver variables
  anyway), although this will make Programs using Herbrand variables
  ever so slightly less concise (but who uses Herbrand variables? :-)

Any objections?

-- Ralph
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