Perl 6 Design Team Minutes for 07 February 2007

davorg on 2007-02-16T09:24:00

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

Larry:

  • working on one thing
  • a standard grammar for Perl 6, written in Perl 6
  • not in a subset of Perl 6
  • but what I want the eventual grammar to look like
  • the real thing
  • give people who are trying to bootstrap a target to aim for
  • I have almost 1500 lines
  • it's a good majority of the syntax we have already
  • still a few things that I need to whack into it and think through
  • efficient dispatch of created-on-the-fly sublanguage parsers
  • every different quote modifier basically creates a different language
  • we don't want that leaking up into the higher layers such that switching to a different quote type means that you have to recalculate the entire grammar
  • that would be slow!

c:

  • did you benchmark that?

Larry:

  • it doesn't even parse yet
  • hopefully we can get it there in the next week or two
  • then we can think about running it
  • have not thought about leaving anything out for the sake of the bootstrap version
  • intended to be full Perl 6

Allison:

  • it has features that don't exist in an implementation?

Larry:

  • a couple of things
  • none of the rule engines do longest token multi-dispatch to rules
  • I am attempting to order the rules such that ordered dispatch will probably parse
  • it's a subset of programs that will parse correctly
  • we can get a long way with that
  • that little sop helps to bootstrap
  • it's also pure to the extent possible
  • no action statements
  • null actions on matches
  • there's a comment on each to mark that stub
  • it's useful to verify that something parses as Perl 6
  • or you can pre-parse it and insert actions into it
  • hope that will allow all of the different engine parsers to work from the same syntax
  • it's a lot of fun
  • also a lot of hard thinking
  • trying to get heredocs the way they ought to be is an interesting challenge
  • one-pass parsing with whitespace dwimmery is tricky
  • also did a little work on the syntax highlighting for Vim for Perl 6

Damian:

  • excellent work!
  • it's a huge project in itself
  • I'm re-evaluating the last few diffs to the Synopses
  • so that's where they've come from!

Larry:

  • most of my changes in the last month or so have been toward that end

Damian:

  • back from our first major holiday in the past four years
  • dealing with some work in Australia
  • plan to re-read the entire Synopses in prose form then
  • expect some feedback on them at some point
  • otherwise gearing up for the year ahead
  • sending out feelers for work contracts
  • confirmed to go to YAPC::Europe and YAPC::NA
  • need to gather some work around those events

c:

  • did some work on a PBC to C mechanism for Parrot
  • you can take perl6.pbc and make it into an executable that depends on libparrot

Damian:

  • what's the size?

c:

  • it's a couple of kilobytes larger than the bytecode... about 3k, so far
  • it's a small program

Damian:

  • how big is perl6.pbc?

c:

  • it's a bit over 300kb, not bad
  • that's not the whole thing, but it's pretty good and it could get smaller

Allison:

  • how big is libparrot.so?

c:

  • with debugging symbols and no optimizations, 1.2 megabytes
  • the whole thing could be perhaps 2 megabytes right now, easily
  • I can imagine better optimizations too

Nicholas:

  • can you compress it?

c:

  • the bytecode? it should compress pretty well
  • it's a static array right now, so it's in the data segment and should be shareable

Nicholas:

  • I know a bit about zlib

c:

  • I can send you the code
  • will try rewriting it in Parrot
  • I'm crazy that way

Nicholas:

  • tracked down the last -DMAD failure in blead
  • asked Larry about it
  • sort of stuck on that
  • trying to get 5.8.9 shipped
  • be nice to get that fixed; we should be able to smoke it and identify any regressions
  • because MAD keeps all the whitespace, it crams whitespace and comment lines together
  • if you do #line 1 and then # perl -options, it triggers the options
  • but MAD doesn't
  • there are a couple of regressions related to that
  • wonder if I can fix that

Larry:

  • I need to dig into it and see
  • that sounds like a good theory
  • it tries to attach the whitespace to the end of the line of the previous thing, then attach subsequent whitespace to the following thing
  • maybe it doesn't always do that
  • line-ending comments attach to the previous thing
  • block comments attach to the next thing

Nicholas:

  • maybe I should dump the XML from the program

Larry:

  • did you send a test case?

Nicholas:

  • yes, a four liner

Allison:

  • ran into Sam Vilain at Kiwi FOO
  • spent a couple of days hacking in Auckland after that
  • hacked up two prototype metamodels
  • the first was horribly convoluted
  • we started over and that one turned out simple and easy
  • quite happy with that
  • almost have the Objects PDD first draft ready to check in
  • worked on it for several weeks
  • that was the last bit I needed to make it usable
  • also have submitted Artistic 2.0 to OSI for approval
  • they wanted some formal documentation for that
  • the process seems to be fairly simple
  • just takes a little time

