proper tail calls
brendan at mozilla.org
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
(http://code.google.com/p/chronomancer/) 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