On Feb 7, 2006, at 15:31, Stevan Little wrote:

Now I am not as involved in Parrot as I am in Pugs so I might be way
off base here, but from my point of view Parrot still has a long way
to go before it runs Perl 6 code. Part of that is because the bridge
between PIR/PMCs and Perl 6 just does not exist yet (either in code,
or even conceptually). Having PGE parse Perl 6 code only gives us an
AST, it does not give us running code. And even if we have a nicely
massaged AST, running Perl 6 is not a matter of just walking the tree
and evaluating it like it is in Perl 5 (of course, I am simplifying
quite a bit here). We found (a few months ago) in Pugs that this model
just isn't robust enough, and Perl 6 is going to need a more
sophisticated "runtime" environment to support many of it's features.
This "runtime" (or as we have been calling it in Pugs the "Object
Space") will need to exist on top of Parrot too since it is far to
Perl 6 specific to be implemented into the Parrot core.

This is the kind of stuff that Yuval is talking about. The missing
bits that need to exist in the nether-region between perl6-language
and perl6-internals.

We are building from the bottom-up (Parrot) and the top-down (Perl 6 -
the language) and it seems (at least to many of us on the Pugs
project) that there is a big hole somewhere in the middle.

You imply here that obstacles to implementing Pugs are necessarily obstacles to implementing Perl 6. That's not entirely accurate. The bootstrapping Perl 6-on-Perl 6 architecture does require a high degree of abstraction. The choice of architecture means there's a greater gap to fill between the abstraction and the core implementation. This was my original objection to Pugs, but I changed my mind. You all have demonstrated incredible skill and energy over the past year, and I'm confident you will figure out a way to do it.

But, there is another route, and we're working on it at the same time. From the Parrot perspective, PGE parses the source, its output is translated to an AST (or a couple of intermediate ASTs), and that is translated either to PIR, or directly to bytecode. I'm working on a prototype of this now in Punie, specifically so we can try out the whole path from source code to bytecode.

Perl 6 will get implemented.

Allison

Reply via email to