Perl 6 Design Minutes for 06 June 2007

brian_d_foy on 2007-06-07T05:36:00

The Perl 6 design team met on 06 June 2007. Larry, Allison, Nicholas, Jesse, and chromatic attended. These are the minutes.

Allison:

  • spent the week implementing pieces of the new object system
  • it was a lot of fun
  • I made a lot of progress
  • we're passing over half of the old object test suite, using the new objects
  • the biggest mismatch is a piece that I want to remove anyway
  • trying to store classes and instantiate objects by type number
  • that system just can't handle the things that we're doing now
  • it works well if you have no namespaces or hierarchical class names or dynamic effects
  • I'm making the new system work with it for now
  • but we'll remove it later

Nicholas:

  • I always wondered if it would work
  • what did numbers give you?
  • you can't serialize them; they get renumbered when you load classes in a different order

Allison:

  • in theory it's an optimization
  • passing around an integer is in theory more efficient than passing around a string or a class object
  • but you end up retrieving the class object anyway

Nicholas:

  • that's effectively a pointer lookup anyway

Larry:

  • you end up boxing repeatedly

Allison:

  • it just really doesn't make sense
  • oh, and today the OSI board is voting on the AL 2.0
  • we will likely get approval
  • if it gets approved, I'll switch the license for the next release of Parrot

Jesse:

  • what are the chances they'll give a conditional approval with some changes?

Allison:

  • low
  • no issues came up

Jesse:

  • what are you doing in the next week?

Allison:

  • traveling
  • probably working on the PMC PDD and then the object stuff
  • I want to get as much of the object stuff as possible for the next release
  • I'm doing the release in two weeks

Larry:

  • the talk is going about as well as it ever does
  • working a lot
  • cleaning up various things in the Synopses
  • decided it was stupid not to distinguish symbolic from hard references in indirect method calls
  • you always use quotes if you're doing a symbolic method name
  • you can interpolate a variable there
  • the non-quote form of indirection $.method_name is always exclusively a hard reference
  • that opens up using a list variable of some sort
  • we now have a very easy way to specify a list of candidates to visit
  • we can get rid of the WALK pseudo-class
  • we just need a method that returns a list of candidates, perhaps lazily
  • then we can dispatch to that list of candidates
  • talking about why we will or will not rename various fundamental structures
  • I've thought @: was ugly for a while
  • syntactically now you can use any sigil as a list operator
  • they require trailing whitespace, so we didn't need the colon
  • trying to come up with a decent word for all of the contexts that sigils supply
  • the @@ context is now "slice"
  • a list of lists you use in a multi-dimensional subscript
  • I was inconsistent in my terminology
  • the whole thing is now a slice, not just each individual dimension

c:

  • is the other a "sliver" now?

Larry:

  • there was a bunch of speculation about the xx operator
  • you can repeat an indefinite number of times with lazy lists
  • there was a proposal to do the same thing with strings
  • in the end, I decided that you can emulate it with a Cat object
  • that's an infinite list

Nicholas:

  • Perl 6 effectively supports infinite strings?

Larry:

  • it's an object that emulates a string
  • it does the Str role
  • I don't want to make all strings capable of that
  • it would have a bad effect on performance, I think

Nicholas:

  • sometimes it's useful to ask for the length of a string

Larry:

  • basically, strings are scalar and should not be lazy

c:

  • fixed a few bugs in Parrot
  • applied a lot of patches
  • fixed a couple of memory leaks
  • have a couple more to fix
  • they're not big, but they do help PGE
  • then I really will work on the getting started guides

Jesse:

  • I've been going back and forth with Flavio about his KP6 project
  • trying to get a sane roadmap
  • he has a set of projects, milestones, and tasks
  • those tasks are delegatable to Perl 5 and Perl 6 coders
  • it's focused on Perl 6 on Perl 6, not Perl 6 on Pugs and Perl 6 on Parrot
  • those are bonus projects

Allison:

  • we've handed out about $6000 in the Parrot grants lately
  • it's $2000 for finishing a milestone