The Perl 6 Summary for the week ending 2005-12-18
Welcome to another Perl 6 summary. This has been a week of shootouts, cleanups, relationships and cunning translations. Read on for the details (or, this being a summary, pointers to the details).
This week in perl6-compiler
2 messages? Sometimes I wonder why I even bother summarizing this list; I could just paste its contents in their entirety. However:
Call for a Pumpking: Do you want a Ponie?
Jesse announced that Nicholas Clark was retiring as Ponie’s Pumpking following his departure from Fotango. So we’re looking for another volunteer to take Ponie from its current state to a working Perl 5 runtime fully integrated with Parrot. If you’re a C programmer with a good grasp of the Perl 5 internals and you’re interested in taking on the job, ponie-pumpking@perl.org is eager to hear from you.
http://groups.google.com/groups?threadm=20051214225235.GR25436@bestpractical.com
Pugs, Javascript and Perl 5
Continuing Pugs’ tradition of linguistic mashup, Chia-liang Kao announced that Pugs Javascript backend can now support Perl5.
http://groups.google.com/groups?threadm=20051214022446.GC9267@home.clkao.org
Meanwhile, in perl6-internals
Parrot Shootout
Work continued on implementing and optimizing Parrot’s entry for the Language Shootout.
http://groups.google.com/groups?threadm=05D985D7-A48E-44A2-9CFF-B219A18DF864@pacbell.net
http://groups.google.com/groups?threadm=31247ad5226f5927031cabb213a483b2@ritalin.shout.net
http://groups.google.com/groups?threadm=8109939b614a9dd99df5b9b7387c16bb@ritalin.shout.net
http://groups.google.com/groups?threadm=942c27460512151539h691425e4×1cfd06e3a3278e9@mail.gmail.com
http://groups.google.com/groups?threadm=942c27460512151659h42872a66xa740809c47dd857a@mail.gmail.com
http://groups.google.com/groups?threadm=3bbbb64e9c99a66ec0d6f1b8bc693277@ritalin.shout.net
Variables, Aliasing and Undefined-ness
Matt Diephouse wondered how he should translate the following in to PIR code:
$var = "Foo";
*alias = *var;
$alias = undef;
$alias = "Baz";
print $var, "\n";
Audrey “Autrijus” Tang suggested that allowing multiple LexInfo names to point to the same underlying register would make this sort of thing (and several Perl6isms) a good deal easier to implement. Leo pointed out that it actually had been implemented, though I’m not sure if Luthor includes this. (Pugs always targets the latest Parrot release).
http://groups.google.com/groups?threadm=198c87380512150046o3efb9626×7c30588105b5b8e5@mail.gmail.com
Cleaning up the build process
Joshua Hoblitt went to town on RT posting a breakdown of proposed refactorings of the Parrot build process
ParTCL shootout
Will Coleda suggested that it would be useful to set things up to run the TCL shootout benchmarks on ParTCL. He’s not exactly sure that they’d work just yet (or be fast, come to that), but they’d certainly be a handy test/benchmark suite. After a couple of patches, it seems that ParTCL can at least run the “hello” benchmark. Still, a journey of a 1000 miles starts with but a single step and all that.
http://groups.google.com/groups?threadm=3FB91E50-040E-4CD7-83DF-FC8D4AEFBCE2@coleda.com
Parrot directory reorganization (phase 2 mark 3)
Jerry Gay’s reorganization of the Parrot distribution’s directory structure continued apace. Reorganizing the JIT subdirectory and its associated config system proved to be something of a sticking place, but Joshua Hoblitt sorted things out.
http://groups.google.com/groups?threadm=1d9a3f400512121814m6e6a64d4gfccddfc95a9a5cfd@mail.gmail.com
Bug or feature?
Chip had some thoughts about PIR’s macro support and concluded that we need a robust multi-line quoting convention in order to pass multiple lines of code to macros. He outlined some suggested syntax. Discussion ensued, mostly favourable.
http://groups.google.com/groups?threadm=20051212185501.GK6257@tytlal.topaz.cx
Building Parrot includes
Leo noted that the files in runtime/parrot/include/*.pasm are
created by configure. He argued that they should really be generated
by a Makefile rule, which would have the advantage of taking note of
dependencies. There followed a certain amount of quibbling with Joshua
Hoblitt, but I don’t think anyone disagrees with the gist of the proposal.
http://groups.google.com/groups?threadm=rt-3.0.11-37898-125569.9.16891768502722@perl.org
Library loading – no more duplicates
Leo announce that, as a of r10458, Parrot doesn’t load_bytecode
from the same file twice any more. Chip and Nicholas Clark applauded
the change and plotted ways to make it even more effective.
http://groups.google.com/groups?threadm=439D6A23.80305@toetsch.at
Fixing japhs
Not content with implementing shootout benchmarks, Joshua Isom has also fixed a few of Parrot’s example japhs.
http://groups.google.com/groups?threadm=dcf0c8153462a13760cc9f0c6ccd0070@ritalin.shout.net
Q: String.get_integer
Leo had some questions about magical conversion between strings and integers. Patrick and others reckoned that his proposed behaviour was about right. Personally, I’m not convinced that the basic String PMC should do any magic conversion, but PerlString definitely should.
http://groups.google.com/groups?threadm=43A2D3BD.6010203@toetsch.at
Parrot Borking
Steve Gunnell had a problems with Parrot throwing segfaults. Leo gave him some pointers to tracking the issue down and recommended using the SVN repository and not the CVS mirror.
http://groups.google.com/groups?threadm=1134899914.8669.11.camel@eldred.local
Meanwhile, in perl6-language
Relational data models and Perl 6
Darren Duncan’s been doing some thinking about Relational data models and how to support working with them in Perl 6 and posted the results of his thought on this to the list. Lots of discussion ensued. There was a fair amount of quibbling over details, but the general tenor of the discussion was in favour of supporting relational data models (possibly as a separate module).
http://groups.google.com/groups?threadm=p06230900bfc66428a67e@[192.168.1.100]]
Handling undef better
Darren also had some ideas about making undef behave more like a relational NULL. These were received a little less favourably—they aren’t exactly compatible with autovivification, which is one of those things that many people like about Perl.
So, a little later, Darren retracted his original proposal and posted a new one which takes into account the various different ways in which undef gets used in Perl programs.
http://groups.google.com/groups?threadm=p06230900bfc90d05004d@[192.168.1.100]]
http://groups.google.com/groups?threadm=p06230900bfca4b9752ed@[192.168.1.100]]
Transliteration preferring longest match
Brad Bowman wondered why the trans function described in Synopsis
05 specifies that the longest matching input sequence should be the
one that wins. He thought that a simple ‘first in order’ rule would be
more useful and flexible. The answer was that, because transliteration
matches literal strings, if you didn’t have ‘longest’ wins rules then,
depending on the order, you might as well simply remove the longer
literal because it’d never be used.
http://dev.perl.org/perl6/doc/design/syn/S05.html#Transliteration
http://groups.google.com/groups?threadm=43A1ACDB.2060603@bereft.net
Import/export and module configuration
Gaal Yahas had some questions about Perl 6’s import/export model and the various hooks that get called in the process. Larry had many answers and speculations. He also noted that he can now ‘translate about 95% of random Perl 5 back to identical Perl 5’. Which probably doesn’t sound like much at first glance, but it means he’s getting a great deal closer to being able to translate random Perl 5 code into equivalent Perl 6 code.
As Larry puts it, he is “now confident that we can hit the original p5-to-p6 spec of translating 95% of scripts at least 95% accurately”.
http://groups.google.com/groups?threadm=20051213104247.GA4095@sike.forum2.org
Acknowledgements, apologies and everything else
Wow! It’s still Monday! The move went pretty smoothly and our lives are slowly emerging from the boxes they had been packed in. We’re still boggling at how many boxes of china there were though. At one point I began to think we’d packed the country in there. I’m typing this from my new office on the second (third if you’re American) floor of our new (well, 178 years old, but new to us) house and wondering how much of the stuff that’s spread out over two table tops is really necessary.
Help Chip
http://geeksunite.org/—Chip still needs help.
The usual coda
If you find these summaries useful or enjoyable, please consider contributing to the Perl Foundation to help support the development of Perl.
http://donate.perlfoundation.org/—The Perl Foundation
The Perl Foundation Blog is an excellent source of news about the Perl Foundation’s activities.
http://blog.perlfoundation.org/
Planet Perl Six is a handy news aggregator of several Perl 6 related sources.
http://dev.perl.org/perl6/—Perl 6 Development site
