To see what is currently happening visit http://www.perl6.org/
It's been a while hasn't it?
We'll start as usual with perl6-compiler
??:: to ??!! in PugsFollowing discussion of the ternary operator in perl6-language, Benjamin Smith
altered pugs to use the new ??!! syntax.
Joshua Hoblitt posted a patch to intro.pod fixing a few typos and wondered whether the docs should be in British or American English. Apparently the Perl 5 style rule is that British authors shouldn't be required to write American English, and vice versa, but that a consistent style within a document is preferred. The consensus so far seems to be "Any documentation is good so write what's comfortable for you."
Warne just got Trescothick out. 109 for 4
Sam Ruby, Leo and Chip had a discussion of how to implement python semantics for parrot. I'm not sure I followed what was going on, but it looked like good 'crunchy' stuff.
Amir Karger announced that he'd adopted the Zcode interpreter that Leo posted in February (having, according to Amir, done the hard parts). Apparently there's 41 opcodes to do just to get version 3 of the Z-machine working, and then there's the problem of making Zops into loadable Parrot ops. He had a few problems with the test suite which got fixed in discussion.
Michal Wallace posted an update on Pirate (the python to parrot compiler). He and Curtis Hall have been taking advantage of a Google Summer of Code grant to refactor the (Curse! Now Flintoff's out. Caught & bowled Warne for 8) current mess. Their first step was a generic transformation module which has apparently made life easier for the compiler module.
They've also produced a plan in code for how they hope they'll have things working once the refactoring's finished and asked for comments. So far comments have not been forthcoming.
pirate.versionhost.com&content-type=text/vnd.viewcvs-markup
leo-ctx5 branchWill Coleda's been having a crack at getting ParTcl working with the leo-ctx5 branch and had a few problems. It turns out that he'd tickled a bug that Leo described as 'a bit non-trivial'. It took him a while, but it got fixed eventually (Over 10 days, but he did have the excuse of being at YAPC::Europe for a chunk of that time).
They've gone in for lunch at 127 for 5. Hopefully I'll be able to get down to some summary writing without being on the edge of my seat for a while.
Chip posted a review of the leo-ctx5 branch prior, describing it as "A
significant improvement." The body of the review covers user visible changes
and a few niggles with the current state of the branch. Leo replied with a few
questions and explanations.
Nattfodd announced the 'release' of GMC, the generation garbage collector he's been working on as part of Google's Summer of Code. It's not quite bug free yet, but the SoC deadline was the 1st of September, so that's when it got released. Discussion ensued, hopefully helping to triangulate bugs.
Following a discussion with Chip and Leo, chromatic posted a call for entries in a 'very specific TODO list'. A list of things that should work, but don't. He contributed a couple himself. Various other suggestions were offered.
Curtis Rawls spent part of his Summer of Code project wishing there was better documentation of the Parrot optimizer. So he wrote some. Brent Royal-Gordon converted it to POD format, and Leo asked for someone to add it to the repository.
Matt Diephouse posted a list of namespace features that he thinks are necessary to support all the target languages and asked for some comments. He got several, including one from Larry.
Nicholas Clark had some questions about finalization and destruction in Parrot. In particular, he asked: "Does parrot make any guarantee that all objects will be rendered down to bare memory before program exit". Leo answered and the answer was good enough for Ponie. Huzzah.
Ah... they're back on the pitch... I may be slowing down again...
Discussion of Luke's proposal to demagicalize Pairs continued. It turns out that it's actually a discussion of how to do named argument calling...
~ and + vs. generic eqI don't know about you, but I'm starting to lose track of Perl 6's 'equality'
tests. The latest discussion concerns the differences between ~~ and
eqv. Damian pointed out that we currently stand at 6 different possible
tests for 'equality' and wondered if that might not be slightly too many.
Yuval Kogman thought it was time to think about how a the Perl 6 on Parrot
linker might eventually look. So he did some thinking aloud. Discussion ensued,
mostly related to the workings of use and other directives that can affect
compilation semantics.
Ingo Blechschmidt had some questions about the workings of the binding operator. He outlined a list of possibilities along with his understanding of the semantics. Yuval Kogman and TSa had some ideas, but nothing from @Larry yet.
Speaking of @Larry, Matt Fowles asked who comprises @Larry. According to
Autrijus, @Larry = «Larry Damian Chip Leo chromatic Allison Hugo Luke Nathan
Dan», but I have the feeling Dan's retired.
Continuing his investigations of semantics, Ingo Blechschmidt had some questions about the semantics of list construction. Yuval and Juerd had some suggested answers.
More questions from Ingo, more suggestions from Yuval and Thomas Sandlaß this time. There was even an answer from Larry.
another_sub(@_) in perl 6?Yuval wondered how to pass arguments through from one sub to another in Perl 6. My mailbox appears to be missing a few replies so I'm not entirely sure how the thread went. I don't think there was anything on the subject from @Larry though.
Yuval Kogman thinks code like this is ugly:
($index_by_x{$thing->x_value} ||= Set::Object->new)->insert($thing);
Frankly, I agree with him (how could I not?)
He suggested a couple of possible ways of avoiding such ugliness in Perl 6. My favourite was probably:
my %hash will autovivify { Set::Object.new };
However, I'm not sure that this is something that needs to be in the language core; it seems to be the sort of thing that can be implemented reasonably simply in a CP6AN module.
Luke is trying to get the useful:dangerous balance inherent in Junctions sorted out. To that end, he proposed a new way to do autothreading that doesn't use junctions at all. Discussion ensued, mostly to do with where to fit the semantics in the syntax.
Luke tried to make people's heads hurt with this sample code:
sub foo(&infix:<+>) { 1 + 2 }
sub bar($a, $b) { say "$a, $b" }
foo(&bar); # "1, 2"
I think everyone but Yuval Kogman was too shocked to comment.
@array = $scalarIngo continued his mission to understand assignment semantics by asking about
assigning a scalar to an array. The thread drifted slightly, moving onto
consideration of such hypothetical(?) operators as ,=, &= and |=. One
of those is probably more hypothetical than the others.
no 6;Rafael Garcia-Suarez thought it would be useful to be able to put no 6; at
the top of Perl 5 modules that it wouldn't make sense to port to Perl 6. In
order for this to work effectively, he thought it would be best if Perl 6 would
at least die correctly with a useful error message. He asked p6l for
comments. Apart from asking if supporting no 5 would mean we'd have to
support Perl 4, there weren't any.
for $arrayref {...}Another question from Ingo. Another answer from Juerd with commentary from Luke.
Another of our Summer of Code interns, Brent Royal-Gordon announced the 0.02 release of WWW::Kontent, a content management system written in Perl 6 and executable in Pugs. As Brent says, it's not ready for production, but it seems to be ready for serious play. From the release notes:
"Part of the purpose of this project was to test Perl 6, and I'm happy to report that it passed with flying colors. Perl 6 feels like a much-enhanced Perl 5, with all the wrinkles removed and very few new ones added. It seems to be a very solid design, and is a joy to program in."
I've been saying that this would be the case for ages now. It's good to see that Brent's experience here bears that out.
&multisub.arityAnd another question from Ingo. This time he wanted to know about the arity of multi subs. The discussion got rather complicated.
en.wikipedia.org - The meaning of arity
Luke showed an example of a seemingly simple multi sub declaration that ended up creating an infinite loop. He asked for suggestions about fixing it. He and Yuval worked some stuff out.
Dan Kogai noted that its way easier to do Lambda Calculus things in Perl 6 than it was in Perl 5. He even went so far as to claim it was even easier than doing the same thing in Scheme.
??::Thomas Sandlass thought that making :: unambiguously be used as a symbolic
sigil was worth changing the ternary operator to ??//. Almost everyone
agreed that replacing :: wouldn't be a bad thing, but that // wasn't the
right replacement. We ended up with the ternary operator becoming ??!!.
\(...)Another of Ingo's questions, this time about the behaviour of \(...) spun
off into a rather complicated discussion that I'm afraid I'm not going to
attempt to summarise in more detail than that.
Stevan Little is currently wrestling with the Pugs MetaModel and had some questions about the workings and interrelationships of Packages, Modules and Classes. He and Larry sorted things out.
Dave Whipp had some questions about parsing a Pythonesque language using Perl 6 rules. Much discussion ensued with possible extensions to Perl 6 rules being suggested. Then Damian pointed out, with appropriate rules, that you don't need any extensions, you can parse such languages already.
McGrath just bowled Kevin Pietersen for 158. It's looking awfully like we've won The Ashes.
Juerd wondered if 'item context' and 'slurpy context' were official terms now. Larry thought not, preferring item and list context.
Nicholas Clark wondered if Perl 6 will have any documented notion of things like sequence points, undefined behaviour, etc. Will it fix the order in which function arguments are evaluated and all those other things it's useful to know. Warnock applies.
Ah... sorry for the lack of recent summaries. Sorry for being distracted by the cricket, but it's been a bit tense for most of the day.
geeksunite.org -- Chip still needs help.
If you find these summaries useful or enjoyable, please consider contributing to the Perl Foundation to help support the development of Perl.
donate.perl-foundation.org -- The Perl Foundation
dev.perl.org -- Perl 6 Development site
Check out my website, it's lovely.
Vaguely pretty photos by me can be found at: