I'm pretty terrible at writing in my journal regularly. Partly, I work insane hours (on a combination of paid and volunteer projects). Partly, I'm just a quiet person (I used to be painfully shy, but I seem to have mostly grown out of that). But, I would like to do better. I suspect the image that TPF and Perl 6 are "secretive" is partly my fault. It's not that there's anything to hide, just that we're not very good at making sure the information gets broadcasted. So, if you have any questions about TPF or the Perl 6 project (or O'Reilly books, for that matter), email me at allison {at} perl (dot) org, and I'll try to give sensible answers here in my journal.
I'll start with one subject. It's a rough paraphrase of some questions people asked me at YAPC::NA:
What is Pugs?
Pugs is a prototype compiler for Perl 6. It's currently written in Haskell, but is being ported to Perl 6. It's not intended to be a complete compiler from Perl 6 source to executable code, it's a compiler targeting a virtual machine: Parrot, CLR, Mono, JVM, etc. In fact, there's a good chance it'll target all of those.
What do you think about Pugs?
I think Pugs is incredibly cool. I remember when I first heard about it: Leo and Nick and I were at the German Perl Workshop. Leo pulled out his laptop and showed us some Perl 6 code running. I was so excited I immediately downloaded it and compiled GHC to play with it, and then used it for a demo in a talk the next week.
Will Pugs be the production implementation of Perl 6?
Autrijus has asked us not to treat Pugs as a production system. It may sound strange at first, but I think he's absolutely right. It gives the Pugs team a lot of flexibility to experiment without worrying about the results. It's called "R & D" in the corporate world, and is probably the biggest source of technological innovations in all large companies.
But will Pugs code ship in the production release of Perl 6.0? I don't know yet. It partly depends on the speed, robustness, and maintainability of the final code (which is not something the Pugs folks need to be thinking about right now). Whatever the relationship in terms of lines of code, the work being done in Pugs will certainly have a significant impact on the final form of the Perl 6 compiler. What I think is most likely is that the final compiler will be a synthesis of ideas between Pugs and the Parrot compiler tools. To be postmodern about it: the production implementation of Perl 6 both is and is not Pugs.
Pugs isn't a TPF project?
I'm not exactly sure what that means. There isn't much of a difference between "TPF projects" and "non-TPF projects". They're all groups of volunteers working on stuff for Perl. Pugs uses Perl.org (i.e. TPF) mailing lists and IRC servers. I suppose when you boil it down to brass tacks, all it really means is that the code isn't being contributed to TPF; it's copyright Autrijus Tang. That's okay. It means we'd have to do a little legal legwork to incorporate Pugs code into Perl 6, but it's not a big deal.
Would TPF consider funding Autrijus for Pugs?
Absolutely. IIRC, he has said he doesn't want to be funded. But, if not Autrijus, we would happily fund any of the other Pugs developers.
A small nitpick, lest people stumble into an empty channel -- Pugs's IRC server is irc.freenode.net #perl6, not irc.perl.org. The social atmosphere of freenode is of communication between various language/project communities, which is methinks essential to Perl 6 in general and Pugs in particular.
As for funding, I've said in PA01 that it would be more helpful to donate time to the Perl 6 project by hacking Pugs, rather than asking TPF for money to do the same thing. As my six-month sabbatical is drawing to a close soon, I'd certainly welcome sponsorship, from TPF or other places.
As for copyright, I'd like to see Artistic-2.0-final released, before I can consider assigning it to TPF under that license. Even better if we can get a round of public review for the current beta of Artistic license, so CPAN authors and other Pugs hackers can help improving it.
Please do keep the journals flowing.
Re:Communication++
Allison on 2005-07-08T02:13:52
Pugs's IRC server is irc.freenode.net #perl6, not irc.perl.org.
Righto, thanks for the correction.As my six-month sabbatical is drawing to a close soon, I'd certainly welcome sponsorship, from TPF or other places.
You hear that folks (especially the company who asked me about it at YAPC)? Get cracking.:) Even better if we can get a round of public review for the current beta of Artistic license, so CPAN authors and other Pugs hackers can help improving it.
That's the plan (as I mentioned in my YAPC talk). Nothing will be final until it's had a round of public review. But, it'll be a month or more before the legal reviews are done.Re:Communication++
mdxi on 2005-07-08T06:52:13
The social atmosphere of freenode is of communication between various language/project communities...Huh...I thought it was the IRCOPs sending 14-line global messages every half hour (followed immediately by another 1d4 to correct typos in the original) in order to beg for money or apologize for decoupling Europe while in a drunken stupor.
*rimshot*
Re:Communication++
autrijus on 2005-07-08T12:20:43
Indeed? I ignore window #1 in irssi, so I don't know anything about that... I guess you can/ignore them at will. :)
Re:I wrote a better comment...
Alias on 2005-07-08T22:57:39
errr... wrong formatting option. might want to view as source. hating not being able to edit after posting.:( Re:I wrote a better comment...
Allison on 2005-07-09T21:25:46
Too much to reply to all at once. I'll split it out over several journal posts.BTW, thanks again for the PPI grant, I'll be done on Tuesday (you can call Ovid off now).
Thanks for doing your part of making grant results public by writing up a follow-up article. This is a responsibility of all grant recipients, but far to many of them just drop off the face of the planet after the grant is "finished" (it ain't finished 'til ya' tell folks it's finished), even with Ovid's wonderful skills at hounding people.:)
Re:What about ponie?
nicholas on 2005-07-11T16:37:29
Ponie is progressing, athough progress seems to be stalls then jumps, even when the effort is applied smoothy. A development snapshot was released a couple of weeks ago, announced in Allison's state of the carrot at YAPC::NA. I sent an announcement to the ponie-dev mailing list, and it's also waiting in the use.perl story submission queue for a use.perl editor's tender loving care.
Details of what's new are in the README, and you can also view the most up-to-date version of the Roadmap in the subversion repostiory.
The development snapshot is now out of date - if you want to get the most recent version check it out with subversion from http://svn.perl.org/ponie/trunkThe trouble with Ponie in general is that because it's mostly a big, progressive refactoring exercise it keeps throwing up unexpected problems that need to be investigated and solved prior to completing a task. Quite a few of the problems so far have been in the perl 5 core code, and have been solved there first, before being merged over as a block. It's also tricky to declare any task as "finished", because most of them aren't, in the sense of being completed. Most need revisiting once other parts progress far enough, so I don't consider them finished, so I don't make grand sweeping pronouncements to that effect. Also I feel that given all the twists and turns, attempting to keep the roadmap/tasklist updated on a daily basis would eat up more time than the actual development work.
I attempt to keep the commit messages both short and informative - possible the best way of tracking progress is by watching the commit list ponie-changes