[MLton-devel] IntInf primops

Stephen Weeks MLton@mlton.org
Thu, 23 Jan 2003 13:32:24 -0800

> I  am  assuming that the **** tweak in safe-for-space is enough to handle the
> main case from our earlier discussion: the transformation of tail calls  into
> non-tail calls required when a function ends with a tail-call which is a join
> point in the flow analysis.  This isn't completely clear to me, and needs  to
> be if MLton is going to satisfy ****.

As a reminder to myself, the case you are talking about is when there
is a tail call to an unknown function, the flow analysis determines
that multiple functions may be called there, and furthermore that
the returns of those functions are different sets of lambdas.  Hence,
the closure converter has to turn the original tail call into a
case dispatch to nontail calls followed by coercions.

I think we are still OK with ****.  Let Lambda be the set of lambdas
in the program p.  For any frame on the stack that will return a
lambda that needs to be coerced, there will be at most |Lambda|
coercion frames, since each coercion frame moves up in the P(Lambda)
lattice.  Since |Lambda| < |p|, we're OK.

This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
MLton-devel mailing list