Perl 6 Design Minutes for 16 January 2008

chromatic on 2008-01-22T23:56:33

The Perl 6 design team met by phone on 16 January 2008. Larry, Patrick, Jerry, Jesse, Nicholas, and chromatic attended.

c:

  • fixed a couple of nasty bugs in Parrot
  • have two more to look at, but I'm working on those
  • did some more work on the PMC PDD; not sure how much is left
  • a couple of big tasks, I think
  • we'll see what's going on there
  • Allison dishes out a task at a time to me and that works out pretty well
  • worked with Andy to fix up some const goodness through Parrot
  • should help memory use on servers and in fakecutables

Patrick:

  • we're on our way home from the hospital now, fortunately
  • have just changed the name of the compiler to Rakudo
  • happy about that

c:

  • what's your sense of handing off things to other people?

Patrick:

  • haven't thought much about that
  • much easier to plan the schedule as we're going home now
  • it would help with others (Jerry) came up with priorities
  • things to do or look at next
  • I can set the priorities on those
  • most of those someone else can do
  • comfortable with what Jerry's checking in and coordinating
  • if there's anything blocking on me, I'll see what I can do

Jerry:

  • works for me

Patrick:

  • I'm online frequently and can answer emails to get important things out of the way
  • I follow what's checked in and jump in when necessary
  • we can fix things later if there's something I don't like but don't have time to talk about

Jesse:

  • has Flavio been around?

Jerry:

  • I haven't seen him

Larry:

  • things are going well here
  • added a couple of variant flags for substitutions
  • attempt to maintain case or accents across substitutions
  • put a lot of thought and some spec work into the implications of taking the default view to be graphemes
  • it's a similar problem to the rest of Unicode
  • you're always running into variable-length encodings
  • graphemes are, at the very heart of them, variable-length if they don't have a precomposed codepoint
  • figured I needed to tackle them head-on
  • within a Perl 6 process, every grapheme that it has seen gets a unique ID
  • either the precomposed codepoint, if it has one
  • or a uniquely-assigned ID through the life of the process
  • we can do things on the grapheme level and not worry about the variable-length encodings
  • just worry about the maximum int size required
  • simplifies the functions chr and ord
  • looks like a real win to me
  • unless someone tries to feed all of the possible graphemes to a single process
  • could be a denial-of-service I suppose
  • some discussion about the nature of feed operators and whether they're operators
  • not much resolution
  • after much discussion, I wrote a preprocessor to handle tests on a platform-specific basis
  • called fudge, probably short for "FUD Generator"
  • interprets smart comments and fudges the tests to pass or todo or skip in a clean way
  • added benefit that it's a notation that should simply disappear as a platform can pass the tests
  • you only need to fudge the test if your platform is not yet up to stuff in some way
  • part of the definition of passing the test is the ability to pass the test without doing any fudging
  • just trying to stitch the preprocessor into the test harness
  • or the F for the test process
  • probably just a filter that fudges the files and passes the fudged files into the harness
  • answering questions for people working on the other backends for kp6
  • some activity on both the smop backend (C-based CPS VM) and a possible Ruby backend
  • also gently pushing Patrick to pick a name, and I'm happy with the result

Jerry:

  • talked with Larry on fudge
  • nice piece of syntactic sugar
  • it'll work great as a filter

Larry:

  • either Test::Harness has to do that
  • or a source filter within the F in the script
  • no spec for source filtering within Perl 6 now, if ever

Jerry:

  • coordinating the infrastructure for Rakudo
  • includes and IRC channel and some such
  • gives us a place to talk about that implementation in specific
  • rather than hammering #parrot with specific questions

Jesse:

  • #perl6 expressed an interest in discussing it there
  • doesn't seem like a good reason to segregate things further

Jerry:

  • hm, we can do that
  • we just need a wiki and a website
  • Andy's working that out with Patrick
  • added a bunch of command-line options and wrote about them in my journal
  • added support for compiler directives
  • should be able to remove once fudge is working with Rakudo
  • added TODO support to the Rakudo test module
  • we have one or more contributors helping to refactor the Perl 6 test suite
  • based on that work, I've been able to take a crack at some of the ops and methods that those files test
  • extending Perl 6
  • it's been helpful and I hope it continues
  • lack of direct access to Patrick has slowed me a little, but there's enough to do that it's not bad

Nicholas:

  • released a snapshot for 5.8.9 to be
  • hope to get that out before 5.10.1
  • I like the new name

Jesse:

  • had a nice chat with Patrick about his work and kp6 and such
  • talked to Patrick and Flavio about a weekly Perl 6 implementors sketch
  • they're both interested
  • we'll work out a set of likely times from the implementors and go from there

Nicholas:

  • Larry's idea for grapheme IDs sounds like immediately transcoding to UCS-2
  • or am I making that up?

Larry:

  • you can't transcode a grapheme to a fixed-width encoding
  • they can have an arbitrary number of trailing combining characters
  • the idea is to get a fixed-width encoding
  • you already use the one in Unicode, if it exists
  • the ID of a capital A in Unicode is 65
  • you just give temporary precomposed forms to those that don't have them

Nicholas:

  • you design a barrier around input/output
  • across that barrier, you transcode to Unicode

Larry:

  • you cannot have an output of graphemes
  • you need some encoding and known normalization
  • as soon as you transit from grapheme to codepoint, you need to know the mapping
  • same with encoding

Nicholas:

  • there seems to be an internal translation
  • Unicode could generate sequences of combining characters

Larry:

  • anything that can concatenate codepoints has to look for that

c:

  • Simon Cozens is looking into this for Parrot
  • he and Larry should discuss this, because he knows more about this than us
  • by "us" I mean "me"

Nicholas:

  • someone proposed named parameter syntax for Perl 5.12
  • seems sensible to adopt as much of Perl 6 syntax as possible
  • Larry, have you looked at that thread yet?

Larry:

  • such threads tend to raise my blood pressure
  • if people are interested in knowing what Perl 6 does, they can go look
  • I don't have enough bandwidth to keep Perl 5 on track and do my best work on Perl 6
  • when I do participate, I'm often ignored
  • see the grep/map in void context thread
  • propogate the context into the block, and let I complain
  • you don't get any false positives that way, and no false negatives

Jesse:

  • I wonder if we could con Damian into p5p for that discussion

Larry:

  • I doubt it