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. 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. What's Parrot? Briefly, Parrot is Perl6's new virtual machine. But it's being designed in such a way as to allow different language frontend parsers to use the Parrot backend. So, in theory, this will allow you to write a program in Ruby that uses Perl or Python libraries. There is a Parrot FAQ at: http://www.panix.com/~ziggy/parrot.html which might answer more questions. Why? There are several reasons why it's a good idea for Ruby to be able to 'play' with Parrot... 1) As mentioned above, it would allow us to tap into the vast Perl CPAN libraries (and Python's too). This seems like a win for Ruby since our library of modules is much smaller right now. 2) It could allow Ruby to reach a wider audience. The likelyhood is that Perl6 will eventually be installed all over the place like Perl5 is now. There have been a few threads recently asking about Ruby friendly ISP's and web hosting companies, there aren't many yet, but if we could run Ruby via Perl6's Parrot backend we could eventually run Ruby just about anywhere. 3) The 'coolness' factor - especially if we can get Ruby playing with Parrot before Python (or even potentially before Perl, as Dan has suggested), that would be good publicity for Ruby and could possibly help expand our user base. 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). 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) How? I'm not entirely sure yet, but I think a lot of the groundwork has been laid for the parser (RubyInRuby, Rockit). There has been work done on the AST representation (RubySchema, AST) - Cardinal should build on already existing work in these areas and concentrate on generating Parrot bytecode or assembly. Hopefully Cardinal can give a boost to those other projects so we can eventually see several other backends like Cardinal which can be plugged into the frontend parser/AST generator. Who? Who's interested? Ideas, Suggestions? Phil