[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

tail recursion elimination



Date: Wed, 30 Aug 1995 21:34:01 +0200
From: rainer@physik3.gwdg.de (Rainer Blome)
To: self-interest@self.sunlabs.com
In-Reply-To: <9508301651.AA23068@obj.Eng.Sun.COM> (Mario.Wolczko@eng.sun.com)
Subject: tail recursion elimination


jecel wrote:
> While this optimization is invisible in a normal execution [during
> debugging] you will find that a large chunk of your stack is missing.

yes, the self group had written that in some place, i had forgotten.

how about deoptimization then?  with tre you can't really do that
dynamically, you might have to rerun a huge amount of code, it might not even
work at all.

so it should be a user- (programmer-) selectable optimization.  the
debugger will have to explain that and why the frames are missing.


i was just looking at the implementation of the looping behavior in traits
block - it boils down to the _Restart primitive which is even better
visible than missing stack frame in the debugger.

btw, i tried to understand what the loopExit[Value]Continue methods do, but
failed.  they might have sth to do with this discussion, do they?  there
seem to be no senders of these messages, why are they there?

rainer