Calling for Parrot janitors

by Andy Lester

I've put on my overalls and rubber gloves to help Perl 6. I'm the chief Parrot Cage Cleaner, and I'd like you to join me in helping to keep this crucial bird healthy.

Parrot is the virtual machine designed to efficiently compile and execute bytecode for interpreted languages. Parrot will be the target for the final Perl 6 compiler, and is already usable as a backend for Pugs, as well as variety of other languages.

The Parrot project was re-energized by a week-long hackathon at YAPC::NA 2006, with Parrot wizards from around the world converging on Chicago to create more magic. However, when wizards create magic, they spend less time fighting entropy. The Parrot project is starting to accumulate technical debt, and that helps diminish the potential velocity of the project. It often turns out that without janitors, the wizards get stuck.

That's where I come in -- and where you can join me, even if you're new to Perl or Parrot. I don't know Perl 6 or Parrot yet, but I don't need to, and neither do you. The beauty of a janitorial job on a project is that it doesn't require wizard-level skills on the main project, but a competence on the lower-level parts of maintenance. Parrot Cage Cleaners just need to be comfortable with building C programs, and with large projects, and an eye to watching the corners.

Cage cleaning will be a learning experience for everyone. This is a great way to get familiar with Parrot, and get your feet wet working on a next-generation virtual machine. It's also a way to help out on an important open source project without having to devote lots of time. There are always smaller tasks to be done.

I've worked with Chip Salzenberg, the new Parrot pumpking, to come up with a list of high-level goals:

  • Enforcing coding standards, naming conventions, etc

  • Smoke testing on many platforms

  • Decreasing the amount of repeated code

  • Automated generation of C headers

  • Improve low-level code quality

  • Creating automated code checking tools

  • Documenting function behavior and structure members

  • Developing coverage tools where they don't exist

This is a great opportunity for those of you out there (and I know you're out there!) who have always wanted to help out Perl, but don't know where to start. If you're interested, please contact me at andy at, or visit the #parrot IRC channel on You should also subscribe to the parrot-porters mailing list at, currently transitioning from the name perl6-internals. For the latest information on the Cage Cleaners, visit

I hope to see you soon!


2006-07-03 06:02:38
Gee...when you describe these tasks using those terms, how could anyone possibly refuse? =)
Chip Salzenberg
2006-07-03 12:36:37
Thanks, Andy, for volunteering as Cage Cleaner Par Excellence.

I've also got another item that could be added to your list of tasks:

  • Helping other contributors hack their patches into Parrot-style industrial-strength C code.

For example, on parrot-porters (nee perl6-internals), we've just had contributed an improved register allocation implementation, but since the contributor is new to Parrot, there are some style and coding standards issues that need to be worked out. It'd be great if a Cage Cleaner could step up and help our new contributor bang the code into Parrotish form.

Thanks again Andy, and all you C coders out there ... this is your shot to learn Parrot and help deliver it all at the same time.