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:
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:
c:
- it's a couple of kilobytes larger than the bytecode... about 3k, so far
- it's a small program
Damian:
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:
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:
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:
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:
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.