Landed safely to Portland last night. Predictably, I was hit hard by jet lag today, although I did manage to finish the slides for DLS, which will get a pre-run at Intel tomorrow:
- Pugs: An implementation of Perl 6 (PDF).
- The source slides in Keynote.app format.
- A Flash version is also available.
As usual, feedback are most welcome!
Meanwhile in Pugsland:
- seano++ implemented non-strict-vars for one liners: "pugs -e '$x = 1'" is no longer an error. An impressive first commit for a new committer! :-)
- raptor++, another new committer to Pugs, asked on #perl6 if there's a way to find out which parts of specs are not yet covered by tests. Thanks to smartlinks, we now have a standard answer for that: spec.pugscode.org. Shortly afterwards, raptor++ followed up with a test for "my $x = 1 if 1".
- On the airplane, I implemented this recent ruling from TimToady++: Closing curly of hash composers may not end a statement by itself:
The ambiguity arises on the "b=>" line, because if there's an implicit comma after it, then $h will be Hash; if there's an implicit semicolon, then $h will be Code. We can't intuit either way, so it's ruled into an error.my $c = sub { say 123 } # this is valid -- semicolon is optional
my $f = sub foo { say 456 } # valid -- named subs are expressions
my $h = {
a => { x => 1, y => 2 }, # valid, with a comma
b => { x => 1, y => 2 } # ERROR, because it's ambiguous
}; - As usual, the ruling turns out to have interesting repercussions when actually implemented (e.g. statement-level blocks shouldn't compose as hashes at all), so xinming++, TimToady++ and me took some time to repair the build. It's all good now, though.
Oh, and I'd like to thank Schwern++ for being an extraordinary localhost, even offering to drive me to Intel tomorrow and attend my talk. That's good, because the number of registrations for DLS apparently doubled the expectation, so walk-in may not be possible for that maxed-out room. :-)
Recent Comments