Perl 6 Design Minutes for 09 September 2009

chromatic on 2009-09-15T19:46:12

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

Patrick:

  • added contextual variables to Rakudo
  • they seem to work just fine
  • added a couple of ops to Parrot to make that easier
  • PCT already uses contextuals in PGE and NQP
  • cleared up a few specification questions
  • answering questions online

Jerry:

  • renewed parrot.org's SSL certificate with Will
  • preparing for the releases of Parrot and Rakudo next week
  • I'm doing both of them

Patrick:

  • he's the Release Iron Man

Jerry:

  • thought about doing the Rakudo release live at the Perl meeting

Patrick:

  • if you skip the spectests, you can do it inside of 30 minutes
  • do a practice release during the meeting

Jerry:

  • it's a good idea

Patrick:

  • most people expect a release on Thursday
  • they work on the NEWS and announcements after the Parrot release
  • you can do your test live and find out where the bugs are
  • two other people have done it already
  • there's never been any other trouble

Allison:

  • lots of travel and bizarre relocation tasks
  • working on the objects PDD
  • about to send a message to the list
  • mainly roles that needed work
  • spent some time looking over the JIT deprecation and replacement proposal
  • wanted an initial plan to figure out where we're headed
  • we're not just ripping it out without a plan to replace it
  • haven't touched PCC this week
  • haven't had time to look at it
  • after I put in the PDD review, I'll switch back to that
  • speaking at the JVM languages summit next week
  • speaking at the Bay Area Python users group after that
  • might have some interesting perspectives from the Unladen Swallow group
  • they're also building on LLVM

Larry:

  • mostly spec work this week
  • originally introduced .p6 as a way to indicate you want to start up parsing in Perl 6
  • now any file extension which contains the digit 6 can indicate the desire to use Perl 6
  • if you write something crazy, you get what you deserve
  • some questions about the scope of context variable searching
  • does each dynamic scope look outward from its immediate lexpad or not?
  • I say not
  • masak wanted clarification of the semantics of break, so I rewrote that section to indicate the interaction of compile-time semantics with control exceptions and leave
  • upon advice of counsel, I obliterated the fallback of contextuals to %ENV
  • will make Patrick happy

Patrick:

  • I don't mind either way
  • I know I had to fix up a bunch of PHP code for a similar thing

Larry:

  • it would open us up for a cheap shot on the security front
  • I'd rather have someone ask for that explicitly than provide it by default
  • places in the docs did things like use global to pull in stuff from already-existing packages
  • I decided those should be define instead of use
  • Moritz and I documented the use of ... classes to forward declare class names
  • nailed down when the blocks of packages and modules and classes execute
  • and when, with respect to compilation and usage, the modules defined in other files execute their code
  • answering a lot of questions
  • shepherding new users
  • poking Daniel Ruoso on the subject of time standards
  • he's working on the specs for that
  • not a lot of hacking
  • fixed a bug in the parsing of hyper-minus with Texas hypers
  • it mis-saw << -> >> as an infix operator
  • now it only does that if it's inside of a meta operator
  • fixed a bug in gimme5 that caused warnings
  • added done_testing function to STD's Test.pm
  • mostly working on the open source ecology talk for work

c:

  • profiling and optimizing
  • setting up the default, optimized, non-developer Parrot to run faster
  • finding and fixing bugs

Patrick:

  • what kind of work does Role need in the Objects PDD?

Allison:

  • it needs testing
  • I'm not confident that it works correctly
  • missing extensive tests
  • I have a list of use cases
  • missing one big feature
  • Class doesn't support the exclude and alias options to support Role
  • Role only supports those for methods, not for attributes
  • that's a matter of adding a few lines of code to one method in Class and one in Role
  • not a big thing

Patrick:

  • Rakudo uses Role
  • it works well enough for whatever we do
  • Rakudo subclasses it into P6Role to give it some of its own behaviors
  • the base PMC is good enough for our uses
  • the P6Role PMC is minimal
  • it overrides find_method and get_string with Rakudo-specific behavior

Allison:

  • I don't know if does reports accurately in all cases
  • mainly there are some things I'm not sure of yet
  • there are implementations present
  • most of the work is reviewing the tests to see if they cover behavior correctly
  • I seem to recall it only has a couple of tests

Patrick:

  • I know it needs more tests

c:

  • all of our PMCs do

Patrick:

  • given a Class object, there's no easy way of finding out if instances can do a method
  • I have to create an instance and test that

Allison:

  • the Class object is supposed to report on the methods its instances will have

Patrick:

  • that's not my experience

Allison:

  • what's more useful to you?
  • it makes more sense to me to ask the Class

Patrick:

  • because Class objects are instances of Object, they delegate to their metaclass object
  • just as Objects tend to do
  • it answers the question about what the class object can do, not instances of the class
  • it's consistent with other parts of the system

Allison:

  • Class doesn't implement can, so it falls back to the default PMC
  • are you happy with the current behavior?

Patrick:

  • we don't use it anyway
  • we have protoobjects
  • it's a common question that comes up anyway
  • given a Class object, there's not an easy way to find a method for an instance
  • it falls back to Object, and gives you a Class method

Allison:

  • the find_method method looks it up for instances

Patrick:

  • they do different things?

Allison:

  • yes

Patrick:

  • I'll pass that on to people who are looking for it