[m-dev.] for discussion: feature set pragma proposal

Julien Fischer juliensf at csse.unimelb.edu.au
Mon Nov 26 11:56:55 AEDT 2007

On Sun, 25 Nov 2007, Paul Bone wrote:

> On Fri, Nov 23, 2007 at 06:44:56PM +1100, Julien Fischer wrote:
>> Hi,
>> The following proposal (see diff below) is intended to catch things like
>> an absence of trailing in modules that require trailing earlier than link
>> time (where that particular problem is detected now.)
>> I haven't bothered document what the features below mean yet, although
>> they should be fairly self explanatory.
>> Comments?
>> +Features that can be included in the list of features are:
>> +
>> + at table @asis
>> +
>> + at item @samp{concurrency}
>> + at item @samp{single_prec_float}
>> + at item @samp{double_prec_float},
>> + at item @samp{memo}
>> + at item @samp{parallelism}
>> + at item @samp{trailing}
>> + at end table
>> +
> Sounds like a good idea.  How do you define the difference between
> concurrency and parallelism?

concurrency == supporting multiple execution streams at once, butnot
necessarily executing them in parallel.

parallelism == simultaneously executing parts of the program, be they
threads or conjuncts.

Actually, what I meant by parallelism in this context is that parallel
conjunction is supported in a meaningful fashion (i.e. parallel conjuncts are
actually run in parallel, they don't just decompose into sequential
conjunction.).  `parallel_conj' would be a better feature name.

> Can a program (easily) test an implementation to see if it supports some
> features at say ./configure time?  One could write a mini program with
> one of these pragmas in it and test that from their autoconf script.  Or
> should we distribute a small binary or shell script so that somebody can
> run "mercury_config --features" and examine the output?

The more natural alternative to all those would be to write an autoconf
macro that does the same, something like:

 	MMC_HAS_FEATURES([trailing, memo]).

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