Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

chromatic (983)

  (email not shown publicly)

Blog Information [] Profile for chr0matic []

Journal of chromatic (983)

Monday May 10, 2010
01:07 AM

Perl 6 Design Minutes for 05 May 2010

[ #40351 ]

The Perl 6 design team met by phone on 05 May 2010. Larry, Allison, Patrick, Will, and chromatic attended.


  • various spec updates, some major
  • removed p5=> description because it's not supported in core
  • deleted self:sort construct because self isn't a real syntactic category
  • explained Perl patterns in terms of PEGs, and spec'ed tiebreaking rules explicitly
  • last but not least, finally purveyed the long-threatened revamp of proto to keep routine and method semantics similar
  • they all now work much more like the multiple dispatch semantics currently used by STD, where we always call the proto first
  • the proto is then always in charge of the actual multiple dispatch; it can of course delegate that
  • and the default for a null body corresponds closely to current semantics
  • in hacking news, the lexer generator mislaid any alternative that was a bare . pattern, so cursor_fate never called its alternative, oops
  • took me a long time to run that one down, because it resulted in a horrendous backtrack causing mysterious misplaced errors
  • revamped character class parsing to be more helpful and correct
  • STD now check a normal regex bracket's innards for old-school character class, and warns if found
  • added a .looks_like_cclass method to Cursor to detect most accidental uses of P5 ranges
  • some valid P6 brackets will complain, but the workarounds are easy
  • just put whitespace on both ends is one way
  • removed a few of these old-school-ish character classes from STD
  • changed :tr language to :cc language since character classes share it
  • (translation pays more attention to ordering, but the language is the same)
  • turned out parsing character classes discovered issues in STD; various character classes needed to backslash # that would otherwise be a comment
  • to that end, we now allow \# in character classes instead of misparsing as unspace
  • if we find an invalid - in a regex, we now presume we're in an old-school character class and fail with a sorry instead of a panic to give the character class code a shot at it
  • STD now uses ~ syntax for regex brackets to set $*GOAL correctly
  • cleaned up recursive panic detection; it was possible to get both false positives and negatives before
  • STD shouldn't use 'note' to emit a panic inside a suppose because that leaks the message that should be trapped
  • STD now suppresses duplicate sorry messages more correctly
  • sorry no longer uses panic in a supposition, but dies directly to throw the exception to the suppose's try block
  • STD now allows subscripts on regex variables so $x[0] isn't taken as a character class; still needs speccing


  • can we make them consistent?


  • historically S05 has allowed bare arrays to mean interpolation


  • we've never had a working implementation of that


  • a bare @ would be illegal


  • it's currently illegal


  • you'd have to backslash it to match part of an email address
  • it's not like the @ alternations are a big deal one way or another
  • that'd be a little more consistent
  • I forced it to think of the sigil as $ than what it really is


  • after seeing how Jonathan et all did interpolation for quoted strings, I thought we should do the same thing in regexes


  • STD now has a partial fix to prevent leakage of ::T from role signatures
  • unfortunately, the current fix will lose signatures of file-scoped generic roles
  • this probably has to do with not knowing whether we're really going to want a new pad; unfortunately we'd have to look ahead to know that currently
  • various other minor tweaks and bug fixes in STD and Cursor


  • mostly responding to messages and reports
  • should be able to get back to coding full-time and online for the next week
  • plan to resolve the list and closure issues with NQP and Rakudo
  • will answer other questions and try to keep other people productive
  • planning for the Rakudo Star release on June


  • busy with the last week of classes
  • spent most of it writing a little language with PCT
  • it was easy to use and easy to swap the stages of PCT
  • I remembered what Patrick did with LOLCODE
  • also had a discussion of source code control systems
  • next week should be more productive
  • need to work more closely with Debian packagers to get packages into Debian


  • cleaning out as many deprecations in Parrot as possible
  • trying to improve the speed of CodeString after the immutable STRINGs merge
  • bundling lots of little concats helps
  • hope to merge in an optimization branch for that by the weekend
  • want to make that faster or less memory intensive
  • may require the use of a new StringBuilder for Parrot
  • hopefully will result in a faster Rakudo build


  • I've never seen CodeString take a long time
  • unless you run into memory problems
  • * discussion of the StringBuilder PMC *


  • still working on optimizations, particularly CodeString
  • looking at more PBC and PBC-building optimizations
  • PBC size went down dramatically and startup improved for Rakudo
  • should have that much faster for the 2.4 release
  • will poke at GC tasks starting next week
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.