$
./pugs -CPIR -e '1 = 2'
pugs: Invalid LValue: Val (VInt 1)
It also opens up possibility for whole-program analysis and other nifty things. Currently there is only a parse phase and a eval phase, so whatever nonlocal, nonBEGIN knowledge is forever gone, with no possibility of warnings/strictitude, and most errors delayed until runtime. A compile phase fixes all these problems.
I've also started thinking about retargetting the PAST -- that is the "essence" of Perl 6 evaluation -- to Javascript or Perl 5. We'll see if it actually comes to pass.
Also I implemented the strategy for piecemeal migration from the current Pugs.Compile.* and Pugs.Eval -- that means anything not handled by the current compiler can simply be delegated to the old runloop. Because of this, mandel.p6 now runs again on the PIR backend, with no noticeable speed differences.
There is a lot of more exciting things going on, but I need to sleep and can't journal up anymore. Sorry.
Move in?? (Score:1)
Seriously though you guys sound like you are making amazing progress.
Im not sure if everyone realizes this, but I really believe that Parrot is one of the most(if not *the* most) important open source project going right now. The unification of a virtual machine for all the dynamic languages will be huge in terms of getting large