This file is part of the Perl 6 Archive

Note: these documents may be out of date. Do not use as reference!

To see what is currently happening visit

The Perl 6 Summary for the six days ending 2004-08-06

Another short week and the rollover point is now set to Friday nights in preparation for September when I'll almost certainly not have weeknights free. (Of course, I don't expect the summary will be coming out any earlier in the week through August, what with Saltburn Folk Festival this coming weekend, EuroFoo the weekend after and Towersey Folk Festival the weekend after that.

Just for a change, we'll start with the discussions in perl6-language.

Meanwhile, in perl6-internals

ICU Outdated

Unicode is evil I tell you. Necessary, but evil. If ever there was an essential piece of technology that was absolutely guaranteed to annoy everyone then Unicode is probably it.

The Unicode issue this week was the ongoing discussion of what to do about ICU. It's huge, it's in C++ and Dan maintains we can't do without it (unless some kind soul were to implement a Unicode library with all of ICU's features and fewer of its annoyances -- now there's a postgraduate task for the interested).

Dan's plan is:

  • 1
  • Make Configure detect and use a system ICU, if available

  • 2
  • Dan will spec out encoding and charset APIs for loadable encoding and charset modules

  • 3
  • Parrot gets fixed to use those APIs

  • 4
  • Add support for non-Unicode encodings and charsets

  • 5
  • Make ICU a loadable module tied into the encodings and charset API

  • 6
  • Profit!

This puts Dan smack on the Critical Path, but what's new?


Matt Kennedy announced the initial release of a new Parrot based language called Span. And very lovely it looks too (Think Smalltalk meats Block structured languages and wins), if only I could get it to compile on my Panther installation.

Executable AST

In an intriguing post, Leo announced that Parrot's now running code directly from a (Python) Abstract Syntax Tree description. The post is light on details, but big on potential.


Dan announced that he'd committed a DESIGN_TODO file to the repository with brief details of what he thinks needs working on. He also posted a short term roadmap of things to deal with in the near future and very interesting it looks too (he reckons we should be able to get serializable continuations working, which would be rather cool).[]

PMC Basics

Leo posted a list of issues with how PMCs work. Warnock applies.

Starting to make things final

Dan pointed at the efforts of Piethon and the 'PHP on Parrot' people and at Span and declared that we're at the point where things that are in and implemented should be documented and fixed and that things that are in flux should 'un-flux and get fixed'. He sketched the road to 0.2.0, 0.2.1 and thence to 0.3.0. The idea is that 0.2.0 (or 0.2.1) will be a 'complete' stable, good enough platform for language developers. Which will be nice.

Oh, there's going to be a compiler writer's list (probably parrot-compilers) spun off from perl6-internals (which will probably become parrot-internals). Names are slightly undecided at present (but I will aim to cover both lists in my summaries).[]

Declaring MMD subs from PASM/PIR

He who must not be capitalized, chromatic, wondered about declaring parrot subroutines that participate in multiple dispatch. He outlined a scheme that Dan had suggested (presumably at OSCON) and asked for comments. Leo and Dan discussed it further, but I don't think anything's final yet.

Everything Parrot

Documents maestro Michael Scott posted the beginnings of a subject overview for Parrot. He asked people to point out any bits and pieces he'd missed.

A testimonial and a question

Andrew Rodland delurked to say nice things about Parrot ("pretty smooth stuff") and to ask if there was a handy list 'It Would Be Nice If...' tasks that newcomers could get started on without having to dive straight into hacking the core. Simon Glover pointed at the TODO list. He suggested that you can't have too many tests and that writing tests can be a good way of getting a handle on what the core does (or is supposed to do).

Reading tests can be a good way of getting a handle on what the core does too, of course.

The new Perl 6 Compiler pumpking

Dan announced that Patrick Michaud stepped up to the plate and taken charge of getting the Perl 6 compiler module written. Welcome Patrick, and the very best of luck.

Leon Brocard asked Patrick what his plan of attack was. No reply so far.[]

Spilling problems

The thing about writing naive compilers for naive languages is you end up with rather large Parrot subroutines. Dan's work project is generating ~6000 line subs. Which shouldn't be a problem, but it seems that IMCC's register spilling algorithm is getting itself into a horrible tangle. Dan suggested thumping the register spilling code to fall back to a fairly stupid scheme when the 'optimal' algorithm runs into problems. Leo's working on it, but it's not easy. Any help gratefully received.[][]

Anyone up for a big challenge?

Dan pointed everyone at TinyCOBOL, a GNU COBOL compiler. He suggested that using Parrot as a way to migrate legacy COBOL apps would qualify as a Good Thing. So, if anyone would care to rejig TinyCOBOL to target parrot for a grateful world...

Anyone? Bueller?

Actually, it looks like Tim Howell is working on it.[]

Syntax highlighting

Taking the bit well and truly between his teeth, former lurker Andrew Rodland posted a bunch of patches to improve syntax highlighting of Parrot code in vi. Of course, I use Emacs, so it's no good to me, but still, it's good to see.

spawn, meet exec

Possibly because there's no superhero called Exec, Dan overlooked it when he added a spawn opcode. So he's fixed that. It works like you'd expect. He asked for help to make it work nicely in Windows. Brent Royal-Gordon, Aaron Sherman and Jonathan Worthington rallied round.[]

Looking for a hardware donation

If you've been reading this summary for any length of time, you'll be aware that Leo writes rather a lot of code. But he writes it on an x86 Linux system with GCC which, as Dan pointed out, is 'possibly the most forgiving development environment on the planet, even with full warnings', which can be problematic when people with other systems do a cvs update.

So, the Perl Foundation is organizing a drive to get Leo something nice and Unixy but less forgiving to use for local portability testing. If you can help, either Leo or The Perl Foundation would be very pleased to hear from you.[]

Announcements, Apologies, Acknowledgements

Tcha! Wouldn't you know it, as soon as I decide that Luke Palmer will join the ranks of the monomonikered, he clams up. Bah!

If you find these summaries useful or enjoyable, please consider contributing to the Perl Foundation to help support the development of Perl. You might also like to send feedback or contributions to a 'getting Piers to OSCON 2005' fund to mailto:[email protected] -- The Perl Foundation -- Perl 6 Development site