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
Mon, 10 Nov 2008
Perl 6 Tidings for November 2008
Permanent link
Specification
A couple of small improvements to the spec made me a bit happier this past week:
-
There's now a Nil
type. A
Nilrepresents the empty list, but unlike a normalListobject it is undefined in scalar context. It is returned by a barereturnstatement. -
A cleanup
of the global variables added (among other things) a
$?VMvariable, which holds informations about the backend being used to execute some code. I like this very much because currently some tests use the unspecced$?PUGS_BACKENDvariable, which of course breaks other implementions. -
File test operators look like this in Perl 6
$filename ~~ :e. This used to boil down to calling the method:ein classStr, which was a bit messy, because colons are not part of an identifier, and thus :e wasn't really a valid method name. Now this is special-cased in the smart match operator instead, and the method is named without the colon.
The smart links in the synopsis documents at http://perlcabal.org/syn/ now contains syntax hilighted code.
Implementations
SMOP
In his report to the TPF grant comittee Daniel Ruoso informed us about his work to integrate SMOP into Perl 5 by means of writing an XS module.
I'm not sure how much you can actually do with it right now, but it seems like an important proof-of-concept.
Rakudo
Jonathan and Patrick refactored Rakudo's handling of containers and values, to great success. This resulted in quite a few tickets being closed, and some more passing spec tests. Great work!
It's now also possible to define custom stringification routines for your classes (what's called "overloading" in Perl 5).
Last but not least, both Patrick Michaud and Jerry Gay received grants from Ian Hague's fanastic donation. Patrick will work on protoregexes and longest token matching (LTM) as well as the prerequisites to use external libraries (which is needed if you want to write the prelude in Perl 6 - guess what the plan is...).
(I've tried to explain the importance of LTM in this article, but I'm not sure if I succeeded. Anyway, it's essential for parsing Perl 6 correctly.