As for Parrot and Pugs, there is no competition. Though related, they're actually in different problem spaces.
A while ago, I attempted to get a better grasp of what the respective problem spaces actually are, from A Plan for Pugs. I found the article to be a lot of fun, and inspiring, but kind of difficult to understand, probably because it deals with concepts that are a little beyond me. But at any rate, the money quote from Autrijus, or at any rate one money quote:
Autrijus: Actually, I think Pugs and Parrot will meet in the middle. W
+here Pugs AST meets Parrot AST and the compiler is written in Perl 6
+that can then be run on Parrot.
chromatic: I thought Pugs would get rewritten in C for Parrot?
Autrijus: No, in Perl 6.
chromatic: Can GHC retarget a different AST then?
Autrijus: It can, but that's not the easier plan.
chromatic: It's easy for me. I don't plan to do it.
Autrijus: The easier plan is simply for Pugs to have a Compile.hs that
+ emits Parrot AST. Which, I'm happy to discover yesterday, is painles
+s to write. (Ingy and I did a KwidAST->HtmlAST compiler in an hour, t
+ogether with parser and AST.)
Another money quote apropos this theme:
chromatic: Are you compiling it to native code now? I remember that be
+ing a suggestion a few days ago.
Autrijus: Pugs itself is compiled to native code; it is still evaluati
+ng Perl 6 AST, though.
chromatic: It's like Perl 5 in that sense then.
Autrijus: Yes, it's exactly like Perl 5. Have you read PA01?
chromatic: I have.
Autrijus: Cool. So yeah, it's like Perl 5 now. The difference is B::*
+is trivial to write in Pugs
chromatic: Except maintainable.
Autrijus: And yeah, there's the maintainable bit. Pugs is <4k lines of
+ code. I think porting Pugs to Perl 6 will take about the same number
+ of lines, too.
Now, if only I understood better what these guys were talking about... someday.....