Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

geoffrey (5895)

  (email not shown publicly)

Journal of geoffrey (5895)

Monday October 05, 2009
03:25 AM

Parrot Plumage "Day" 8: Getting a bit smarter

[ #39713 ]

When last we left off, Plumage had just managed to install its first project, thus moving from the "infant" to "toddler" phase of development.

In preparation for reaching "preschooler" status, I spent time this week removing some hackishness and making Plumage generally smarter about basic operations. Some of the changes were very simple, such as always printing out system commands to be spawned before actually executing them, or pushing some boilerplate code down into utility functions rather than forcing every calling site to go through the same contortions.

Some changes were infrastructural, including basic utilities like map(), exists(), and does() and workarounds for NQP limitations. The latter category included new functions such as as_array(), call_flattened(), and try(), which Tene++ and I added to Glue.pir to make calling convention mismatches a bit less painful.

Other changes were larger, such as adding command line option handling, allowing the user to ignore failures in various build stages, and handling exceptions thrown by Parrot ops and low-level Parrot libraries. Handling (possibly several) config files (including merging the config information across them) and moving all project builds to a separate location -- defaulting to ~/.parrot/plumage/build/ -- also fell into the "larger changes" pile.

Still others amounted to cleanup and general code maintenance, such as compiling Glue.pir to Glue.pbc during the plumage build so that all libraries could be directly loaded as pure bytecode at runtime, finding less hackish ways of working around NQP, and cleaning up documentation and comments throughout.

Finally, darbelo++ added a new project (partcl) to the metadata collection; I hope to add a few more in the next week or two.

All in all, no major new milestones reached -- but the code feels a bit more solid now, behavior is "more correct" in several places, and the user experience is definitely better. Not a bad week's work.

As always, you can check out the code at the Parrot Plumage repository, and don't hesitate to ping me on IRC -- I'm japhb on #parrot at If you'd like to join the effort, read the README for the general overview, then come to #parrot to get your questions answered!

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.