[m-rev.] for review: fix assertion failure with promise_equivalent_solutions

Julien Fischer juliensf at csse.unimelb.edu.au
Wed Jan 23 00:30:07 AEDT 2008

I have committed this one; I will address any review comments


On Mon, 21 Jan 2008, Julien Fischer wrote:

> Hi, could someone please review this; I would like to commit it today.
> On Thu, 17 Jan 2008, Julien Fischer wrote:
>> Estimated hours taken: 1.5
>> Branches: main
>> Fix bug #30.  The determinism analysis run as part of partial deduction
>> was erroneously reporting that the head of a promise_equivalent_solutions
>> scope contained extra variables, i.e. non-locals that were not further 
>> bound
>> or (potentially) constrained within the scope. This violated an assertion 
>> that this run of determinism checking should
>> not produce any errors.
>> The error was caused because some of the variables in the scope head that
>> prior to inlining had inst any, had become ground after inlining.
>> The fix is to ignore such extra variables in determinism analysis passes
>> that are invoked after inlining.
>> compiler/det_util.m:
>> 	Add a field to the det_info structure that indicates whether or not 
>> we
>> 	should report extra variables occurring in the head of a
>> 	promise_equivalent_solutions scope as an error.
>> 	Define a new type to represent this.
>> compiler/det_analysis.m:
>> 	Check the value of the above field before reporting the
>> 	presence of extra variables in a promise_equivalent_solutions scope.
>> compiler/pd_util.m:
>> compiler/det_report.m:
>> compiler/simplify.m:
>> 	Set the value of the det_info di_pess_extra_vars field as necessary.
>> tests/valid/Mercury.options:
>> tests/valid/Mmakefile:
>> tests/valid/equiv_solns_ia.m:
>> 	Regression test for the above.
mercury-reviews mailing list
Post messages to:       mercury-reviews at csse.unimelb.edu.au
Administrative Queries: owner-mercury-reviews at csse.unimelb.edu.au
Subscriptions:          mercury-reviews-request at csse.unimelb.edu.au

More information about the reviews mailing list