Perl 6 Design Minutes for 09 January 2008

brian_d_foy on 2008-01-17T12:18:00

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:

  • or a logged #p6c channel

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.