Usage tip:
 $ pugs -v
[...] # pugs is in your path
 $ pwd
 .../perl5/PIL-Run
 $ perl -Ilib -w crude_repl.pl


Here are some things which would help move development along on the p5
runtime.

* Implement primitives.  Primitives are perl5 subs in
PIR/Run/PrimP5.pm.  lc, lcfirst, etc.  Many of them are unimplemented,
having yada yada bodies: {...}.  Implement some.  Use the ApiX subs
like p6_to_n and p6_from_n to unpack your arguments and repack your
results.  Or if they can be written in terms of other primitives,
write them in p6, and add them either to the perl6/Prelude.pm
(preferred), or to PIL/Run/Root/P5Runtime/PrimP6.pm (less so), and
comment them out in PrimP5 (with a note saying why).

* Errors like
   Guessing TTailCall has arity 1.
mean the PIR node TTailCall doesn't appear in lib/PIL/ReadToStr1.pm's
%arity table.  Look or grep in src/Pugs/AST*, or at the :v verbose code,
figure out how many arguments it takes, and add it to %arity.

* Errors like
   Punting on SMy.
 mean the lib/PIL/Run/EvalX.pm "compiler" doesn't know what to do with
node SMy. It doesn't have an entry in %handlers.  Sometimes that's ok.
But not if your test code isn't compiling as a result.  So use :v
verbose, look at the PIR, and add handlers for any unknown nodes
between pilMain and the stuff you care about.  Or go through
src/Pugs/CodeGen* (I think that's right?) and add nodes
systematically.

* lib/PIL/Run/Type/*.pm are quick temporary throwaway placeholders.
If you understand the Perl6-MetaModel stuff, please make them real.

* Figure out why, when you run -w crude_repl.pl, you (or at least me)
get a "Use of uninitialized value in concatenation (.) or string at /usr/lib/perl5/vendor_perl/5.8.5/Filter/Simple.pm line 156." warning.

* MainX should load PIL/Run/Root/P5Runtime/PrimP6.pm at startup.

* Create PIL/ReadToStr2.pm.  PIL/ReadToStr1.pm is intended to be
reliable, but it is slow.  It takes ~20sec to read the PIR of the
Prelude.  So a PIL/ReadToStr2.pm is planned, which uses inline
/\Gmumble/c regexps instead of match().

Slightly more distant tasks:
* Get the prelude to compile.
* Get Test.pm to run.
* Get the examples/eval.pm p6 read-eval-print loop to run.
* Perhaps we need a PIL node arity table.

DONE:

* Modify crude_repl.pl to use a real readline.  So we can backspace,
and edit lines, and have history.

