[m-dev.] `pred' and `mode' declarations and the module system

Julien Fischer jfischer at opturion.com
Mon Jan 11 22:42:12 AEDT 2016


On Mon, 11 Jan 2016, Zoltan Somogyi wrote:

> On Mon, 11 Jan 2016 15:58:01 +1100 (AEDT), Julien Fischer <jfischer at opturion.com> wrote:
>> I suggest that we change the language definition to require that:
>>
>>     1. *all* mode declarations for an exported predicate or function must also
>>     be exported.
>>
>>     2. be explicit about the fact that mixing predmode declarations with separate
>>     mode declarations is an error.
>
> Agree on both points.

I'll post a change to the reference manual shortly.

>> (And make the implementation conform to that.)
>
> Since I worked on this recently, I will do that.

Incidentally, the background to this is some of the tests cases in
tests/invalid that have never been enabled.  If you're looking at
the frontend you may also want to take a look at:

   tests/invalid/parent.undeclared_child
   tests/invalid/bad_detism

Ths issues I raised above are due to

    tests/invalid/typeclass_dup_method_mode

The method p/1 has both a predmode declaration and a separate mode
declaration.  (We also don't pass that test due to not checking for
indistinguishable modes in type class declarations.)

Julien.



More information about the developers mailing list