[m-users.] Solvers in Mercury

Julien Fischer jfischer at opturion.com
Mon Oct 27 23:05:01 AEDT 2014


On Thu, 23 Oct 2014, Celelibi wrote:
> I'm not yet a user of Mercury, but I think about it as a replacement
> of Prolog + CLP(FD). :)
> I've read this paper about the solver types in Mercury:
> https://mercurylang.org/documentation/papers.html#padl06solver
> In the end, it says that a finite domain solver has been implemented
> as well as an interface to CPLEX.
> I wonder what happened to those codes.

The FD solver and CPLEX interface were originally developed as part of the G12
project.  They were taken over by Opturion, the spin out company from that

> Are they available somewhere?

Short answer: they have never been publicly released.

Longer answer: the G12 project moved away from the solver types approach to
interfacing with constraint solvers to one based on ground types and threaded
(mostly-)unique state and both the FD solver and CPLEX interface were
rewritten to use this new approach.

> Are they still working?

In their new form, yes.  In the form described in the paper above, no.  Some
of the details of the solver type implementation in Mercury have changed since
that paper was written.  In particular:

   - auto initialisation of solver type values is no longer supported
   - as a consequence of the above, solver types can now be nested
   - there is now support for dynamically moded higher-order values


More information about the users mailing list