I browsed through the ruby source code. It seems that Ruby manages threads
on its own with the setjmp longjmp stuff.
Doesn't that imply that I/O operations are blocking on all the Ruby threads
at once?

I have also seen that the interpreter actually executes an evaluation tree
instead of PCodes. I have not yet written a single line of code in Ruby, so
I do not know wether there are constructs in the language which would imped
the use of a "classic" bytecode machine. My guess is that the compiler would
be much more complex ?
Would there by any performance gains to expect?

Anybody tell me if I'm wrong?