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, [EMAIL PROTECTED] is eager to hear from you.
<http://xrl.us/i9rz>
Pugs, Javascript and Perl 5
Continuing Pugs' tradition of linguistic mashup, Chia-liang Kao
announced that Pugs Javascript backend can now support Perl5.
<http://xrl.us/i9r2>
Meanwhile, in perl6-internals
Parrot Shootout
Work continued on implementing and optimizing Parrot's entry for the
Language Shootout.
<http://xrl.us/i9r3>
<http://xrl.us/i9r4>
<http://xrl.us/i9r5>
<http://xrl.us/i9r6>
<http://xrl.us/i9r7>
<http://xrl.us/i9r8>
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://xrl.us/i9r9>
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://xrl.us/i9sa>
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://xrl.us/i9sb>
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://xrl.us/i9sc>
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://xrl.us/i9sd>
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://xrl.us/i9se>
Fixing japhs
Not content with implementing shootout benchmarks, Joshua Isom has also
fixed a few of Parrot's example japhs.
<http://xrl.us/i9sf>
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://xrl.us/i9sg>
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://xrl.us/i9sh>
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://xrl.us/i9si>
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://xrl.us/i9sj>
<http://xrl.us/i9sk>
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://xrl.us/i9sm>
<http://xrl.us/i9sn>
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://xrl.us/i9so>
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://planet6.perl.org/>
<http://dev.perl.org/perl6/> -- Perl 6 Development site
Check out my website, it's lovely.
<http://www.bofh.org.uk/>
Vaguely pretty photos by me can be found at:
<http://xrl.us/i9sp>
--
Piers Cawley <[EMAIL PROTECTED]>
http://www.bofh.org.uk/