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)

Wednesday January 20, 2010
11:41 PM

Perl 6 Design Minutes for 09 December 2009

[ #40115 ]

The Perl 6 design team met by phone on 09 December 2009. Larry, Allison, Patrick, Will, and chromatic attended.


  • some work on NQP port of Partcl
  • Patrick has been very helpful
  • sent a message to the Parrot list about the planning meeting this Sunday
  • initiated a community document to discuss those plans


  • implemented large chunks of obscure C code to perform fast string matching using the FFT
  • wondering if that'd be useful in Parrot
  • maybe we do our indexing operations by character set in the NFG form
  • also does very basic pattern matching by leaving out optional characters
  • could be useable in the core tests, where it's tricky to depend on PGE
  • this was my final assignment before the Christmas break
  • have a month off to work on Parrot stuff then
  • I'll show off my assignment when I submit it


  • finished my final report for my Hague grant
  • haven't quite finished the grant, but left TODO items
  • rather than trying to finish everything and then write the report, I'd draft the report and keep notes on what I needed to finish
  • need to work on HLL interop
  • enable Perl 6 and other Parrot languages to load libraries from other HLLs
  • will work on that over the next few days
  • had several coversations about optimizations, constants, and inferior runloops
  • made minor PAST improvements
  • integer constants can automatically promote to num constants without going through a PMC
  • updated NQP to make it easier to write custom operator subs, if you're using the operator precedence parser
  • implemented the beginnings of smart matching
  • not full Perl 6 smart match
  • makes sense in the Parrot context
  • can match against regexes, tokens, rules, and any types with protoobjects
  • code looks more like Perl 6
  • not much on Rakudo besides answering questions
  • will get back to the Rakudo-ng merge after finishing my grant work
  • also worked on Partcl
  • updated its regex syntax, particularly for enumerated character classes
  • fixed it to handle unquoted, non-word characters in regexes
  • previously it only handled barewords as literal matches
  • it's closer to the Perl 5 syntax now


  • didn't like the name PairValSet, renamed it EnumMap
  • likewise PairSet is now PairMap, and PairVal is just Enum
  • so individual constant pairs now called "enums"
  • we distinguish pairs, which have read-write values, from enums, which are constant in the value
  • you can now do .enums on hashes and arrays as well as enumerations
  • differs from .pairs, which give reference semantics into the values of the original data structure
  • .enums gives you a constant snapshot
  • David Green suggested renaming to Enum.key, and he was right, since they're constant pairs
  • trying to be consistent about calling the whole type an "enumeration" and referring to the bits as "enums", even though the keyword is enum
  • thought people would rebel at typing the long name
  • clarified that the anonymous enum is compile-time evaluated as an anonymous list of constants
  • you can always cast to an EnumMap at run time for the other behavior
  • simplifying conditional semantics
  • STD parser now parses a WHENCE closure as part of the typename, rather than relying on subscript parse
  • block escape within a closure within a string used to parse as a normal block by responding to comments outside of the block
  • already fixed the embedded block in the regex syntax
  • made that usable by strings and regexes now
  • blocks in regular code try to figure out if they're at the end of a statement
  • look for the trailing curly
  • inside a string or regex, there are no statements
  • it makes no sense to look for the end of the statement there
  • the obsolescence messages were still in the old framework that upsets some Perl 5 people
  • changed the wording to "Unsupported use of ..."
  • #perl6 found a precedence inconsistency in parsing of list prefixes vs list infixes in NG
  • turned out to be wrong in STD first, and NG copied it
  • I fixed it in STD, Patrick fixed it in NG
  • otherwise last week was rather too ADD-ish, so mostly did Q&A on IRC


  • fixed some bugs
  • made some optimizations
  • think I've fixed most constant PMCs in PBC now, which should help NQP and Rakudo


  • it'll take a while before Jonathan and I can take advantage of that
  • Allison, when you push_eh an ExceptionHandler onto an array in a context, it creates an RPA
  • does that hold other things besides an EH?


  • potentially
  • events get stored in the scheduler
  • only EHs are scoped to a context
  • the old pushmark/popmark stuff to do actions used that same global array
  • it may have changed to use the same array
  • that's deprecated though
  • they won't use that array for long


  • I need something to replace pushaction and popaction before they go away
  • when we handle LEAVE semantics, we want to avoid generating an exception to leave that scope for caching
  • I don't want to generate and rethrow actions to go up the stack
  • those ops let me do that without generating exceptions


  • we do need singleton exception objects for FAIL and RETURN
  • no extra information needed
  • right now, you can insert anything you want in that array
  • the local_branch and local_return uses that array


  • it shouldn't
  • bsr and ret may have
  • I provide my own there


  • oh right
  • I might not have checked in that code


  • by the way, NQP doesn't use local_branch or local_return
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.