Rick DeNatale wrote: > On Thu, Apr 2, 2009 at 10:55 AM, Michael Neumann <mneumann / ntecs.de> > wrote: > >> M. Edward (Ed) Borasky wrote: >> >> > On Wed, Apr 1, 2009 at 6:00 AM, Charles Oliver Nutter >> > <charles.nutter / sun.com> wrote: >> >> Well, according to the earliest drafts of the Ruby standard, >> >> continuations are not part of "core Ruby" :) >> >> >> >> But yes, this is one area we've opted not to be compatible in exchange >> >> for performance. We could implement continuations, but we'd be several >> >> times slower as a result. >> > >> > IIRC YARV also dropped continuations because they would be slow on the >> > YARV VM as well. >> >> Which YARV do you mean? The one integrated into Ruby 1.9? :) >> So I know for sure that Ruby 1.9 still has continuations, that they rule >> the >> world when compared against Ruby 1.8 continuations (which had memory >> leaks), >> and that Ruby 1.9 it is based on Koichi's YARV. ;-) > > > IIRC (sometimes hard to do at my age) continuations were gone from Ruby > 1.9 for a while back in 1997, but came back before the Ruby 1.9.0 release > around Christmas 2007. Getting older (but still young enough to remember), in 1998 I was using Ruby version 1.2.4, far far away from anything near 1.9 :). Though, I can't say for sure what happend one year before in 1997 ;-) > As for implementation, I think that the spaghetti stack design which Evan > Phoenix is/was? using in Rubinius, (which is similar to what the Squeak > Smalltalk VM uses) helps a lot. On the other hand, Seaside, which drove a > lot of interest in continuations in the Smaltalk community, feeding back > to Rubyists who wanted to emulate Seaside, has rather drastically reduced, > but not eliminated, the use of continuations. Yes, the spaghetti stack of Rubinius would have helped continuations a lot (at least theoretically), but AFAIK it's gone in favor of performance of the C stack. Funny that Seaside is reducing continuations while I am increasing or "stabilizing" continuation support in my Seaside-inspired framework Wee, due to the fact that continuations became pretty stable in Ruby 1.9. Regards, Michael