Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

chromatic (983)

chromatic
  (email not shown publicly)
http://wgz.org/chromatic/

Blog Information [technorati.com] Profile for chr0matic [technorati.com]

Journal of chromatic (983)

Monday February 26, 2007
07:21 PM

Perl 6 Design Meeting Notes for 21 February 2007

[ #32514 ]

The Perl 6 design team met by phone on 21 February 2007. Larry, Damian, Allison, Patrick, Jesse, and chromatic attended. These are the minutes.

Larry:

  • cooking right along
  • mostly hacking more on the grammar
  • it's largely done
  • doing some cleanup on metaoperator precedence
  • some have to inherit precedence from their internal operators
  • others force precedence
  • the only remaining thing is working out how various quote sublanguages build themselves and parse their text
  • building it such that the mechanism is derivable in other grammars
  • sort of a two-dimensional derivability problem
  • kinda tricky
  • figuring out exactly how grammar modifications fit into the user space when they say "I want to use such and such a language"
  • replace the current language?
  • overlay the new language?
  • replace the rest of this scope?
  • compilation unit?
  • what is a scope in a different language anyway?
  • lots of interesting wrinkles
  • had a Perl Monks chat about timely destruction and decent destruction control flow
  • also tweaking various Synopses
  • simplified the zip and cross operators
  • now just a Z and an X infix
  • the old x which was a string operator is now a metaoperator
  • the two main list infix operators are Z and X
  • the yen operator goes away
  • don't remember if I did the MMD rethink before or after next week
  • looked at last autumn's voting MMD algorithm
  • it's a bit too complicated
  • I recast the whole thing in terms of a topologically sorted list
  • sorted in partial ordering of betterness
  • demoted the single semicolon to a conjectural syntax
  • reserved for if we decide we need it
  • also changed the meaning to insert this method at multiple places in the list
  • it's easier for me to understand what's going on there
  • we'll explain to users that it'll look for the best match
  • if you don't give sufficient hints and it's ambiguous, it'll fail

Damian:

  • in my experience, they're like sausages
  • people don't want to know how they work as long as they taste right in the end
  • it is nice to have static analysis to see what gets covered

Larry:

  • we can warn about certain kinds of ambiguity at check time
  • assuming that no one adds more variants at runtime

Damian:

  • I provided a feature to grab all of the definitions and possible combinations and warn about the ambiguous cases
  • it's incredibly handy to run when you start getting ambiguities

Larry:

  • also simplified the grammar
  • had some special syntax for abstracting symbols
  • turned those into regular named captures

Damian:

  • spent most of my time working on the Perl 6 POD parser
  • have about 2500 tests
  • they've found a few things that needed rethinks and redesigns
  • have one more of those to go
  • then I think it's releasable
  • one of the rules in S26 said that a formatting code (B<> or C<>) terminates at the end of the matching angle bracket or the end of the surrounding block construct
  • that means that you couldn't comment out sections within a formatting code without changing the meaning
  • that meant I had to rethink the parser to make it work
  • also sped up the parser a bit
  • with any luck, it'll be out in a couple of days

Patrick:

  • what's the complexity of parsing the POD?
  • is it tough, or will our tools handle it well?
  • plenty of people on #parrot have talked about writing a parser with our tools for it

Damian:

  • that'd be wonderful
  • my parser uses Perl 5
  • the design is such that line-by-line parsing is pretty easy
  • the m//g flag suffices to loop around
  • I've effectively gone down a level on doing a parser's state machine
  • the only complexity that I foresee is the allow feature
  • that changes how something subsequently parses
  • if I say allow on a block, it changes how that block and inner blocks may parse

Larry:

  • similar to how quote constructs modify things

Damian:

  • I'm struggling with finding a clean and efficient way of allowing that
  • changes how code block, code formatting, and verbatim rules parse
  • could lexically change what those rules did
  • might be easier just to hardcode all of the formatting codes available with on-off switches that the parser allows down
  • could be a very good use of Larry's contextual variables
  • that's the only complexity that I see in making it work correctly
  • the structure of a general block is introducer, name of the block, options, content, terminator
  • you do have to extract information from the options before you get to the content
  • that can change the structure of what comes back
  • that's not difficult to do
  • you can do code within a regular expression
  • that allowness changes how the parser works
  • but I don't see it as being difficult to change to a grammatical parser

Patrick:

  • that helps me know what to advise people
  • lots of us are eagerly looking forward to a release

Damian:

  • not sure how useful it will be as a template
  • it uses a very different parsing strategy
  • I did that to parse large documents (that is, S26) without taking a big performance hit
  • P::RD and its potentially exponential explosion of cost didn't seem right
  • my current version is linear

Larry:

  • can other parsers target the test suite?

Damian:

  • not really
  • "Here's the input and here's the data structure to create"
  • the data structure is YAML
  • I don't care about its structure, just that it has certain features
  • maybe it's reasonably transferrable
  • depending on the data structures pulled out, they may have to massage it a bit
  • it's pretty close to data-structure agnostic
  • I'm happy to make sure that it is, if necessary

Patrick:

  • working on the Parrot release off and on today
  • lots of little last-minute things
  • release may happen this evening at the latest
  • seems to be going well
  • have some non-P6 things to work on until this weekend
  • my target for next week is getting for loops and END blocks

Jesse:

  • do you have a bunch of unpushed changes?

Patrick:

  • public Subversion is the current state of my code
  • I have some non-public throwaways

Jesse:

  • Jerry has mentioned at least that he'd like to see your throwaways

Patrick:

  • we could make a throwaways directory
  • or branches

Jesse:

  • it might help people

c:

  • I'd like to see that too

Patrick:

  • I can do that
  • once I get those bits in, sanity passes
  • then it's wide open
  • I can import tests from Pugs, the ones I think are fixable
  • then point people to fix them

Allison:

  • will you have a small set of things by the Amsterdam Hackathon?

Patrick:

  • the first week of March?
  • can't promise that
  • but I can try to have some handoff things
  • that is one of my targets
  • I'll be close by then

Allison:

  • technically I was on vacation last week
  • the biggest thing was a bug-squashing session this weekend
  • did a large bit of work before everyone else was there
  • I was ten hours off
  • closed quite a few tickets
  • also worked on the IO PDD
  • plan to review tewk's SMOP port to PMC C code
  • haven't seen it yet
  • it's a good start
  • that's it for me

c:

  • squashed a lot of bugs
  • fixed Pheme, but ran into a weird question about variadic subs and multis
  • I'll show a code example
  • might be a good Perl 6 question, but maybe just a Parrot question
  • also made good progress wrapping SVs in PMCs for Ppwnie
  • ran into a different multi-sub bug with embedded progress
  • nice that the blocker there was Parrot, not Ppwnie though

Jesse:

  • talking to people at TPF about grant stuff
  • approached Bill about a microgrant plan six months ago
  • some money donated to Perl 6 a couple of years ago is still there
  • convinced Bill of doing five to ten $500 - 1000 grants for small projects
  • some Parrot, some Pugs
  • he'll start to push on this
  • hopefully we'll see this happen in the near future
  • separate from the regular grant process

Patrick:

  • there are several Perl 6 things that might apply in the near future
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.