Perl 6 Design Meeting Notes for 03 January 2007

brian_d_foy on 2007-01-06T14:53:00

The Perl 6 Design team met via phone on 03 January 2007. Larry, Allison, Jesse, Nicholas, and chromatic attended. These are the notes.

Allison:

  • Punie is very happy
  • it runs again, now on Patrick's modules
  • that gives me free rein to add new features
  • I'll try for loops next, just to be contrary

Jesse:

  • does the Parrot Perl 6 have for loops yet?

c:

  • I don't believe so

Jesse:

  • if Punie can implement all of Perl 6's features, one step ahead of Patrick...

Allison:

  • it doesn't need them
  • no method calls, for example
  • I do want to do some refactoring of HLLCompiler, based on ideas chromatic and Patrick and I talked about
  • also launched the IO PDD last night
  • it's done enough to start implementing now
  • I suspect we'll have questions during the implementation though

Larry:

  • does it say much about general event processing?

Allison:

  • I spent my holiday reading and writing and hacking
  • we have a lot of conflicting concurrency models
  • the only way to manage them without conflicts is to run them through a central scheduler
  • each model registers a task with a central scheduler
  • it's in the PDD

Larry:

  • it solves everything with another level of indirection

Allison:

  • I took the idea from Apple's OS level of concurrency

c:

  • sadly, Windows does that too

Allison:

  • it's in several places
  • we'll use several different concurrency strategies

Larry:

  • someone asked me if Perl 6 would support alarm()
  • I assured him he'd get some notification somehow

Allison:

  • events need to coordinate with the concurrency scheduler
  • I don't know if they run through it
  • I don't know if the scheduler sends events to notify things

c:

  • nods vociferously

Allison:

  • also, we have our trademark registered
  • we're official
  • the next step is doing EU and Canadian trademark

Nicholas:

  • is it possible to register with the EU patent office?
  • do you have to register trademarks centrally or in each country?

Allison:

  • we can do it centrally now

c:

  • mostly serving as a foil to Allison
  • did some work but I want a release soon
  • I need a deprecation cycle

Jesse:

  • most of my work is kicking and screaming
  • talked to Chip a couple of months ago about expanding the pumpkining to a cabal
  • I had a similar discussion with Jerry Gay
  • yesterday, the #parrotsketch masses agreed to create a benevolent
  • people's dictatorship to toss around the release engineering baton
  • we'll do monthly releases on a rotating release manager schedule
  • we'll have bug days before releases
  • hopefully no longer a single individual will be a gateway for the release

Allison:

  • and if one person falls through the cracks, we have other people who can do it

Jesse:

  • Andreas is working to get PAUSE permissions for everyone

Larry:

  • the usual working and hanging out and holidays
  • doing a lot of spec work
  • added a grammatical category for the do statement kinds of statement-introducing operators
  • worked over the call wrapped functions, call next method interface
  • no longer a goto routine
  • capture syntax is now clearer
  • Luke pointed out a signature ambiguity
  • if you want to map something to a capture and a signature, you have to use the capture subsignature syntax
  • it's sort of a variant of capturing trees
  • I noticed that range objects were meaningless when used with scalar operators
  • made them do smarter things
  • adding to or multiplying a range does interval arithmetic
  • tried to nail down how fancy metatokens can get
  • how far you can stack metaoperators
  • may revisit that again
  • the rules are still too complicated
  • did a lot of work on the smart-matching table
  • someone pointed out that it didn't allow you to match a string against a regular expression
  • seems suboptimal

Jesse:

  • does 5.9.x need an update?

Larry:

  • 5.9.x does the right thing
  • whoever it was there noticed it, thank you
  • I made a lot of simplifications
  • all of the Any rules are now at the bottom of the list
  • must easier to jibe with multi-dispatch semantics
  • specific cases are at the top
  • general cases are better
  • will prevent a certain amount of impedence mis-match between compile-time semantic determination
  • the old property/trait is from is insufficiently general
  • now there's a string implementation object that builds a string lazily
  • allows us to search over arrays as if they were strings more easily
  • other clarifications and housekeeping
  • moved a bunch of type information from S06 to S02

Jesse:

  • that's a fair bit of stuff!

Nicholas:

  • when you apply the scalar operators to a range, and that range is lazy, does it perform a lazy iteration?

Larry:

  • it produces a new range object

Nicholas:

  • in the smart match table, some things at the top are compile-time only
  • the rest of them, are they in the identical order of multi-dispatch?

Larry:

  • many are flippable and reversible

Nicholas:

  • left or right transpose?

Larry:

  • yes
  • by and large, they're what MMD would pick
  • except that MMD will probably fail on some ambiguities that the ordered table will not
  • if you flip some and have any on the left and any on the right, you can get some ambiguous dispatches that are hopefully distinct under MMD
  • I thought about that
  • you might have the option of dropping into multi-dispatch there
  • we do want to recognize Any versus a regex at compile-time and optimize on it

Nicholas:

  • not feeling smart enough to figure out how the same types would go with MMD

Larry:

  • I thought about saying that as soon as you hit the Anys, you do essentially a stubbed multi-dispatch at that point
  • "if I did this, what would you end up with?"
  • that's with compile-time visibility only

Nicholas:

  • there was a test time question on #parrot yesterday
  • I can get tests to run in parallel on a multi-core Sun box
  • I haven't handed that code to Andy yet
  • it's in no fit state to hand to Andy
  • I've not talked to Andy about what's the best way to turn the prototype into something nice

c:

  • Parrot doesn't use much of Test::Harness

Nicholas:

  • the display logic needs some caching in the Test::Harness object
  • there's also the part which launches tests
  • piped output
  • it can now spawn multiple programs but only prints at the end

c:

  • mostly we just send a list of files to runtests() and let that handle it

Nicholas:

  • so this is useful to Parrot then?

c:

  • I believe so
  • buy Andy sushi

Nicholas:

  • how many deprecated features are there in Parrot?

Allison:

  • 10 or 15 in DEPRECATED.pod
  • anything not listed isn't deprecated yet


Nodding?

Ovid on 2007-01-06T09:49:23

So just how does nods vociferously translate in a phone conversation?

Re:Nodding?

chromatic on 2007-01-06T19:43:08

I nodded vociferously. Allison was in the same room and said "chromatic just nodded vociferously." I applied editorial judgment to make the action more apparent.

Perl Trade Mark

nige on 2007-01-07T07:05:39

Great to hear Perl is being properly trade marked! :-)

But how about OReilly's "Camel"?

Isn't it long overdue that The Perl Foundation clears up the confusion here?

If the "Onion" is going to be Perl's master mark -- let's see it everywhere.

At the time of writing I see four camels on the use.perl.org home page and not a single Onion :-(

It's one thing to register a trade mark --- but the TPF needs a clear strategy for creating, promoting and nurturing a distinctive brand??

What's the plan here?

Let's follow the open source examples of apache, joomla, firefox etc. and use the Perl brand for promoting Perl - not just selling books.

We might actually sell more!?

Great to hear the TPF is starting to put Perl's branding in order. Keep up the good work!