Nicholas:

  • any feedback on the trademark of Perl?

Allison:

  • it's finished!
  • we're the official proud registers of a Perl trademark on the onion logo
  • we're registering in Europe, Japan, and Canada now

Nicholas:

  • Damian, is there anything left to do on POD 6?

Damian:

  • finishing the documentation of the parser I wrote in Perl 5
  • it's on my list
  • it should be higher in priority
  • now it will be

Allison:

  • Larry, does your Perl 6 grammar also have a POD parser?

Larry:

  • it does not yet parse the internals of POD
  • it only parses the begin to end into POD blocks

Allison:

  • it treats them as comments?

Larry:

  • it does
  • the matching start and end also means I can ignore the nesting aspects

Damian:

  • does it handle the abbreviated forms?
  • =for and =keyword?

Larry:

  • those guys are standalone
  • it ignores those, I think
  • I'm waiting to see what your POD parser looks like in Perl 5

Damian:

  • mine's deliberately not grammar-based
  • most of the complications deal with unclosed nested constructs without falling over

Nicholas:

  • if you have a Perl 6 program with misnested POD, what does Perl 6 do?
  • will it realize a nesting problem?

Larry:

  • that's subject to the definition of POD
  • right now it handles it fine
  • the grammar looks for the corresponding end identifier
  • it just needs the outer one to match

Damian:

  • mine closes on the outer match and signals a misnesting error

Larry:

  • if you want to thread something through, use similarly named chunks

Damian:

  • I'm trying to extract the entire structure of the POD
  • all Larry needs to do is find the end point

Larry:

  • I do have a comment saying that we can't do the $= trick yet


Perl 6 Grammar?

Ovid on 2007-02-12T10:27:23

Wow. Sounds like things are definitely moving forward nicely. When Larry's finished with the grammar, can that be fed through PGE to get something which can be compiled down to Parrot? Are we getting close? (clearly I don't pay enough attention here)

Re:Perl 6 Grammar?

chromatic on 2007-02-13T06:47:43

The grammar should work with PGE, but it still requires someone to write the appropriate actions to process it. Patrick almost has all of the Perl 6 sanity tests from Pugs working. That's the minimal subset of Perl 6 likely necessary to start bootstrapping in Perl 6 itself.

Perl 6 "calls" podcasted?

persicom on 2007-02-17T06:09:18

Suggestion: place the calls on Skype or some other computer-based telephony solution, record them, post them as downloadable mp3s right here on use Perl. It would be very interesting to me to hear actual voices and conversations, instead of just reading the notes.

Re:Perl 6 "calls" podcasted?

persicom on 2007-02-17T06:13:29

Or maybe posted on PerlCast.

Re:Perl 6 "calls" podcasted?

jesse on 2007-02-18T13:36:10

Unfortunately, not everything on the calls is public information. While we try to report everything we can, there are bits and pieces that we somnetimes need to keep private.

Best,

Jesse P6 Project Manager

Re:Perl 6 "calls" podcasted?

hex on 2007-02-19T14:06:48

Edit out those bits and replace them with a recording of a serious-sounding voice saying "THIS AUDIO REMOVED FOR SECURITY REASONS"? :)

Re:Perl 6 "calls" podcasted?

chromatic on 2007-02-19T20:10:11

Because, as is quite evident by now, everyone working on Perl 6 has copious free time to edit an hour-long recording every week.

Re:Perl 6 "calls" podcasted?

nicholas on 2007-02-20T00:13:46

I don't even think that it would help hugely if a new volunteer stepped forward to do this. With the current arrangement, everyone on the meeting validates the written minutes don't contain naughty words. That's quite quick and easy with them in textural form. For a redacted recording, everyone would need to listen to the entire recording to verify that it doesn't contain naughty words, which is far more time consuming. Worst case, it will take the same duration as the call itself (1 hour) to listen. Plus it's not clear to me if there is an efficient and reliable means to specify editing information (and star merge it) from participants to the central volunteer editor.

Re:Perl 6 "calls" podcasted?

hex on 2007-02-20T00:40:23

I'm sorry, I guess I'll report a bug to pudge that you can't put smileys in inch-high blinking type in comments. Perhaps if he implements it that will aid your humor detector next time.

Re:Perl 6 "calls" podcasted?

chromatic on 2007-02-21T18:34:24

My humor detector went off just fine. Unfortunately, so did my "Uh oh, what if other people take this seriously and complain because it seems SO easy?" detector.