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)

Friday October 17, 2008
12:46 AM

Perl 6 Design Minutes for 15 October 2008

[ #37682 ]

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

Patrick:

  • presented at the Pittsburgh Perl Workshop
  • talked into being the keynote speaker about Perl 6
  • gave a more direct talk on contributing to Rakudo and the test suite
  • I don't think I even presented a single line of PIR at the conference

Allison:

  • I consider that a great success

c:

  • depends on the line of PIR

Patrick:

  • I took the MMD failures out of the regression suite temporarily
  • didn't want to go into the weekend with test failures
  • we're still waiting for a fix there, but there's no particular rush
  • 4409 tests passing now, up slightly from last week
  • up slightly from even yesterday (30 more)
  • worked with Jerry on getting is export to work in Rakudo
  • he's done all the work
  • I just give him guidelines
  • worked with Stephen Weeks to refactor PGE and PCT to use hierarchical names instead of string names
  • we merged that
  • but it broke TGE and Pheme and Tcl and another language
  • PGE expects to use strings to match the match object classes

Allison:

  • I'm pretty sure I know exactly which three lines of code to patch

c:

  • I sent in a patch

Patrick:

  • I'll fix PCT to look in the right place for those
  • if you don't hear that I've done it, I haven't beaten you to it
  • cleaned up a lot of namespace issues in Rakduo
  • fixed some mis-implementations
  • trying to get nested namespaces to work so that Perl 6 can use them
  • a lot of "two steps forward, one step back"
  • updated the progress graph program
  • now it shows the total size of the official test suite
  • the graphs themselves will change a little bit
  • I'll make an explanation of that
  • still really want to get to lexical variables or Rakudo's container value model
  • I'll do that this weekend, when I have uninterrupted time

Allison:

  • cleaning up MMD problems from after the merge
  • started a branch for the calling conventions
  • Andrew Whitworth is working on that
  • wrote a merging and branching guide based on my good and bad experiences
  • thinking about things we can do to make merging cleaner
  • maybe a checklist of people to talk to before you do a merge
  • Patrick, that TODO test you added for the Complex PMC?
  • I have it not segfaulting anymore
  • it's always returning 0 now
  • it creates a new PMC that hasn't been set to the right values
  • I think it's a bug in the old proxy code
  • we probably need to remove that old code and it'll fix it

Will:

  • working on Partcl still
  • have another test file parsing
  • hoping to use the upcoming Parrot release as a new baseline
  • the TGE issue is the blocker for that
  • trying to close all of the easy tickets I can find in Parrot

Jerry:

  • went to PPW last weekend
  • it was very productive and too short
  • spoke at Bug Labs about porting Parrot and Rakudo to the Bug
  • they ported Perl 5 just before the conference
  • some people were playing with it
  • it's an ARM processor which runs OpenEmbedded Linux
  • if it gets ported, we can run on other devices that size

Allison:

  • that's definitely in our target range of uses

Jerry:

  • spoke to someone about NVIDIA about using their CUDA GPU API for hyperop support
  • that looks promising
  • also made the is export trait work
  • includes tag sets
  • committed failing tests for import()
  • working on passing those, may have that done by the end of the call
  • discussed branching and merging philosophy with Allison
  • put up a Wiki for the Parrot Developers Conference
  • has questions which need answering
  • I'll mail the list, requesting answers
  • that'll give us an idea of logistical questions, including budgeting

Larry:

  • on specifications, various simplifications
  • expressions in conditionals are not special with respect to blocks that might appear in argument lists
  • if you say for map { ... }, it parses the way the user expects
  • the block that the for expects must occur where an infix is expected
  • that simplification seems more DWIMmy
  • I nailed down the operator modifying adverbs
  • now applied on the basis of precedence
  • no longer a special mechanism

Patrick:

  • yay

Larry:

  • there will be a few FAQs from that
  • by and large it's a win though
  • going back and forth on the subject of unpacking arrays and hashes
  • someone noticed that the standard parser didn't actually handle those
  • I went to add them
  • discovered that the hash unpacking syntax using curlies was terribly ambiguous, especially inside a pointy block (arrow lambda)
  • tried to rescue that, but in the long run decided that hashes have to be unpacked with signatures, rather than curly notation
  • left in the square bracked notation for unpacking lists
  • it contributes to clarity
  • decided that enumeration types ought to define a .pick operator
  • you can do Bool.pick and it'll return true or false
  • thinking a lot about IRC and on the mailing lists
  • how do you deal nicely about serialized token lists in the order that the tokens occurred in the original?
  • how do those bind to signatures usefully?
  • given that we want match objects to behave like captures
  • did a lot of hacking on STD.pm
  • somewhat driven by adding options to viv
  • it has several options now
  • a match option attaches the old match objects to a position
  • a positional option
  • the main option is a p6 option which attempts to spit out the exact Perl 6 as originally parsed
  • discovered various places where I was throwing away information
  • that leads to trying to keep track of tokens and match interstices
  • also several other people are trying to use the STD output to try to produce other things
  • they're discovering missing information that I've been hacking in
  • it threw away all of the information on elsifs and elses
  • that made it hard
  • removing cyclic references which prevent analysis of the tree as a DAG
  • discovered a fundamental bug in the operator precedence parser
  • reducing if there were any terms left
  • it should have reduced if there were any operators left
  • it didn't reduce any unary operators at the end as it should have

c:

  • I fixed some bugs
  • started looking at the DAG, but couldn't find much documentation
  • do you have a getting started guide, or do you say "Look at this code and think really hard?"

Larry:

  • it's the latter right now
  • but I could at least put a help message on it

c:

  • a list of node types and their attributes should suffice

Larry:

  • that's the kind of documentation that quickly becomes a lie
  • right now, it generates classes on the fly as it sees nodes
  • it could at least tell you what it's doing as it's doing it

c:

  • looked like it could be fun to play with for a weekend

Larry:

  • in my copious free time

Patrick:

  • right now, I can look up a namespace by an array, by a key, or by a string
  • I can create a class by a namespace, a key, or a string

Allison:

  • but not an array?
  • I thought we fixed that

Patrick:

  • we work around that in P6Object
  • get look up the namespace by the array
  • and then we look up the class by the namespace

Allison:

  • we should be symmetrical about this
  • your workaround should move into the Class PMC

Patrick:

  • you have to do that for subclass, isa

c:

  • get_class

Patrick:

  • that specifically does not work
  • that's what Stephen Weeks and I tried

Allison:

  • submit a ticket
  • there's no reason they shouldn't take arrays

Patrick:

  • it's not a high priority at all
  • just a discontinuity that stunned me when I ran into it

Jerry:

  • there's a list of tagsets without commas in is export
  • STD.pm allows it
  • but it seems to open shift-reduce problems with multiple terms in a row

Larry:

  • two adverbs in a row are always considered one term
  • just a sequence of adverbs
  • whenever you parse one adverb, you look for one more

Patrick:

  • they're not adverbs; they're terms

Larry:

  • it works for terms too
  • whenever you see a colon pair

Patrick:

  • if I write 3 + :a :b
  • the :a :b is a term
  • what kind of thing is that?

Larry:

  • a list of pairs
  • or a mapping maybe

Patrick:

  • that's the same as saying 3 + 2
  • the :b would not be an adverb on the plus
  • inside an argument list, :a :b should act like two arguments
  • not a list of two pairs

Larry:

  • if it's coming in as a list of named parameters, it doesn't care
  • if it's in a listy area, it gets interpolated as a list
  • if you bring them in as a scalar parameter... you can't

Patrick:

  • is it the came as :a, :b?

Larry:

  • in list context, yes
  • when you're looking for named args, yes

Patrick:

  • if I had a subroutine that took a positional parameter and a named parameter of a, and I call it with :a :b

Larry:

  • it acts like there's a comma between them

Patrick:

  • is there a way to see them as a single term?

Larry:

  • if you put them in parentheses

Patrick:

  • they solve everything
  • if I see :a :b in an argument list, I have to translate as though they were separate arguments

Larry:

  • I guess
  • that's the way it works currently

Patrick:

  • if we have a term that's a list of colon pairs
  • we have to do some special unpacking stuff when we turn that into an argument list

Jerry:

  • you call .list on it?

Patrick:

  • this is at compile time
  • they have to be interpolated into the capture properly

Larry:

  • now that we've changed how adverbs work, they stack up nicely in any case without any special rule
  • if we removed the special rule, they'd work with the comma

Patrick:

  • getting rid of the quantifiers with the colon pair in noun?

Larry:

  • 1 + :a :b would apply the :b to the +

Patrick:

  • it gets weird when dealing with it inside the argument work
  • we can make it work, but...

Larry:

  • the phrase "make it work" means there's something suboptimal
  • let me think about it a while longer
  • the way the adverbials parse now would apply them to the same operator
  • that was the main motivation for stacking them like that, to have multiple of them in the adverbial slot

Patrick:

  • I thought part of that was for the filetest operators

Larry:

  • that's another one
  • let me think about that one

Patrick:

  • we'll assume commas there for the time being

Larry:

  • sounds good

Jerry:

  • I changed the tests to use commas
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.