This Week in Perl 6, Feb. 1 - 8, 2005


Welcome to yet another summary in which I will undoubtedly confuse two homophones – probably more than a few this week as I am a little tired. But perhaps the alien on my window or the vampire on my monitor will help straighten it all out.

Perl 6 Language

Auto-threading Generalization

Luke Palmer’s thread about auto-threading seems to have wound down without much resolution, or at the very least without a syntax that I like.

Featherweight Perl 6

Autrijus Tang introduced Featherweight Perl 6, a side-effect-free subset of Perl 6. FP6 is the first step on a journey for Pugs to conquer the world.

Value Types vs. Implementation Types

Autrijus Tang became confused by types in his work on FP6. He asked some questions about Types on perl6-language, which told him to go to perl6-compiler. perl6-compiler told him that he should really be on perl6-language. Sorry for the runaround. The proper place for questions about language semantics is perl6-language, where he originally posted. Eventually all of that settled and someone even answered his question.

Logic Programming in Perl 6

Ovid asked how logic programming in Perl 6 would look. No answer came, but I suppose I can pick the low hanging fruit: as a limiting case you could always back out the entire Perl 6 grammar and insert that of Prolog.

The Leaning Tower of Numbers

Autrijus Tang asked what sort of number tower Perl 6 had. He was planning (and implemented) that of Scheme until he received an answer otherwise.

Some Quick Questions

Autrijus Tang asked a few questions about operators in specific contexts. He received a few answers, although I don’t think they covered everything.


Juerd wants to be able to give his script a general signature that magically parses command-line arguments. Many people thought it was a cool idea that should go in a module rather than in the core. This led to talk about creating a signature object to pass to this module so that it doesn’t need macros. Sounds good to me.

S03 Inconsistency

Juerd found a nit to pick. There were no comments about whether to pick the first or second option, though…

Regex Precedence

Nicholas Clark wondered about adding a little operator precedence to regexes so that people could avoid a few common problems. It sounds like a good idea to me.


Juerd wondered if he could mix = and ==> in a sane way. The answer appears to be no. Once you bring in ==> you should stick with it.

4 < $x < 2 == true?!?

Autrijus Tang wondered how junctions and chained comparators work. He found that under certain semantics, the answers can be very troubling. Larry agreed with Autrijus about the need to avoid unintuitive semantics.

Perl 6 Compiler

Pugs 6.0.0

Autrijus Tang released Pugs 6.0.0 after six days of creation. It has many cool features, whether a testament to the power of Haskell or the caffeine intake of Autrijus. (Although to be fair he skipped more version numbers then Java did in its jump to 5.0.)


Gdbmhash Warning

Bernhard Schmalhofer fixed a problem where gdbmhash could make Configure produce a warning. Leo applied it.


Sam and Leo worked out the correct way to create NCI methods for Python. Leo ended by proposing a table to assist Parrot based on the current language, but no answer came for that idea.

Makefile Cleanup

Bernhard Schmalhofer cleaned up some of the makefiles and configure system. Leo applied the patch.

ParrotIOLayer* Const or Not

Fran├žois Perrad provided a patch making the ParrotIOLayer* const in the API. Leo applied it, but Melvin warned that while this may be safe now, the API intended to allow mutability. I think for the moment it is still in though.

Win32 Parrot

Ron Blaschke helped Parrot back onto its feet in the Windows world.

Latest results

Parrot_load_bytecode Failure?

Ian Joyce wondered what would happen if Parrot_load_bytecode failed. The answer: an exception.

Reading Past EOF

Matt Diephouse found it annoying that reading past EOF gave an unhelpful error message. Leo fixed it.

FreeBSD Build Problems

Will Coleda found a build problem for Parrot on FreeBSD. Adriano Ferreira provided a workaround, but the build system needs to be smarter, too. On a side note, I want a picture of the BSD daemon (pitchfork included) with a pirate hat, an eye patch, and a parrot on its shoulder.

Gmake Requirement?

There was some confusion about what does and does not require gmake on FreeBSD. IMCC does not. ICU does. Fortunately, Dan’s string stuff will make ICU optional and Parrot won’t require it.

Locate_runtime_file with Absolute Paths

Jeff Horwitz noticed that Parrot_locate_runtime_file could segfault when playing with an absolute path. He put some work in to fix it.

Expected vpm.imc Output Error

Bernhard Schmalhofer fixed a failing benchmark test that just had slightly wrong output expectations. chromatic (whose uncapitalized name does not bother me) applied the patch.

Subversive Parrot

Ron Blaschke asked if there were plans to move Parrot to SVN. Many argued in favor; few argued against. No word from the powers-that-be.

Parrot 0.1.2?

Will Coleda wondered if the time for Parrot 0.1.2 was growing close. Leo pointed out some things that need fixes. Honestly, the real impediment is that we do not yet have a cool code name. I suggest kiwi, because everyone knows they really want to be Parrots.

Making an Array Out of an Undef

Ron Blaschke was surprised when an operation quietly turned an Undef into an array. Leo explained to him that this set of semantics was known and expected.

Solaris Issues

Andy Dougherty noticed that Parrot was failing some tests on Solaris. He tried to provide enough info for people to help him, but no one did.

Linux PPC Issues

Jeff Dik posted a patch that worked around a problem on Linux PPC. chromatic pointed out that there was a more correct patch already in RT. Jeff Dik slapped himself on the forehead and reminded himself to check RT first.

Posting via the Google Groups interface does not work. To post to any of these mailing lists please subscribe by sending email to . 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 to



Something wrong with this article? Help us out by opening an issue or pull request on GitHub