Perl 6 Design Minutes for 12 November 2008

chromatic on 2008-11-14T07:10:32

The Perl 6 design team met by phone on 12 November 2008. Larry, Allison, Patrick, Jerry, Will, Nicholas, Jesse, and chromatic attended.

Allison:

  • we have two sponsors now, BBC and ActiveState
  • starting conversations with a few others
  • it helps to have two already
  • mainly focused on the IO milestone milestone
  • will merge back in two stages
  • stage one is getting the new IO system working
  • you can use it as an object
  • adds just one test file
  • I can have all of the different architectures report any failures with that test file
  • will merge in the bigger change later
  • though it's a simpler change
  • replace calls to the existing system with calls to the new system
  • hope it'll be a smooth transition
  • fixed up some calling conventions stuff last night for Andrew Whitworth
  • some pieces weren't working for him
  • committed a small patch to fix them, and explained it

Jerry:

  • the first Parrot Developer Summit is this weekend
  • for people who don't know about it, it's too late to attend
  • there may be a dozen or so of us meeting
  • intent is to hammer out a roadmap for 1.0
  • lots of questions on the channel and mailing lists about when there will be Parrot 1.0
  • good, I suppose

Patrick:

  • Christmas Eve!

Jerry:

  • they've given up asking about Perl 6

Jesse:

  • good!

Jerry:

  • I don't have an answer yet
  • but our work this weekend will let us decide what we need to release 1.0
  • also had a grant approved
  • designing and implementing Perl 6 command line syntax
  • already started the work
  • researching other dynamic languages and compilers
  • most languages have just grown their syntax over time
  • it's kind of messy
  • have put together some ideas
  • discussed them with Larry
  • expect that to continue, until I have a design document that I can send for review
  • then I'll move on to implementation
  • all laid out in the grant proposal on TPF's site

Jesse:

  • expect me to harass you occasionally

Patrick:

  • things are going well
  • lots of additions to Rakudo this week
  • I fixed the string semantics
  • classes can override how objects report stringification
  • Jonathan, Jerry, and I fixed Rakudo's container semantics
  • it does references correctly
  • fixed a lot of bugs and closed a lot of tickets
  • Jonathan started and I finished getting pointy blocks to work on flow control statements other than for
  • waiting for answers on repeat while and repeat until

Larry:

  • me too

Patrick:

  • when one of us gets the answer, he should let the other one know
  • completely refactored Rakudo's junctions
  • worked on the assignment metaoperators, such as += and *=
  • work correctly on protoobjects
  • I'm refactoring those now
  • will cause regression in one test that doesn't work right anyway
  • Rakudo is now over the 4500 passing test mark
  • we should get quite a few more over the next week or so
  • Jonathan and I will continue closing things out
  • worked more on the design of lexicals
  • continuing to update the document on my website
  • need to figure out autoclose in my head
  • Jonathan and I will hack on that this weekend
  • I could use his expertise in Parrot internals
  • also had a grant approved

Larry:

  • went to the hackers conference this last weekend
  • high point was teaching Don Knuth how to decode his Korean email

Jesse:

  • I thought he had no email!

Larry:

  • refactored the compile-time variables
  • there are no version-specific ones remaining
  • now $?OS, $?DISTRO, and $?VM variable
  • generalized matching against pairs to call a method corresponding to the name on whatever the object is, matching against whatever the argument is
  • sort of inside out as to what named arguments in BUILD routines do
  • refactored the :pair-named methods
  • they were kind of grungy anyway
  • thinking about whether strings ought to have methods like .r and .w and .x
  • or whether you ought to coerce to some sort of File type

Patrick:

  • I lean toward coercion

Larry:

  • everyone does
  • I just want to think it through
  • decided that .perl isn't special to junctions
  • if you use it on one, it autothreads
  • if you stringify that junction, it produces a result as if you'd done .perl on the whole junction
  • stringification on a junction produces Perl-style syntax
  • if you smart match a hash against a pair pattern, it tests the key and the value for matching
  • factoring out various amounts of boilerplate from the Perl 5 emitted code
  • simplifying code
  • fixed bugs with node wrapping
  • confused people looking at ASTs
  • chopped out TRE
  • discovered that my stupid LTM emulation ran twice as fast as the TRE code
  • that was eye-opening
  • STD now recognizes ::T as defining a valid type for later in the same scope
  • did some work to set up the infrastructure for STD to handle lexical scopes
  • nested pads
  • should have declarations in the right scope
  • part of the motivation
  • besides better error handling
  • set up a mechanism to define a prelude
  • freeze the lexical environment for the prelude
  • then slurp that up into STD
  • mundane functions and operators will probably end up there
  • have most of an implementation of a trie engine
  • that'll replace my stupid LTM
  • should evolve eventually into a full DFA
  • almost works
  • should run faster
  • and cut down on the on-disk cache
  • for various definitions of "should"

c:

  • mostly fixing bugs
  • trying to keep blockers from blocking people
  • adding a little polish here and there to make people work better
  • thinking about our release process post 1.0
  • will talk about that this weekend

Will:

  • spending most of my time deleting things from Parrot
  • ripping out deprecated features
  • everything that's in there, some goes back to 0.5
  • but everything in there now we can rip out before the next release
  • sad that I'll miss the summit this week

Nicholas:

  • I'm the new grant manager for Dave Mitchell doing 5.10.1
  • announced the end-of-life for 5.8.x
  • surprised that no one told me I couldn't say that
  • if the Parrot Foundation is capable of raising money from people, how come TPF isn't?

Allison:

  • I tried to do something similar for TPF four years ago
  • it was very uncomfortable for the Perl community
  • lots of pushback
  • they wanted guarantees that no company would have control over the development of Perl

c:

  • no one has control over the development of Perl!

Allison:

  • also the amount of money required for Perl 5 is much larger
  • it's not about money for Parrot
  • four memberships for Parrot is enough to push toward 1.0
  • we're a small project

Jerry:

  • have Perl 5 releases been sponsored before?
  • seems like a good thing

Jesse:

  • last week in China for the Beijing Perl Workshop
  • it was a lovely workshop
  • chatted with a lot of people about the state of Perl 6 and how they could get involved
  • offered to make lots of introductions
  • haven't taken anyone up on that yet
  • the Perl problem in China is that they're having a hard time finding competent Perl hackers
  • people are afraid to learn Perl because that'll make them unpalatable to the workforce
  • universities only teach C
  • people study on their own to learn C# and Java
  • most of the hiring firms really want C# and Java from their developers

Patrick:

  • in Rakudo, over the past week, I'm seeing lots of segfaults in different places
  • suspect it might be something that Jonathan and I did
  • have no clue where to start looking
  • it shows up in the regression suites
  • can point you to specific instances of things that fail

Will:

  • I can help narrow it down to PIR if you have a specific test that fails

Patrick:

  • they really float around
  • showed up in the assignment tests this morning
  • a couple of revisions later, they don't show up later
  • only some of them does -G help
  • the weird one this morning
  • if I run it from Parrot with the command line, I get a segfault
  • from the test harness, I don't
  • that seems backwards

Allison:

  • the test harness has more strict flags turned on

Patrick:

  • at one time, it used a different runcore

c:

  • if there's a short PIR test case, we may be able to do a binary search

Patrick:

  • it's hard to give a short PIR case
  • the segfault moves around so much