[m-dev.] location of assertions
Julien Fischer
juliensf at csse.unimelb.edu.au
Tue Jul 3 21:36:52 AEST 2012
Hi Peter,
On Tue, 3 Jul 2012, Peter Wang wrote:
> 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.
Agreed. (Essentially what I am proposing above is that we should 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?
Write them where in expanded form? The problem in bug #193, is that
type (and module?) qualifiers cause the form of the assertion clause to
change in such a way that the code in the accumulator introduction pass
doesn't (currently) recognise them as valid assertions of the types it
supports.
Julien.
--------------------------------------------------------------------------
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