diff: changes for function mode inference

Fergus Henderson fjh at mundook.cs.mu.OZ.AU
Fri Jul 11 16:06:44 AEST 1997


I wrote:

>make_hlds.m:
>	When flattening goals to superhomogeneous form, make sure that
>	we order unifications bottom-up, rather than top-down.
...
>	- When doing mode inference for functions,
>	  the bottom-up ordering is almost always right, and
>	  the top-down ordering is almost always wrong.
>	  Since mode inference doesn't do reordering,
>	  it is important to pick the right ordering in the
>	  first place.

The bad news is that type checking must be done in top-down order,
so that it can use the type information from the functor to
resolve any overloading in the arguments.  The alternative of
typechecking the arguments first causes severe performance problems
in cases of overloading (e.g. the compiler runs out of memory
while trying to typecheck `options.m').

I'm not really sure what to do about this.

--
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