[Python-Dev] Proper tail recursion (original) (raw)
Christian Tismer tismer at stackless.com
Fri Jul 16 02:09:04 CEST 2004
- Previous message: [Python-Dev] Proper tail recursion
- Next message: [Python-Dev] Prototypes [was: Proper tail recursion]
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Christopher T King wrote:
On Thu, 15 Jul 2004, Bob Ippolito wrote:
On Jul 15, 2004, at 11:10 AM, Christopher T King wrote:
But in this case what is tail-call optimization going to do for you? You still require a stack at least the size of the height of your tree because of traverse(t.left) since that can not be tail-call optimized away, with the proposed algorithm. In Andrew's example, he noted that it would only help for list-like structures (i.e. those with mostly right nodes). I think Guido is in the right here, if you want to work around the recursion limit, use Stackless.. It should already be able to go just about as deep as you want.
Right.
You're right -- even if Stackless doesn't do tail call optimization, implementation should be trivial. But there's no guarantee when or even if Stackless will be merged with CPython, and until that happens, Stackless isn't an option for many (most?) people.
Wrong.
Stackless will always be there, one or two weeks later but will be there.
There is a guarantee: It will never be part of CPython. Proof: Just follow the postings in python-dev over the last five years, and how Guido handled these. If the proposals seemed to have a tiny chance, it was finally shut down by some "And however you argue, I don't want it" like statement. "If you need it, use it, that's where Stackless is for". In a sense, I like this Groucho Marx approach of "whatever it is, I'm against it". It is just not coherent with all the feature-creaping-ins of the past years, this is not consistent.
Some way I can accept this. But the whole story is partially like cheating. First, I was dissed because of Guido disliking continuations. OK! Next, I was dissed because of rewriting lots of the core is not feasible. OK! Btw., I have almost solved this by some automation which could apply sensible patches to almost every extension module. But who cares. Afterwards, I was dissed because compatibility to Jython was made into a problem. OK! Nice that I could turn a not-so-beloved kid into a really loved one.
After all (as said many times, already), I don't care, and I continue with Stackless. Also by supporting more supportive languages like Prothon (although I still don't understand why prototypes are better than classes).
Anyway, removing recursive-descend evaluation from Python would mean to remove Guido from Python, which is certainly not an option. At least I won't try this for his life-time, and it is also by no means my wish. I prefer to stick within my role as the dark side of Python. :-)
If I only could understand him, that would really help.
ciao -- chris
p.s.: since yesterday, Psyco belongs to the "well supported special modules for Stackless". Psyco is the only module that I know of that heavily depends on frame layout. You have to recompile it, but then it works really fine. I hope not to impose resentments on Psyco by that :)
Christian Tismer :^) <mailto:tismer at stackless.com> Mission Impossible 5oftware : Have a break! Take a ride on Python's Johannes-Niemeyer-Weg 9a : Starship http://starship.python.net/ 14109 Berlin : PGP key -> http://wwwkeys.pgp.net/ work +49 30 89 09 53 34 home +49 30 802 86 56 mobile +49 173 24 18 776 PGP 0x57F3BF04 9064 F4E1 D754 C2FF 1619 305B C09C 5A3B 57F3 BF04 whom do you want to sponsor today? http://www.stackless.com/
- Previous message: [Python-Dev] Proper tail recursion
- Next message: [Python-Dev] Prototypes [was: Proper tail recursion]
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]