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 March 06, 2009
03:45 PM

Perl 6 Design Minutes for 04 March 2009

[ #38607 ]

The Perl 6 design team met by phone on 04 March 2009. Larry, Allison, Patrick, Jerry, Nicholas, and chromatic attended.

Larry:

  • still in my manic phase here
  • fixed a bunch of bugs in STD
  • placeholder variables now declare their corresponding variables
  • assumes when it sees a function name with the sigil that it doens't have to look it up
  • postdeclaration of a function now looks in the correct pad
  • the same name might occur in different pads, so it might mean different things in different places
  • you have to do the patchup starting in the correct lexical scope
  • put in a nice error message when someone tries to index the -1 element of an array
  • the parsing on a file is now localized better
  • can do multiple parses without information leaking from one parse to the next
  • redid the number matching rule
  • we can theoretically reuse that for parsing numbers in converting strings to numeric values at runtime
  • as you extend your grammar with different kinds of numeric literals, you can reuse that
  • the builtins should be able to do rational and complex numbers
  • can parse some of the compile-time variables specified
  • you can give them meaning, such as the current line number
  • fixed a bug in __END__ where it tried to parse the POD/data section
  • killed off is also and is instead
  • now there are scoped declarators: augment and supersede

Jerry:

  • why?

Larry:

  • they're not declaring a new thing in the scope
  • attaching to something that already exists
  • not really a declaration at all in that sense
  • the traits had to go out and change the meaning of the name retroactively
  • you can throw declaration names into the symbol table
  • but if you hit is also, you had to undo that to reuse a name that's already out there
  • they wanted to be scoped declarators instead
  • needed to be able to write some of our multimethods more generically than they were by default
  • when referring to other multimethods of the same name
  • needed to do that by the semantics of the caller's scope
  • we added a primitive called lift
  • it's a statement prefix, like gather
  • slightly genericizes that statement
  • uses the semantics of the caller to handle the operators
  • took out all mention of the TOP macro
  • now talks about .parse and .parsefile on grammars
  • you can't use a grammar on the right side of a smart match
  • it's treated as a type name
  • refactored the definition of capture and match
  • instead of magical semantics in Item context, now it's invariant that a match in Item context is just itself
  • result objects are no longer a magical part of a Match object
  • passed back through the named null-string key
  • can still refer to it with $() but it comes through a different mechanism
  • not confused with positional arguments
  • invocant always considered the first positional argument of a capture
  • marked with a colon, if anybody cares
  • this will simplify semantics in many places

Patrick:

  • in shock over the changes to the spec in the past week, but we'll deal with it
  • most of it will be the Item stuff
  • it needs to happen though
  • big news is the first independent release of Rakudo last Thursday
  • release #14, codename Vienna
  • feedback is that it works great
  • it's accumulated a lot of changes through February to the build system
  • since the release, fixed some longstanding parser headaches in Rakudo
  • most notably the handling of if, unless, and while
  • added the Q quoting operator and some of its variants
  • fixed up is export handling for code written in the core Setting
  • we can use it there to export into the correct place in programs
  • needs a little work, but the basics seem to work
  • planning and scoping how to convert more builtins to Perl 6 in the core Setting
  • replied to an article about converting HOP's RPN calculator to Perl 6
  • wrote my own version of the converter
  • Andy Lester and I have worked on redesigning rakudo.org
  • inviting other people to contribute

Allison:

  • it looks really good

Patrick:

  • I'm inviting others to contribute
  • fixed a couple of minor Parrot bugs
  • putting together a guide for people who want to submit patches now that we've switched over to Git
  • Github's presentation of the patch queue can be difficult to work with as a free-for-all
  • we're putting together some strict guidelines on that
  • blocking on how quickly I can acquire Git knowledge

Allison:

  • spent most of my week on OSCON planning
  • that's almost wrapped up
  • worked a lot on bugfixing and ticket closing
  • that'll be my focus for the rest of the week
  • working on Debian and Ubuntu packaging
  • no real new development
  • just making sure we get things as clean as possible before the release

Nicholas:

  • people in Vienna seem to be chuffed about the release name

Allison:

  • that's positive, right?

Patrick:

  • whether it's positive or not, there's little I can do now
  • the feedback about the release names has been uniformly positive
  • "Hey, that's great!"
  • "How do I get my group in the list?"
  • that was the point
  • Andy Lester gets credit for that idea
  • thinking lately that I'd like to move the specs and tests out of the pugscode repo
  • or change the name of the repository
  • seems to confuse people that the tests and specs are in the Pugs repository, but they probably don't want to use Pugs as the primary implementation
  • I've already claimed the Perl 6 account on Github

Jerry:

  • reducing confusion is a good idea
  • but until the confusion is reduced on how to submit a patch to Rakudo, this may not be the time

Patrick:

  • I expect that confusion to be gone within a week
  • don't think that's a difficult problem to solve
  • it'd be different from Rakudo
  • you'd get a commit bit for the spectests by asking for it

Allison:

  • maybe talk to Audrey and the other implementors
  • see if you can get a consensus

Patrick:

  • I don't want to do anything by fiat
  • that might argue for merely changing the canonical name of the repository

Nicholas:

  • what's the practicality of extracting version history from the SVN history when importing to Github?

Patrick:

  • it's easy
  • we did that with Rakudo
  • Jesse prototyped it in 15 minutes and sent me instructions

Jerry:

  • might be good to have tutorials and sessions on contributing to Rakudo
  • when thinking about how to make our users smart enough to deal with SVN for Parrot and Git for Rakudo

Patrick:

  • my talk this year is "Hacking Rakudo"
  • it's not "Status of Rakudo" anymore
  • the nuts and bolts of becoming a Rakudo contributor
  • at Oslo, Jonathan is talking about Perl 6 and Rakudo Today
  • we'll put a little Git tutorial in there
  • I have 100 minutes for that talk

Larry:

  • that all sounds fine to me
  • a go-slow, two-step process is probably best
  • change the name first, then move over to Git
  • that sounds fine

Patrick:

  • I'll discuss these ideas now on p6c
  • what should our policy be for contributor agreements and commit bits?

Allison:

  • TPF's perspective is that it's valuable to continue requiring a contributor agreement for a commit bit
  • that policy is important for the future

Patrick:

  • is there a summary of why that's important?

Allison:

  • this makes it safer for companies like IBM to use Rakudo in production environments

Patrick:

  • basically avoiding a SCO

Allison:

  • yes

Patrick:

  • we'll probably continue the Parrot-style policy
  • who gets those CLAs when they get sent in now?

Allison:

  • I've been collecting them
  • may eventually hand it off to Jim Brandt

Patrick:

  • I agree with the Item changes, but there's a bit of a conundrum for NQP
  • we used $(...) to get the Result object out
  • any suggestions?

Larry:

  • it's just the name of the objects inside
  • need to change that to a method call or something explicitly the null key
  • or we could make it respond to function .()

Patrick:

  • that sounds fine to me
  • does $(...) have any specific meaning we need to preserve now?

Larry:

  • only the form with bare parens remaps to the null key

Patrick:

  • could we say that this is a special form which translates to a method call?
  • I'm not arguing strongly for that
  • I don't like the inconsistency

Larry:

  • it's often enough you want the value that it should be short and sweet

Patrick:

  • I can support an older version in NQP
  • it's not tied so directly to Perl 6
  • just need to know what the new syntax should be

Larry:

  • there needs to be some productive postfix syntax
  • whether that looks like a subroutine invocation or a method call... still need to figure that out
  • right now, a hash subscript for '' is spec'd to work

Patrick:

  • that'd be ${''}, which combined with a match object such as $<bar> makes it $<bar>{''}?
  • that's an ugly pill

Larry:

  • a null subscript in angle brackets
  • comes up to a null list, but if we forced it...

Patrick:

  • but it gets the whole list

Larry:

  • nevermind that idea then
  • need to think about $() some more

Patrick:

  • how about $<bar><*>?

Larry:

  • that ought to mean the star key
  • instead of using the null key every where, we'll use the star key
  • that might be a good idea

Patrick:

  • I don't need an immediate answer
  • it'd be nice to solve this before Parrot 1.0
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.