is there any reason why smalltalk doesn't implement tail recursion optimization? Is by "language design"? It tries to avoid any issue?
Thanks Erlis
On Wed, Oct 5, 2011 at 1:50 PM, nicolas cellier < nicolas.cellier.aka.nice@gmail.com> wrote:
Bert Freudenberg <bert <at> freudenbergs.de> writes:
On 05.10.2011, at 00:24, nicolas cellier wrote:
snip... gmane is a tyrant
Yes, but log(n) is still not good enough for loops that run forever. Like
the Morphic main loop. Or the idle process.
I don't think it's possible to emulate whileTrue without reaching for the
meta hammer. Interesting
discussion though. Maybe a bit over the head of the average newbie ;)
- Bert -
Ah yes of course, this is the essential case... And we cannot even know if the loop is going to halt. For the two specific cases you submitted, we could cheat by using another VM magic and let the UI and idle process regenerate by forking themselves and completely ignore any synchronisation requirement. Or emulate tail call elimination by playing with thisContext>>sender: But the sport is becoming a bit crooked. And we're getting far from initial question. It's already something to know that a jump bytecode solves these problems efficiently.
Nicolas
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners