[m-dev.] pragma stub proposal
juliensf at csse.unimelb.edu.au
Wed Aug 12 16:25:29 AEST 2009
On Wed, 12 Aug 2009, Ian MacLarty wrote:
> On Wed, Aug 12, 2009 at 3:22 PM, Julien
> Fischer<juliensf at csse.unimelb.edu.au> wrote:
>> On Wed, 12 Aug 2009, Ian MacLarty wrote:
>>> I recently wrote a binding to JDBC in Mercury. To avoid errors when
>>> compiling the module in C grades (the module could still be linked in
>>> even if it isn't used) I added stub versions of the Java foreign procs
>>> like so:
>>> jdbc_get_dbms_name(_, _, _, _, !IO) :- error("non-Java grade").
>>> The problem with this is that I then get a determinism warning, since
>>> it is inferred erroneous.
>>> The other option is to use --allow-stubs and --no-warn-stubs, but that
>>> will create stubs for *all* predicates without any clauses,
>>> potentially hiding real errors.
>>> What I would prefer is to be able to tell the compiler to create stubs
>>> for a specific set of predicates with a pragma. For example:
>>> :- pragma stub(jdbc_get_dbms_name/6).
>> So you wouldn't provide the above clause in the presence of this pragma?
>> Or do you use the pragma as well as the clause and the effect of the
>> pragma is just to disable the warning for that predicate?
> You wouldn't provide the clause in the presence of this pragma.
But there could be foreign_proc pragmas for the predicate?
More information about the developers