The Perl 6 design team met by phone on 09 January 2008. Larry, Allison, Patrick, Jerry, Will, Jesse, Nicholas, and chromatic attended.
Patrick:
- helping people with various Perl 6 tasks
- impressed with the UTF-8 issues and analysis
- sped things up with a couple of patches
- I'll have some recommendations for someone who wants to dive into Parrot internals
- requires only a bit of C knowledge after we have the right design in place
- Jerry's been doing a good job of adding Perl patches
- I'm pleased with progress continuing
Jerry:
- busy working on Perl 6
- started journaling on use.perl.org to give people more info on my commits
- people have been receptive
- added
-h
and -v
support to the Perl 6 executable
- working on
-c
and -e
now to make it look like a real executable
- whether those will be the final options, that's fine
- I'm sure that this will influence Larry's decision on changing everything
- made some small patches to LOLCODE, which has been a blast
- shepherding new people on #perl6 and #parrot who want to help
- chatted with Allison about writing Perl 6 ops in Perl 6
- she had some good ideas about how we might do that
- might work on that this week
Larry:
- things are busy at work
- mostly doing various spec things this week
- semantics of key sets and key bags when you run into the endpoints were not clear
- introduced a temporary operator, the P5 fat arrow
- for the translator to use, means comma as in Perl 5
- the problem is that you have to change the calls and the subs called into at the same time
- you need to be able to find the P5-like fat arrows
- the translator should not just translate them into commas
- it mixes up the intent, where the intent is named arguments
- it's an intentionally ugly operator
- there were some questions about binding and autovivification
- I worked on those
- the special adverbial forms had confusing documentation in S02
- I split those out and described them better
- reiterated that basically Perl 6 is written in Unicode and that module names can be Unicode
- the library system has to deal with that
- thrashed out some possible codenames for Perl 6 on Parrot
Jesse:
- are there Unicode characters not allowed in module names?
Larry:
- they have to be alphanumeric
- they have to follow the rules of naming
- as you can have weirdly-named variables by way of access to the symbol table, you can probably do the same here
- the library system just has to handle Unicode mapping
- the official library may have one mechanism, but users may have to deal with their own personal libraries at the same time
- interesting ideas floating around on the mailing list
- still thinking about longest token matching in the background
- may be one of those things that needs a broken prototype first
- maybe not full DFA right off the bat
- work up something through tries first
- thinking about various options first
Allison:
- wrapped up some of the last concurrency scheduler issues
- as much as I've implemented so far
- didn't manage to resolve all of the STM bugs
- at least I resolved all of those related to the concurrency scheduler
- we'll revamp STM next month anyway, so I moved on
- working on the PMC PDD implementation
- chromatic has been helping on that
c:
- you made me write a parser
Allison:
- I made you modify a parser
- mostly there's code cleanup
- some changes to the parser that turns our PMC mini-language into actual C though
- talking to the Debian people about whether to include Artistic 2.0 in the distribution
c:
- helping Allison with the PMC stuff, hacking on the parser
- did some profiling and helped find some optimization targets for string handling
- fixed a couple of bugs, have some segfaults to look at
- found that our PIR implementation with optimizations is highly competitive with Python and Perl 5, so good there
- couldn't benchmark it with the Perl 6 implementation yet
- needs some work to get Fibonacci running
Will:
- did some work getting LOLCODE running on Parrot
- it's about as useful as abc, but it's more of a draw for other people
- managed to get Simon Cozens back at least temporarily
- hopefully we'll get more tuits from him
- Parrot 0.5.2 is due next Tuesday
- Bob Rogers will be doing that, and I'll be the fallback
- Andy Lester has been bugging us for information on the bugday before the release, so maybe we'll get some new development there
- it looks like we'll target 0.6.0 for February
- still working on the read-only frontend for RT to organize tickets in a more readable fashion
- probably another day of hacking before I can release the front-end
- talking to Robert about migrating the backend to perl.org
Richard:
- working mostly on TPF internals stuff
- putting a few cycles into sponsorship
- nothing solid to report yet
Nicholas:
- haven't done more work on the smart match, as Larry responded on p5p before I could
- haven't yet talked to Rafael
- we should figure out what to do before 5.10.1 in the next couple of months
- weren't sure what to call first-class regular expressions in 5.11
- Yves committed a patch for
REGEXP
- I suggested
RULE
, but people didn't like that
Jesse:
- just returned from a week and a half in Portugal
- ended up not quite pure vacation
- spent half my time with Perl hackers
- spent a lot of time chatting with Flavio
- he's having fun and interested in hacking on Patrick's compiler
- there's a lot the implementations can learn from each other
- steal outright even
- he has some ideas about fairly major testsuite refactorings
- they're different from Patrick's ideas, and I'm probably not capturing them accurately
- he wants to break it into various levels of compiler support
- should be possible to have a large chunk of the test suite run by a first-stage implementation
- designated features that the compiler supports for levels of the test suite
Jerry:
- that's the problem to do portably across backends
Allison:
- different implementations will implement things in different orders
- when you order the tests, to target implementation work
Larry:
- we already have a way of marking blocks as TODO
- maybe Flavio just wants a way of marking file-scoped things
Jesse:
- it's a desire, not a requirement
- he believes that there may be a reasonable required order for language implementation
Jerry:
- coming up with best practices sounds like a great idea
Jesse:
- Flavio said he'd find it helpful to have a Parrotsketch-style IRC meeting for implementors
- I want to avoid meeting fatigue though
- maybe it would make sense to take this meeting online once in a while
- every other week for #ps
Jerry:
Jesse:
- it would be nice to have everyone around in a logged format
- he did say that he'd like to see more collaboration between implementations
- he's very eagerly awaiting the longest-token matcher
- slight connotations of "desperately waiting for"
- a partial implementation would go a long way toward getting him to hack on it
- someone in Lisbon.pm is working on a straight-up C runtime for Perl 6
Nicholas:
- how many implementations are there?
- there's kp6, there's Perl 6 on Parrot, there's Pugs but I don't know how viable it is
Jesse:
- within kp6, there are several bootstrap runtimes
- Perl 5, Common Lisp, kp6 on Parrot
- Flavio also has a couple of mini-languages written in Perl 6 and compiled to Perl 5 on the CPAN
- the compiler is slow, but the result is good
- so there are people using that part of Perl 6 already
Jerry:
- it's so easy even I can do it!
Jesse:
- I'm not sure that's "even" in there
Jerry:
- but that's how I feel about it sometimes!
Slides?
Ovid on 2008-01-17T10:03:06
Apparently, you and Patrick gave a talk about writing a compiler for Parrot. Are the slides online somewhere?
Re:Slides?
chromatic on 2008-01-17T16:53:08
It's Running Your Programming Language on Parrot.