The Perl 6 design team met by phone on 05 May 2010. Larry, Allison, Patrick, Will, and chromatic attended.
Larry:
- 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
Patrick:
- can we make them consistent?
Larry:
- historically S05 has allowed bare arrays to mean interpolation
Patrick:
- we've never had a working implementation of that
Larry:
- a bare
@
would be illegal
Patrick:
Larry:
- 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
Patrick:
- after seeing how Jonathan et all did interpolation for quoted strings, I thought we should do the same thing in regexes
Larry:
- 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
Patrick:
- 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
Allison:
- 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
Will:
- 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
Patrick:
- I've never seen CodeString take a long time
- unless you run into memory problems
* discussion of the StringBuilder PMC *
c:
- 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