The Perl 6 design team met by phone on 25 February 2009. Larry, Allison, Jerry, Patrick, and chromatic attended.
Patrick:
- continuing to prepare Rakudo for its next release
- expect that to happen today
- for now, the releases will be alphabetical: words beginning with A, B, C, D, etc.
- partially to emphasize that I don't consider these user-ready releases
- putting a number on that may imply that
- no easy way to tie releases to numbers right now anyway
- some people have said "What happens when you get to X?"
- I hope we're releasing official releases by then
- updated Rakudo's test harness
- no longer requires Parrot's test harness
- it now passes over 7000 spec tests
- Jonathan gets most of the credit for that
- he's been closing tickets and fixing bugs while I've been working on build issues
- totally unplanned to hit that number
- updated the spectest progress files to show our progress
- haven't updated the graph today
- following along conversations and trying to keep track of various changes
Allison:
- spent the week mainly on install stuff
- various languages can build from an installed Parrot without depending on the build directory
- still some hard-coded paths within Parrot's configuration system for C compilation
- Rakudo and Partcl can definitely build from an installed Parrot
- need to do Pipp next
- set up a languages repository on svn.parrot.org
- waiting for some admin work on that
- came up with a saner version number strategy
Patrick:
- I find it much easier to say that January and July are the memorable releases than to attach numbers to them
Allison:
- with Ubuntu, it's likely we'll get 1.0 and 2.0 into the distribution and not say 1.4
- they have an upstream packaging freeze about a month before we put out our release
- the release that goes into their 09.10 will be 1.0, not 1.4, because the latter won't be out in time
c:
Allison:
- that's a developer release
c:
- we're going to have to talk about that
Allison:
- we have a final copyright assignment from the Perl Foundation to the Parrot Foundation
Jerry:
- have some small pending changes to S19
- nothing much to report there
- Google's giving a GSoC presentation at the University of Washington
- they've asked me to speak about our experiences last year with TPF
- I'll invite people to join the Perl and Parrot Foundations project this year
- hope to have an ideas page to point people at at that point
c:
- have you spoken to Jonathan Leto about that?
Jerry:
- only heard about it yesterday
- it's on my list
- looking for presentations on GSoC to find slides to borrow
- about all I've had time to do lately
Larry:
- having a really nice problem
- a lot of people are helping to flesh out the specifications
- the nice problem is that they have to be managed
- trying to oversee what people are hacking into the new specs
- want to make sure things don't go too far afield
- weighed in on event processing and inexact numeric matches on the mailing list
- nothing there is quite spec-worthy yet
- doing name-whackage of various sorts
- killed off the
$*DEFIN
, $*DEFOUT
, $*DEFERR
symbols which emulated Perl 5's old IO select states
- not it relies on that those are contextual vars:
$*IN
, $*OUT
, $*ERR
- any scope can override them
- that's simplification
- many compiler variables that were redundant and error prone with regard to nested scopes
- you now chase links through your symbol tables to find out your lexical or package nesting
- unhandwaved how a setting can loop around user code
- you can mark it so that it knows how to dump the lexical scope surrounding user code
- there's a stub in there called
YOU_ARE_HERE
- I'm open to better names
- clarified associativity at the same precedence level
- that can happen with user-defined operators
- non-associative in that case, so you get an error
- noticed that the
tighter
and looser
precedence generators only produced precedence levels that were close to one that exists
- wanted the ability to define something in the middle
- if you use both in the same precedence level, it splits the difference
c:
- sounds like you need a synonym:
between
Larry:
- tried that, but you have to specify two things anyway, and there's already syntax for that
- after the discussion of time semantics, put in two core types:
Instance
and Duration
- defined to be well-behaved in terms of time
- most of my standards hacking has been in user-oriented error messages
- now an error message that warns you if you try to use a C++ constructor
c:
- can we backport that one?
Larry:
- it's also a valid Perl 5 constructor
- just thought it would be more insulting to call it a C++-style constructor :-)
c:
Larry:
- previous patch to catch Haskell-style open-ended ranges where you leave out one of the terms
- that prevented talking about any
..
operator in square brackets
- we couldn't use the notation where you put square brackets around infix operators
- I had to fix that
- fixed up the warning when interpreting
if()
as a function call
- introduced enum names into the symbol table
- it's a bit of a hack
- anonymous enums now parsed correctly
- no more complaints of missing package when you use
CALLER::
or CONTEXT::
- can now introduce
term
symbols, as well as prefix
, infix
, and postfix
- other random warning-suppresion bugs
c:
- working on project management, version numbers, deprecation, triaging guidelines
- trying to fix as many bugs as possible
- reviewing SKIP and TODO tests
Jerry:
- I read your
Setting
work this week
- can you roll back a
Setting
?
- can you access something outside the current
Setting
?
- I don't have a use case
- is it as simple as calling
OUTER::Setting
?
Larry:
- if there are multiple settings, they're just enclosing lexical scopes
- any mechanism to navigate lexical scopes works
- the outermost is
CORE::
and so forth
Jerry:
- to cut off a file in mid-stream processed with
-n
, could I close the handle in CORE::
?
Larry:
- chances are that's a dynamic variable, a
$*ARGV
equivalent
Jerry:
- can I find out which
Setting
I'm currently in?
- finding out its name
- inside my current runloop, can I tell which
Setting
s I have loaded?
Larry:
- we probably want to have a way of naming them, much as
CORE::
has a name
- lexical scope should have a way of saying "My lexical scope has a name, and it is..."
c:
Larry:
- ... but I haven't thought about that yet
Jerry:
- any status on protoregexes and stuff?
Patrick:
- I end up being the person of last resort to do things that need doing
- had hoped that other people would pick up the ball on build issues and stuff
- I can make predictions for the next few months, but life catches me off guard
- once I get back to working on PGE, it won't take too long
- it would bug me more if the lack of those features were holding Rakudo back
- that doesn't appear to be the case
- we're making good progress and we're getting new features
- we could use them for adverbs, but we can work around that now
- if that reaches a pain threshold, it'll move it higher in the queue
- that's where I'm focusing my efforts
Jerry:
- Jonathan's very good at moving things forward
Patrick:
- it's fortunate that each of us tends to like doing what the other person hates
- with the exception of lexicals and the build system
Allison:
- no one ever wants to do a build system
Patrick:
- delayed binding helps this though
- seeing grammar changes as they come up makes it easier to figure out what to do
- with the
Setting
code now, and features written in Perl 6, we're closer to finishing one of my milestones
Jerry:
- how will the install process be for Rakudo?
- it seems like Parrot is doing the heavy lifting there
Allison:
- I've been working on independent building
- what would you like for installing?
- an install script where you identify your language files, and it puts them there?
- you have a languages/ directory in the Parrot lib directory
- you have configuration files that tell you where they are
- you just copy files after that
Jerry:
- certain things might need changing
- grouping the docs?
- cross-indexing?
- if you're doing dynops or dynpmcs?
Allison:
- haven't been doing any doc installs, just executable files
- maybe they should go in with the Parrot docs
- installation works via a MANIFEST
- you specify the type of file with a tag in the MANIFEST, whether
doc
or lib
- are you happy to have a MANIFEST in your language directory
- let the installer take care of it for you?
Patrick:
- if there's a script to do the install, we'll probably use that
- I just want to get it so that people can build and run Rakudo
- I'll probably look at installation in a month or two
Allison:
- I'll look at a simple MANIFEST for Rakudo
- will patch your Makefile for that
- will build a basic installer script
- it'll be a basic, working install
Jerry:
- the mk_languages_shell.pl script needs an update to make a MANIFEST
- François has been keeping that up to date
Allison:
- I haven't added MANIFEST to any other languages yet
transcribe-o
ChrisDolan on 2009-03-01T14:28:57
after the discussion of time semantics, put in two core types: Instance and Duration
Should be "Instant" not "Instance"