[gclist] tail recursion requires gc

Hans Boehm boehm@hoh.mti.sgi.com
Thu, 8 Aug 1996 11:41:18 -0700


Will Clinger wrote:

"By "fully general tail recursion" I
mean that all syntactically tail-recursive calls execute
without allocating any space for a new continuation."

This sort of thing still doesn't strike me as very precise.  "Syntactically
tail recursive" can be easily defined.  But I haven't a clue how to define
"space for a new continuation".  And as a user, I don't really care what the
space is being used or wasted for.  It seems to me that we need as a minimum a
precise characterization of those tail calls that retain none of the space
allocated by the caller.

Clearly there are tail calls in both C and Scheme that require part of the
environment of the caller to be retained.

I otherwise agree with Will's message.

Standard disclaimer ...

Hans

-- 
Hans-Juergen Boehm
boehm@mti.sgi.com