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:
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:
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:
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:
Patrick:
- I'll pass that on to people who are looking for it