At 04:24 AM 1/2/2002 +0900, Phil Tomson wrote:
>We've had a couple of different threads flowing here the last few days
>about getting Ruby to work with Parrot.  Dan Sugalski has suggested that
>we (the Ruby community) need to create a Ruby parser in Ruby that
>initially needs to emit Parrot bytecode and later we could pass on an AST.

Need is an awfully strong word. It'd make some things easier, but I don't 
much care. (Well, I'm unlikely to play much with a Ruby parser written in 
RPG or APL, but if you really must... :)

>So..... I want to propose a new project called Cardinal (the name is open
>to discussion, I chose Cardinal because Parrots are birds, Rubys are red
>and Cardinals are red birds - is the name already taken?  I don't see
>any Cardinal project on RAA).  The goal of Cardinal is to create a Ruby
>frontend for Parrot.

Don't feel constrained to just front-end stuff. If new variable types are 
needed, or changes to the core opcode set would be useful, those are doable.

The design's such that new variable types can be dropped in seamlessly and 
new opcodes can be added in dynamically, but if we have them as part of the 
core we can make sure the test suite exercises them. That and you'll avoid 
the dreaded "My ISP won't install anything extra" syndrome.

>There is a Parrot FAQ at: http://www.panix.com/~ziggy/parrot.html which 
>might answer more questions.

Or not, I was a bit flip in it on the technical stuff. This came up on 
slashdot over the weekend, and the conversation there has some 
elaborations. Browsing it at +2 isn't too painful.

The FAQ will be updated, though, when we all get some time after the holidays.

>Why?
>There are several reasons why it's a good idea for Ruby to be able to
>'play' with Parrot...
>4) Performance? - I think that the Parrot folks are putting a lot of
>thought into improving performance, maybe it's possible that Ruby running
>on Parrot will be faster than the current implementation (but I'm
>speculating here).

Performance is definitely a dead-on core goal. (I want Parrot to voom 
without needing four million volts. :) The design's been done with future 
TIL, JIT, and compilation in mind. (The folks involved have surprised me 
with a partial JIT already, which is keen)

>5) The involvment of the Ruby community could help influence the
>development of Parrot (I think it already has to some extent - they are
>paying attention to some of Ruby's requirements, such as support for
>continuations)

*Yes*! I am doing what I can to make sure the potential's there, but 
there's the inevitable fight to make sure it stays there. I'm not a Ruby 
(or Python) programmer, so while I try to make sure I'm not precluding 
efficient execution of Ruby and Python code, it's a sort of academic 
exercise for me.

And while I really, *really* would love folks to jump in and help, the one 
thing I do *not* want is to bleed people away from working on Ruby as it 
stands now. So all help is gratefully appreciated on my part, but if your 
options are to pitch in with Parrot or enhance Ruby as it stands now, by 
all means enhance Ruby.

					Dan

--------------------------------------"it's like this"-------------------
Dan Sugalski                          even samurai
dan / sidhe.org                         have teddy bears and even
                                      teddy bears get drunk