On 2007-04-16, Chris Double <[EMAIL PROTECTED]> wrote:
> If all you want to test is coroutines, rather than the message passing
> aspects of concurrency, you can use libs/coroutines:
>
> "libs/coroutines" require
> USE: coroutines
>: gen ( -- co ) [ 100000 [ over coyield 2drop ] each f swap coyield ] cocreate 
>;
>: run ( co -- ) f swap coresume [ run ] [ drop ] if ;
>
> [ gen run ] time
>
> This is the equivalent of the Python sample you posted. Unfortunately
> continuations don't compile so the test runs interpreted.

Ah, thanks, superb. I did look into the coroutines module but apparently
I was somewhat absent-minded as I looked over the co* words.

The benchmark result is not in the top category but I think it's still
not bad given that continuations are implemented in the language itself
(and, as you say, they run interpreted).

 python:                      0.02 s
 gambit scheme (interpreted): 0.25 s
 python with greenlets based
   generators:                0.45 s
 factor:                      0.73 s
 ruby:                        1.35 s

Csaba


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Factor-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/factor-talk

Reply via email to