Most of my time today has been spent on writing Apocrypha 1, "Overview of the Pugs project". As I plan to write it as Catechism (i.e. Q&A format), I solicited #perl6 for questions. Here is a list of unsorted questions I compiled:
- What is Pugs?
- Where can I download Pugs?
- Why isn't Pugs called Perl6?
- Is Perl6 fully specified now?
- Is Pugs's goal to be a fully fledged perl6 compiler or interpreter?
- Does Pugs run on every platform perl runs on?
- Who owns Pugs?
- When will Pugs be finished?
- Is Pugs compiled or interpreted?
- Will Autrijus teach haskell for other perl6 developers?
- I want to learn Perl6. What texts should I read?
- I want to learn Haskell. What texts should I read?
- Is Haskell portable?
- Why do you use both darcs and svk?
- Is Pugs a perl foundation project?
- Will Pugs die when the official perl6 is done?
- Will Autrijus unexpectly abandon the project?
- Is there a Cabal?
- How can I help?
- Will you accept my patch?
- Do I have to know Haskell to hack Pugs?
- Will Pugs always be in haskell?
- Where can i learn haskell?
- How does Pugs relate to parrot ?
- Aren't Haskell and Perl incompatible by nature?
- Can Pugs run parrot code?
- Will CPAN work on Pugs?
- Can Pugs run perl5 code?
- What does the Pugs name come from?
- Are there other real programs out there written in haskell ?
- What's featherweight Perl6?
- Why did Autrijus go beyond larry's back to create Pugs?
- What's the goal of Pugs?
- Why not just use Ruby? it's perl6 now.
- Is Pugs a *schism* in the Perl community?
- Since you did it in 3 weeks, now we don't need to pay the perl foundation half a million dollars to create perl6, right?
- Will you implement a DynaLoader equivalent for Pugs?
- does Pugs run under .Net and Java?
- Can Pugs run all the code in Apocalypse, Exgesis and Synopses?
- Does lwall approve of Pugs?
- This all sounds very exciting. what drugs are you on ?
- Will Pugs compile and interpret haskell code to run in parrot vm?
- Perl5 is bloated, untyped, fragile, slow and obfuscated; why should I spend time in hacking Perl6?
- The parrot/perl6 program hasn't made perl6 happen in 5 years. What makes you think you can do it?
- Perl5 is wonderful. Why should I care about perl6?
- If I have a .pl6 file, will Pugs run it?
- Can I write CGI code with Pugs?
- Is there a mod_pugs?
- I replaced /usr/bin/perl with Pugs, but now my perl5 programs don't run. why not?
- Where do i report bugs in Pugs to?
- I filed a bug against Pugs via perlbug, but they said i had to report it somewhere else. where is that?
- I have written some Pugs modules. Where should I upload it?
- Why doesn't Pugs ship with CPAN or CPANPLUS?
- Is there an Inline::Perl6 or Inline::Pugs?
- Is Pugs free software?
- If I use Pugs, do i have to share my source code with everyone?
- Is Pugs licensed under the same terms as perl itself?
- What is your worst/best (haskell) hack in Pugs?
- What is a "golfing system"?
- Who is Autrijus anyway?
- How many people are actually behind the autrijus pseudonym?
- Were animals harmed during the making of Pugs?
- Is there a RSS feed for Pugs news?
- What's with those Tolkien poetry in Pugs source code files?
- Is there a commitlog email list for Pugs?
- What is a monad, and what's in the Eval monad?
- If I enter ICFP 2005 with Perl6 and Pugs, what is my chance of winning?
I need more questions of all sorts, so you can help. Please leave a comment here that contain any number of questions that you'd like to see answered. Thanks! :-)
...now, to the journal itself...
Today #perl6 is busy resolving edge cases and inconsistencies in the typing system. I'm truly happy that my two outstanding question on p6l (IType vs VType and Context paradox in multisub dispatching) has met with suitable solutions.
Of particular importance is that, with help from luqui (Luke Palmer), pmichaud (Patrick Michaud) and lathos (Simon Cozens), we have got the to bottom of the "punning" problem of ambiguous of "Array" as a implementation type, and "Array" as a value type. The solution in Pugs is simply to excise all implementation types, except for "Variable" and "Constant". We will see more of implementation types when we get to the Tieable class.
Also of note is that the Parser will begin to do typechecking and inferencing, and ill-typed multisub dispatches will be caught at compile time, instead of delaying until runtime paradox appears.
On the code front, hcchien and juerd continue adding new tests and removing TODO tags from tests that now works, while ycheng implemented unlink(). I've implemented defined() and undef() (both nullary and unary variants) at Juerd's request, and ref() at Steve_p's.
Oh! And I'm happy that http://dev.perl.org/perl6/ links to http://pugscode.org/ now. Wonderful. :)