Perl 6 Design Minutes for 04 June 2008

grinder on 2008-06-12T08:09:00

The Perl 6 design team met on 04 June 2008 by phone. Larry, Allison, Patrick, Jerry, Jesse, and chromatic attended.

Jerry:

  • things are going well with GSoC
  • Kevin's on vacation, and due back tomorrow
  • he'll be getting to work then
  • the other students seem to be working according to plan
  • we'll start using the Pugs Trac to track additions to the Perl 6 test suite
  • a place to request new tests

Jesse:

  • is there a really good reason to use two different ticketing systems?

Jerry:

  • it's already there and already has a category for Perl 6 tests

Patrick:

  • already in use for Pugs
  • and the Pugs repo already hosts the tests
  • Rakudo still uses RT

Jerry:

  • and there's nothing Perl 6 spec-related I know of that lives in any other ticketing system
  • applying some good patches from contributors
  • modified the test suite tools to make it easier to work with the spec tests in Rakudo
  • you can specify a local list of tests to run
  • added the ability to run the spec tests purely as they are, or fudged
  • you can use a test config file for that

Larry:

  • fudge already kinda has that built in

Jerry:

  • if there are no directives in the file
  • my addition allows you to ignore implementation-specific directives and run the file directly

Larry:

  • and take the consequences
  • that's fine

Jerry:

  • talked to Patrick about Rakudo management
  • we're considering adding some new committers
  • looking for a better way to handle tickets for patches
  • it's getting difficult for Patrick to apply all incoming patches
  • interrupting his work
  • we want to be able to appoint a person or persons to apply approved patches

c:

  • I'm happy to apply anything once you've approved it and it's ready to apply

Jerry:

  • that's what we're looking for
  • that should make things easier for Patrick

Patrick:

  • mostly Parrot time this week
  • refactored list and array handling in Rakudo
  • list assignment now works!
  • the various composer works
  • bare curly hash composition doesn't work yet
  • that won't be hard to do
  • just need to write some rules to detect when to build a block versus build a hash
  • it'll happen soon
  • Jonathan implemented a Mutable PMC, which implements Perl 6 scalars
  • forwards its operations to what it contains
  • we can assign to it and do type checks in the process
  • some issues in Parrot's type management
  • not always clear when we want to talk about the scalar as a scalar versus what it's containing

Allison:

  • container type versus value type?

Patrick:

  • yes
  • the particularly nasty vtable entry for that is find_method
  • we'll look more into that in the next couple of weeks
  • it's not impeding progress on us anymore
  • lots of cleanup of the AST building routines
  • some duplicated code, some refactoring there
  • more of that coming in the next few days
  • lots of little improvements and changes
  • small cleanups
  • more tests pass
  • starting to keep a daily count of the number of passing tests of the official test suite
  • I'll report improvements on a daily basis
  • as of yesterday afternoon, we had 55 files and 638 passing tests
  • that's an improvement of 344 over the passing week
  • Jerry and Moritz deserve special compliments for the work they've done on the tests and the suite
  • much easier to work with now
  • much easier to find low-hanging fruit
  • optimistic about our progress over the next few weeks
  • Jonathan is doing a lot of work on classes and types and subsets
  • you can declare subset types and have them work
  • a variety of improvements are on the way there too
  • things are coming together a little faster than I expected
  • like Jerry said, one day this week, I spent a few hours applying patches
  • that's a good problem to have
  • would be nice to read over it for sanity then have someone else test to see that it doesn't break things and perhaps apply it
  • not always easy for me to do without colliding with what I'm doing currently

Larry:

  • did a little bit of spec work
  • trying to remain responsive
  • due to a confluence of very many factors, I've been running as hard as I can to stay in one spot

Allison:

  • closing out a few last bugs in the concurrency branch
  • adding a few new features
  • PGE uses bsr and branch heavily
  • they don't play well with continuations
  • added a new feature for continuation-safe branching
  • about to submit the paperwork for the new foundation this week or next

c:

  • fixing bugs, closing tickets
  • mostly adding polish
  • did some work on optimizing string usage; will have more benefits there shortly
  • watching over Andrew and his GC work
  • he's on the right track, hasn't needed much guidance
  • otherwise preparing for YAPC

Jesse:

  • not much to report
  • just work
  • what do you need?

c:

  • maybe encouraging people on #parrot to apply patches and test them locally and report their results would help out

Jesse:

  • maybe doing that as an example would help?

Patrick:

  • we're going to require all patches to go through RT first
  • that gives us a little process

Jesse:

  • how many patches need massaging?

Patrick:

  • some 80% apply and work, but make incorrect assumptions
  • I can apply it and say we'll fix the assumptions later
  • or I can respond and give guidance to resubmit the patch
  • or I can make the minor changes and fix them as I apply it
  • pretty rare to get a 100% patch
  • but I don't want to become the bottleneck

Jesse:

  • what's the time-consuming part of the apply and test cycle?

Patrick:

  • I'm trying to avoid something
  • someone comes out with a patch that solves a test case
  • they submit it somehow
  • you want to give them instant gratification
  • if I'm in the middle of working on a feature myself
  • and many that I work on aren't small
  • I need a separate checkout to apply and test and commit
  • that takes a few minutes, maybe ten
  • then I have to pick up where I was, merging their changes into mine
  • the low-hanging fruit is all in the same files

Jesse:

  • it doesn't sound like tooling is the important thing to fix here

Jerry:

  • it's the process

Patrick:

  • a lot of it will fix itself in a short period of time
  • part of the problem is that I was absent from code review for a couple of months
  • I'm glad we made progress during that point
  • but now it's the time to refactor away some of the assumptions there
  • it may not be as big a deal if I get caught up soon
  • that will happen sooner if I don't have to deal with the other things

c:

  • about 80% of the patches I see for Parrot in general are high quality
  • not a lot adding new features, which may affect that
  • but the quality is good, and I'm pleased