[m-dev.] location of assertions

Peter Wang novalazy at gmail.com
Tue Jul 3 15:25:47 AEST 2012

On Mon, 2 Jul 2012 18:18:41 +1000 (EST), Julien Fischer <juliensf at csse.unimelb.edu.au> wrote:
> On Mon, 2 Jul 2012, Zoltan Somogyi wrote:
> > On 02-Jul-2012, Peter Wang <novalazy at gmail.com> wrote:
> >> Assertions required for accumulator introduction are supposed to be
> >> written out to .opt files, right?
> >
> > I don't think that was ever specified; assertions were always too experimental
> > for that. But yes, if all the things (predicates, types) mentioned in an
> > assertion are exported, I think the assertion should be exported as well.
> You would want them in the .int file if they are originally exported
> from a module.   Local assertions should of course appear in the .opt
> file as per local procedures that end up being opt-exported.   (They
> should of course appear in the appropriate private interface file
> whenever submodules are involved.)

In terms of what was intended up till now:

1. intermod.m contains code to write assertions out to .opt files.
   It is never used because predicates representing assertions have
   `status_local' which causes them to be filtered out.

2. modules.m says:
    % Strip out the imported interfaces, assertions are also
    % stripped since they should only be written to .opt files,

That is not to say we shouldn't change it.

> Incidentally, there's an open issue with asssertions and type
> qualifiers, see bug #193
> <http://bugs.mercury.csse.unimelb.edu.au/view.php?id=193>.
> (The fix for #193 is to normalize the form of the assertion clause and
> eliminate the introduced variables just before it is entered into the
> assertion table.)

Is there are reason to write assertions in expanded form?

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