diff: higher_order.m termination fix

Fergus Henderson fjh at mundook.cs.mu.OZ.AU
Sun Jun 15 23:14:34 AEST 1997


Simon TAYLOR <stayl at students.cs.mu.OZ.AU> writes:

>compiler/higher_order.m
>	Don't create specialised versions of specialised versions,
>	since for some fairly contrived examples of building up 
>	lambda expressions recursively a ridiculously large number 
>	of versions can be created. The only reason the specialisation
>	was guaranteed to terminate was the size limit on the
>	predicate for which a version is being created.

That is fine.

>	Don't fill in the clauses_info for specialised versions, since
>	it just clutters the HLDS dumps.

I don't think this change is a good idea.
It breaks an invariant of the data structure (namely the invariant that
the clauses_info contents is always valid).
Although there may not be any code that depends on that invariant,
it is difficult to be sure, and even if this is true, it is
difficult to be sure that this will always be the case.

If you're really worried about the HLDS dumps being cluttered, change
the code in hlds_out.m.

--
Fergus Henderson <fjh at cs.mu.oz.au>   |  "I have always known that the pursuit
WWW: <http://www.cs.mu.oz.au/~fjh>   |  of excellence is a lethal habit"
PGP: finger fjh at 128.250.37.3         |     -- the last words of T. S. Garp.



More information about the developers mailing list