[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