> As > for general continuations, I can't remember when I've last used > co-routines... college? > > It seems that the Python people have figured a simple way to > implement generators. That said... I'd hate to have a generator > request promoted into a continuation request and then get dumped > beacuse it is too complicated. ;) > > Best, > > Hi, I wanted to point out that ruby which is one of parrot's target if I understand everything correctly support continuations, here is a short extract of the programming ruby book pertaining to it: <quote> class Continuation Parent: Object Version: 1.6
Index: call ---------------------------------------------------------------------------- ---- Continuation objects are generated by Kernel#callcc . They hold a return address and execution context, allowing a nonlocal return to the end of the callcc block from anywhere within a program. Continuations are somewhat analogous to a structured version of C's setjmp/longjmp (although they contain more state, so you might consider them closer to threads). For instance: arr = [ "Freddie", "Herbie", "Ron", "Max", "Ringo" ] callcc{|$cc|} puts(message = arr.shift) $cc.call unless message =~ /Max/ produces: Freddie Herbie Ron Max This (somewhat contrived) example allows the inner loop to abandon processing early: callcc {|cont| for i in 0..4 print "\n#{i}: " for j in i*5...(i+1)*5 cont.call() if j == 17 printf "%3d", j end end } print "\n" produces: 0: 0 1 2 3 4 1: 5 6 7 8 9 2: 10 11 12 13 14 3: 15 16 </quote> so having support for continuation within parrot would really be more than nice, it would be needed in order to correctly implement ruby on top of it. Benoit