proper tail calls

Brendan Eich brendan at
Mon Jan 21 23:22:06 PST 2008

On Jan 21, 2008, at 5:26 PM, Peter Hall wrote:

> Thanks. That would work. But I can still see the "average" user being
> confused when debugging, and not knowing what is going on.

Would you think an explicit keyword syntax for mandatory tail call  
would help such a user?

To the claim that debugging in the face of PTCs will become madness- 
inducing, Schemers and others retort "do you want to see every state  
of an iteration?" (A loop is a tail call in Scheme.) The right answer  
is "yes". Yes, I want a debugger that remembers all program states  
( and runs in near real-time  
(not chronomancer, alas -- not yet). I want the moon, as a debugger  
user (and yet I still suffer in this day and age with gdb!).

My point is that debugging is a specialized task with immature  
(frozen in the last days of disco!) tools; the debugger tail should  
not wag the dog.

Separately, poring over crashdumps (which is not the same as  
debugging, and not a task for "average" users), many C++ hackers have  
had to deal with good old "TCO". It's a pain, but we keep the  
optimization levels high for production builds and suffer the entrail- 
reading horror when investigating crashes.

I've heard Schemers testify that tail calls seldom impair debugging,  
but I'll invite those Schemer among the many on this list who are so  
inclined to re-testify.


More information about the Es4-discuss mailing list