M
Michael Neumann
Dear Rubyists,
Lately (as I was dissatified with Ruby's current continuation
implementation), I remembered that we had a Ruby-In-Ruby project some
years ago. Python has PyPy, which got even fund by EU. Squeak in mostly
written in itself, too.
So the question is, do we get enough interested people together that
would work on such a project? I've noticed that PyPy and StacklessPython
develop much code in so-called Sprints, where the developers meet and
hack a weekend or a whole week on that project. Ruby developers are
probably more distributed that Python's, but maybe it would work if we
build small teams, which are then connected via internet to other teams,
worldwide... just dreaming ;-) Or isn't that exactly the idea of the
Ruby Codefest by Ruby Central, Inc? Maybe we could even get funded ;-)
So who is really interested in this project and would spend a little bit
of his/her free time (of course not on christmas or silvester
.
= First steps?
1. setup a project... discuss, discuss, discuss... agree on some goals,
most important is that we stand united and bundle our forces ;-)
2. write a Ruby parser in Ruby (do we already have one, Robert Feldt?)
we could also omit this step, and use the node-tree directly, and
implement the parser later.
3. Ruby AST-to-bytecode generator (YARV bytecode?)
4. Implement the Ruby VM (in Ruby): object model, memory management (GC),
interface to RubyC, port core-libraries.
5. Implement the RubyVM in C (either manually or by using a MicroRuby
approach, by translating a subset of Ruby into C)
Steps 2. and 3. could be reused by future RubyC implementations. 4. and
5. not, this are the steps that would bring us some new features.
What I'm especially dreaming of is the ability to dump any object to
disk... threads, continuations, and to have an accurate
(non-conservative) garbage collector, so that Ruby will under no
circumstances (except bugs) leak memory (that's especially important in
the case of continuations). If we can dump everything, the GC-thing
would of course be optional, as we could stop and restart at any point.
Well, we could also implement a Ruby-like language first... maybe that's
simpler... start small. And parts of this project could flow into
Rite/Ruby2 if matz agrees.
Enough for today...tell me what you think about this (old) idea...
Regards,
Michael
Lately (as I was dissatified with Ruby's current continuation
implementation), I remembered that we had a Ruby-In-Ruby project some
years ago. Python has PyPy, which got even fund by EU. Squeak in mostly
written in itself, too.
So the question is, do we get enough interested people together that
would work on such a project? I've noticed that PyPy and StacklessPython
develop much code in so-called Sprints, where the developers meet and
hack a weekend or a whole week on that project. Ruby developers are
probably more distributed that Python's, but maybe it would work if we
build small teams, which are then connected via internet to other teams,
worldwide... just dreaming ;-) Or isn't that exactly the idea of the
Ruby Codefest by Ruby Central, Inc? Maybe we could even get funded ;-)
So who is really interested in this project and would spend a little bit
of his/her free time (of course not on christmas or silvester
= First steps?
1. setup a project... discuss, discuss, discuss... agree on some goals,
most important is that we stand united and bundle our forces ;-)
2. write a Ruby parser in Ruby (do we already have one, Robert Feldt?)
we could also omit this step, and use the node-tree directly, and
implement the parser later.
3. Ruby AST-to-bytecode generator (YARV bytecode?)
4. Implement the Ruby VM (in Ruby): object model, memory management (GC),
interface to RubyC, port core-libraries.
5. Implement the RubyVM in C (either manually or by using a MicroRuby
approach, by translating a subset of Ruby into C)
Steps 2. and 3. could be reused by future RubyC implementations. 4. and
5. not, this are the steps that would bring us some new features.
What I'm especially dreaming of is the ability to dump any object to
disk... threads, continuations, and to have an accurate
(non-conservative) garbage collector, so that Ruby will under no
circumstances (except bugs) leak memory (that's especially important in
the case of continuations). If we can dump everything, the GC-thing
would of course be optional, as we could stop and restart at any point.
Well, we could also implement a Ruby-like language first... maybe that's
simpler... start small. And parts of this project could flow into
Rite/Ruby2 if matz agrees.
Enough for today...tell me what you think about this (old) idea...
Regards,
Michael