[m-dev.] diff: simplify.m/determinism bug fix

Simon TAYLOR stayl at students.cs.mu.oz.au
Wed Jul 9 16:03:49 AEST 1997


> Fix a bug.  For the example code in the bug report, simplify.m simplified
> the code by merging two switches, which happened to lead to one branch
> containing `error(...), fail'.  The problem was that determinism
> analysis inferred a determinism of `failure' for that branch, rather
> than `erroneous'.  This caused the code generator to abort, because
> the switch was `det' (= model_det) but the case was `failure' (= model_semi).
> The basic problem is that simplify.m assumed that simplifying goals
> in this way should never make their determinism worse (less precise),
> though it might make it better.  But due to the imprecision of determinism
> analysis, this assumption was not correct.  The fix is to change determinism
> analysis so that the assumption is correct.

That looks fine, thanks Fergus.



More information about the developers mailing list