[Massive backport from svn.perl.org now openfoundry is back]
* theorbtwo notes that FIRST {} blocks did not
desugar into anything that passes PIL compilation,
as it's useing a Stmt in LValue position.
Fixed by desugaring using ternary if.
* Squash an empty import warning for precompiled preludes.
* Support for "./pugs -C PIL2".
Currently, "-C PIL" and "-C PIL1" both maps to PIL1,
but some day "-C PIL" may change to PIL2.
* Repo copy Pugs.CodeGen?.PIL to Pugs.CodeGen?.PIL2
* Also rename CodeGen?.PIL to CodeGen?.PIL1
* Add DrIFT-generated source of PIL2.hs.
* Repo copy PIL1 to PIL2 for the long-much-overdue PIL2
refactoring. The goals are:
- Compile time object serialization
- Lexical hoisting
- Static creation of Code objects with scope (no PSub forms)
- Full Cxt information
- PIL2 is *after* type erasure -- *no* static type annotation
should be left after that -- it's somewhere between F<: and ANF,
so to speak.
* Adds support for "./pugs -BPugs -e ...", which just takes
-CPugs output and feed to the "runghc" executable in PATH.
* pugscc: chase the s/MainCC.mainCC/Main.main/ change
as the now-cabalized Pugs package no longer exports "main".
* Compile-time objects now survives "./pugs -CPugs" compilation.
This means the line below works now:
pugscc -e 'class F {}; my $x ::= F.new; say $x'
Previously, the ::= would prevent compilation because we
did not have a serialization protocol for VObject types.
(This work is going to be carried over to PIL.)