[m-rev.] for review: feature set pragmas

Julien Fischer juliensf at csse.unimelb.edu.au
Fri Nov 30 16:31:02 AEDT 2007

On Fri, 30 Nov 2007, Peter Wang wrote:

> On 2007-11-30, Julien Fischer <juliensf at csse.unimelb.edu.au> wrote:
>>  For example,
>>  	:- pragma require_feature_set([trailing, double_prec_float, memo]).
>>  asserts that the module requires trailing, double precision floats and
>>  memoisation.  The compiler will emit an error message if these features
>>  are not available in the current compilation grade.  This is particularly
>>  helpful in cases like memoisation and parallel conjunction that are ignored
>>  by default in grades that do not support them.
> It would be useful for parallel conjunction benchmarks, but otherwise I
> can't think of a case where a program should *require* parallel conjunctions.

It could just be a lack of imagination on your part ;-)

BTW, is there a reason that parallel conjunction is not documented in
the reference manual?

> On a related note, maybe we need a pragma to document when a Mercury
> program depends on a particular operational semantics, e.g. strict
> sequential.

That's probably too coarse grained given that it's usually only very
small fragments of code that have such dependencies on the operational
semantics.  We have discussed the addition of sequential
conjunction/disjunction operators to Mercury for use in G12.
I think they are probably a better solution for this.

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

More information about the reviews mailing list