The Perl 6 Summary for the week ending 2005-11-27
Another week passes. Another summary is written. Another sentence
remains steadfastly in the passive voice.
This week in perl6-compiler
Perl 5 tests for PGE::P5Regexp
Jerry Gay announced that he'd checked in a subset of perl 5.9.2's regexp
tests to give PGE something to work on. Right now only 130 of 960 tests
are running, in part because the test harness he's using can't quite
cope with the test file syntax used for the original tests. I'm sure it
won't stay that way or long.
A couple of days later he announced that more tests were being converted
and that there were now 360 passing tests and a further 155 or so TODO
tests.
Well done Jerry.
<http://xrl.us/i2be>
PDD 20 and :outer
Leo had some questions about the workings of lexical pads and ":outer".
He showed a couple of examples in high level language and wondered if
his parrot conversions were right. Chip thought that Leo shouldn't worry
about implementing the Perl 5 semantics of a named inner subroutine
because the way Perl 5 does it is a bug not a feature. Dave Mitchell
wasn't so sure.
<http://xrl.us/i2bf>
DynLexPad
Leo's working on implementing a DynLexPad PMC to provide 'a more dynamic
lexpad' akin to the new deprecated ScratchPad PMC. He outlined his
current plans and asked for comments from HLL authors about what they
needed.
<http://xrl.us/i2bg>
Punie to AST
Allison has checked in the code to transform PunieGrammar match objects
into Abstract Syntax Trees (ASTs). Apparently the set of AST node types
she's using isn't quite the same as the Pugs PIL. Hopefully one day
we'll have a common AST format, and all manner of things shall be well.
<http://xrl.us/i2bh>
Meanwhile, in perl6-internals
RESPONSIBLE_PARTIES or ENTITIES_AT_FAULT?
Joshua Hoblitt suggested that Jerry Gay should be added to the
RESPONSIBLE_PARTIES file as the person in charge of the test suite.
After a small amount of byplay suggesting the file be renamed, the
nomination was strongly seconded and Jerry's name added to the list.
<http://xrl.us/i2bi>
Curses and parrot problems?
Josh Isam has been having problems with using the curses library under
both Darwin and freebsd. He wondered if anyone had any pointers for
fixing things. Leo thought it might be that the parrot ncurses support
was getting a function signature wrong somewhere and suggested Josh
check that.
<http://xrl.us/i2bj>
Subs may not contain dynamic call info, ever
Repeat after Chip: "Subs don't have callers. Call frames have callers."
After a short discussion with Leo, Chip wrote a short treatise on the
relationships between Subs and Closures, noting that they should only
hold static information.
<http://xrl.us/i2bk>
Undefined labels
While working on TODO #37590 (catch illegal bsr at compile time), Leo's
made parrot rather more picky about labels and how they are used.
Essentially, if you weren't doing daft things with labels you're
probably all right. If you were, you should probably check this post.
After Leo checked the fixes in (r10168), several PGE tests started
breaking. Less than 6 hours later, Patrick check version r10176 in and
the tests started passing again. Leo (and I) was impressed.
<http://xrl.us/i2bm>
<http://xrl.us/i2bn>
Exception handlers and calling conventions
Leo posted a brain dump about how to get exception handling to work in
Parrot. In particular he wanted help with syntax (exception handling
semantics aren't exactly rocket science when you've got a continuation
based virtual machine after all). Warnock applied (However, I am
reliably informed that next week's summary will have some responses;
anyone who suggests that that's because this summary is late will be
annoyingly Right).
<http://xrl.us/i2bo>
Test::More and tests in PIR
Not content with having a pure PIR implementation of Test::Builder,
chromatic posted his implementation of Test::More in pure parrot.
Admittedly the current version should likely be called
Test::Less::Is::More, but the journey of 1000 cliches starts with a
single step and all that. And that's not all, the fearlessly lowercased
one intends to start work on the big daddy, Parrot::Test with an eye to
doing even more in Parrot. (Which makes a good deal of sense. After all,
the plan is to get Parrot to a point where it can be built without
needing a working perl installation)
<http://xrl.us/i2bp>
Meanwhile, in perl6-language
"\x{123a 123b 123c}"
Juerd had praised Ruud H.G. van Tol's proposal of "\x{123a 123b 123c}"
as a replacement for "\x{123a} \x{123b} \x{123c}" in rules. Larry wasn't
so sure. He suggested "\x[123a,123b,123c]" but still wasn't exactly
happy with it. He also had some thoughts about character class syntax,
and the meaning of spaces within a character class spec. This being the
language list, the discussion spun off in various directions (all
related to rules, just not necessarily that much to do with the nominal
subject). It was good stuff though; threads with Larry, Damian, Patrick
and Luke in them usually are.
One little tidbit that came out of this was a reminder that the best
place to read synopses and apocalypses is at svn.perl.org or
dev.perl.org because they are kept up to date, unlike the ones at
perl.com.
<http://xrl.us/i2bq>
Multidimensional argument list binding
Ingo Blechschmidt's question from the end of last week about
multidimensional argument list binding got addressed this week. He, Luke
and Larry discussed different aspects of slurpiness. Personally, I
expect I'll be using the "*@;foo" for almost all my slurpy needs.
<http://xrl.us/i2br>
"statement_control<foo>()"
Ingo Blechschmidt had asserted that "for" is not strictly a Perl 6
keyword, but is (conceptually at least) at statement control subroutine.
Rob Kinyon wondered what other 'keywords' were actually statement
control subs. According to Ingo, pretty much everything that's used for
control flow modification is a statement control subroutine, but that
they'll almost certainly be optimised away to 'primitives' of some sort
(after all, it's rather hard to come up with a definition of "if", say
that isn't at least slightly circular).
<http://xrl.us/i2bs>
"till"
Perl 6's stock of agricultural operators continues to grow apace. Not
content with "gather", we now have "till", which replaces the old
flipflop operator ".." (sorry beachware fans).
Larry had some thoughts on the detailed semantics in response to a
question from Ingo. Most of Ingo's problems disappeared when he realised
that "till" would be a macro.
<http://xrl.us/i2bt>
Ponie!
Joshua Gatcomb wondered what was happening to Ponie and if Fotango would
continue to fund it. Warnock applies.
<http://xrl.us/i2bu>
Dis-junctive patterns
Gaal Yahas found what looked like a bug in pugs. Larry agreed that it
looks pretty entomological. It's probably already fixed in bleadpugs.
<http://xrl.us/i2bv>
Type sigils and a new unary "^" operator
Larry announced that, after all the discussion of coming up with a type
sigil and searching for various possibilities, he's ended up back at
"::", which was what it was before the discussion started. Apparently
the tipping point came when he realised that he wanted "^$x" back as a
unary operator that's short for "0..($x-1)" which would make it easy to
write things like:
for ^5 {...}
without falling foul of fencepost errors etc. Some people didn't like
it. Vocally. Larry stood firm. Yay Larry. (Impartial summarizer? What's
that then?)
<http://xrl.us/i2bw>
Lazy lists in Str context
Flavio S. Glock reckoned it would be nice if:
say substr( ~(1..Inf), 0, 10 )
printed "1 2 3 4 5". There was discussion, but I think we stayed firmly
in "Not going to happen." Unless I completely misread the thread of
course.
<http://xrl.us/i2bx>
Binding of list slice elements
Ingo Blechschmidt is great at posting a few lines of not particularly
mind bending code and then following consequences through until either
your mind is broken, or you assume that Ingo's must be (more usually the
former than the latter, to Ingo's everlasting credit).
This time he followed through on the implications of binding array
slices. Nothing from @larry yet, but he posted at the end of the week.
<http://xrl.us/i2by>
Acknowledgements, apologies and everything else
This summary was made from the finest mailing list posts, each
individually plucked and filleted for your delight and elucidation. The
alert among you will have noted that today is Wednesday and not Monday,
which means we're a little late. What can I say? It's ready when it's
ready.
This summary was also brought to you through the labours of Piers Cawley
and not Matt Fowles as we had planned when, dewy eyed and innocent, I
set off on the long journey down to the wilds of London with the express
intention of attending the London Perl Workshop, the International Magic
Convention, Sharp's folk club and divers fine gentlemen's outfitters,
jewellers, bookshops and quality eating establishments.
All was proceeding flawlessly, until, on Saturday morning as the tube
train doors began to close in front of me, I attempted to stop running
and discovered that the soles of my shoes had other ideas and fell on my
arse, twisted my ankle and scraped an unfeasibly large amount of skin
from my shin off on the bottom of the aforementioned tube train. Luckily
the driver noticed my plight and did not drive off, taking my left foot
with him. Instead he opened the doors and waited for me to dust myself
off and board his vehicle, which carried me to Paddington where, after
much hobbling and swearing I was bandaged and deposited once more on
London's cold and unfeeling streets.
So, I hopped into a taxi (and I use the word hopped advisedly) and
repaired straightway to King's Cross and thence home to Gateshead, where
my discomfort was somewhat ameliorated by the distraction of preparing
this week's summary. I hope to be writing next week's summary as well
because the week after I'll be moving house and don't quite know when
I'll have my bandwidth back.
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.perl-foundation.org/> -- The Perl Foundation
<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/i2bz>
--
Piers Cawley <[EMAIL PROTECTED]>
http://www.bofh.org.uk/