Categories
Posts in this category
- A shiny perl6.org site
- Creating an entry point for newcomers
- Sprixel, a 6 compiler powered by JavaScript
- Another perl6.org iteration
- Blackjack and Perl 6
- Why I commit Crud to the Perl 6 Test Suite
- Report from the Perl 6 Hackathon in Copenhagen
- Custom operators in Rakudo
- Defined Behaviour with Undefined Values
- Dissecting the "Starry obfu"
- Perl 6: Failing Softly with Unthrown Exceptions
- The first Perl 6 module on CPAN
- Google Summer of Code Mentor Recap
- Building a Huffman Tree With Rakudo
- Immutable Sigils and Context
- Is Perl 6 really Perl?
- Perl 6: Lost in Wonderland
- Lots of momentum in the Perl 6 community
- Musing and the future of feather and the Pugs repository
- Musings on Rakudo's spectest chart
- My first executable from Perl 6
- Trying to implement new operators - failed
- Let's build an object
- Perl 6 is optimized for fun
- How to get a parse tree for a Perl 6 Program
- Perl 6 in 2009
- Perl 6 ticket life cycle
- The Perl 6 Advent Calendar
- How to Plot a Segment of a Circle with SVG
- Publicity for Perl 6
- Rakudo architectural overview
- Rakudo Rocks
- Rakudo "star" announced
- Rakudo's rough edges
- Rats and other pets
- Releasing Rakudo made easy
- Set Phasers to Stun!
- Starry Perl 6 obfu
- Recent Perl 6 Developments August 2008
- Strings and Buffers
- Subroutines vs. Methods - Differences and Commonalities
- A SVG plotting adventure
- A Syntax Highlighter for Perl 6
- Test Suite Reorganization: How to move tests
- The Happiness of Design Convergence
- Perl 6 Tidings from September and October 2008
- Perl 6 Tidings for November 2008
- Perl 6 Tidings from December 2008
- Perl 6 Tidings from January 2009
- Perl 6 Tidings from February 2009
- Perl 6 Tidings from March 2009
- Perl 6 Tidings from April 2009
- Perl 6 Tidings from May 2009
- Perl 6 Tidings from May 2009 (second iteration)
- Perl 6 Tidings from June 2009
- Perl 6 Tidings from August 2009
- Perl 6 Tidings from October 2009
- Timeline for a syntax change in Perl 6
- Visualizing match trees
- We write a Perl 6 book for you
- When we reach 100% we did something wrong
- Where Rakudo Lives Now
- Why was the Perl 6 Advent Calendar such a Success?
- What you can write in Perl 6 today
- Why you don't need the Y combinator in Perl 6
Tue, 06 Jan 2009
Perl 6 Tidings from January 2009
Permanent link
Specification
Jerry Gay continued his work on S19 - Command Line Interface with various improvements and corrections.
Larry Wall clarified
the meaning of things like *-1, which
can be used in array indexes to access the last element. If a noun starts with
a Whatever Star *, it constructs a closure, so *-1
is really the same as { $_ - 1}. The routine that handles the
array subscript operator [ ] passes the number of elements to
that closure.
Daniel Ruoso asked whether @@a (slice view of array
@a) and @a could be made distinct variables, since
the originally planned unification between them would imply too much magic to
allow an efficient implementation (so far no Perl 6 compiler implements slice
context and variables). Larry replied that it's OK to separate them. However
that separation didn't make it into the specs yet.
Carl Mäsak published a S29 laundry list, and both encouraged other to work on S29 - Built-in Functions and Methods, and announced that he would try to tackle at least some of the missing items himself.
We've also seen a few spelling and grammar corrections - the move of the Synospis documents to the pugs repository did have a positive impact on hackability.
Implementations
Rakudo
Since my last update
there has been a lot of progress in Rakudo: Arrray and Hash slices (as in
@array[1..3, 5]) now work, list assignment (as in
my ($x, $y) = 0, 1;) is implemented, and many reduction and some
hyper meta operators now work, so you can write things like this:
my $sum = [+] 1..10;
my @product = [*] @numbers;
my @sum = @n1 »+« @n2;
Rakudo now passes more than 6000 spec tests. As always you can monitor its progress in the test suite on rakudo.de.
SMOP
The smop developers added support for the return function and
control exception, and for integration with a C level coroutine library.
Test Suite
Over the hollidays I spent some time moving tests from the old part of the
test suite to t/spec/, in particular tests for object
orientation. I also moved many of the tests in
t/examples/99problems/ to t/spec/integration/, which
is the place for tests that don't correspond to one particular synopsis, but
which are common sense, or interaction between features from different
synospis. To reduce the number of tests, I merged ten of them into one.
I also noticed with joy that other started to move files to
t/spec/ as well, and added more tests.
The moving and test review is still an ongoing task. To give you an idea of the dimensions of the test suite, here are some numbers:
| Category | Files | Plan |
|---|---|---|
| spec | 461 | 10272 |
| unspecced | 16 | 108 |
| examples | 26 | 136 |
| xx-uncategorized | 26 | 135 |
| pugs | 4 | 38 |
| other | 197 | 7624 |
| sum | 730 | 18313 |
The plan is the estimated number of invididual tests.
spec menas the part that are official test suite, and are hopefully
reviewed. unspecced are tests that people wrote for features they
would like to have, but that aren't covered in the synopsis. They will only
make it into the official test suite if the language design team decides that
these features are desirable, and make it into the specs. examples
should be self-explanatory. Some of them will likely be moved to
t/spec/integration/. The same holds true for
xx-uncategorized, which is full of assorted tests. pugs
are the pugs specific tests. other
is the whole rest of the not yet moved tests, all of which need some
review.
Cool Uses for Perl 6
Carl Mäsak started the implementation of a cool, 2½-D board game named Druid.
A note to Implementors
You have probably noticed that these roughly monthly tidings are mostly about the Spec, the test suite and Rakudo. That's not because I want to neglect the other implementations, but because it's hard to actually get news from them.
I read the mailing lists (p6l, p6c, p6u), the blogs, I'm on #perl6 quite often, and try to backlog when I'm not.
I can only encourage all compiler hackers and users to blog about their progress and challenges (and, if it's not already there, get it included in the planetsix feed by sending a mail to the perl.org webmasters). If you don't want to write a full-blown blog entry, just drop me a line on IRC about your progress and its impact, and I'll include it in my next "tidings" post.
Comments / Trackbacks:
Trackback URL:
/blog-en/perl-6/tidings-2009-01.trackback
mj41 wrote
Perl 6 and Parrot links
Hi. There is also "Perl 6 and Parrot links" page http://perl6.cz/wiki/Perl_6_and_Parrot_links to follow news.
Write a comment
The comments on this blog post have been disabled; the comment form below will not work.