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
- 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
Sun, 05 Jul 2009
Perl 6 Tidings from June 2009
Permanent link
Specification
Packaging
At the end of May and begin of June we saw several long threads on p6l about how to distribute Perl 6 modules, and if Mark Overmeer's cpan6 project is (part of) the solution.
As far as I could tell the discussion didn't become very productive, partly because the participants tried to discuss too many things at once (for example distribution problems, format of source repositories and binary distributions).
My personal conclusion was that cpan6 isn't going anywhere soon, and not being designed as an evolution of something existing it means that really much would have to happen until something useful comes out. As a consequence I uploaded a Perl 6 module (JSON::Tiny) to the existing CPAN and watched the fallout. My next steps will be to teach proto to install modules from CPAN, and to pester the modules@perl.org mailing list.
Module loading
As the result of a perlmonks discussion Larry broke down module finding and loading into separate steps.
He also addressed the problem of having multiple modules with different authorities.
Strings and Bufs
Larry and I fleshed out the semantics
for the Buf types,
encoding and decoding and related issues (r27095, r27096, r27097,
r27098, r27100, r27106, r27365).
Other changes
- New built-in method Array.rotate (r27062, r27063, r27073)
- Clarification on ties and epsilons in multi dispatch (r27313)
- The
constantdeclarator scopes likeour(r27313)
Implementations
Rakudo
Although both jnthn and pmichaud had some vacations, Rakudo has seen some nice progress in June:
- Martin Berends contributed an implementation of the Temporal type (date and time stuff)
- Methods now accept additional named arguments (jnthn)
- jnthn fix the BUILD submethod to be actually usable
- If you load libraries from other programming languages, the symbols are now declared at compile time (Tene)
- Type checking of implicitly returned values (jnthn)
- Improved assignment handling (pmichaud)
- More introspection (
.^parents, .^methods) (jnthn) - Allow operators to be defined in the setting (pmichaud)
- Partially implement series and eqv operators (moritz)
- Literals in a signature act like
where $literal(jnthn) - minmax infix operator (pmichaud)
- take() without gather now warns (masak)
- extensive multi dispatch refactor. With even better handling of where-clauses, and allows generics in multi dispatch (jnthn)
Currently Rakudo suffers from memory handling problems in parrot, where seemingly randomly the .succ method is called on strings (which is equivalent to the ++ operator) which for example mangles type names (Hash becomes Hasi).
Smop and mildew
pmurias makes great progress in implementing multi dispatch for mildew. Curiously he hits the same speed problems that Rakudo initially faced as the multi dispatch algorithm became more sophisticated.