This week on Perl 6, week ending 2004-02-08

Another Monday evening. Another day of displacement activity out of the way. There’s a huge lump of belly pork braising slowly in a mixture of stock, rice wine & soy sauce, and nothing on the telly. It must be time to write the Perl 6 summary. As usual, I’m going to deal with perl6-internals first.

RT Cleanup

The cleanup of the RT bugs database continued apace. Stephane Peiry posted a list of old RT entries and their authors and asked them to supply updates ore they’d be flagged as obsolete in the queue. In the ensuing discussion, Steve Fink pointed out something that I’d missed: as of this week, all the perl6 tests (including the regular expression tests) are passing. He pointed out that the suite is far from comprehensive, but I still think this is pretty spiffy.

DOD, mutation, and generational collectors

Dan had posted some thoughts on the way that many of the things that cause problems for threads also cause problems for generational garbage collectors and gave a list of ‘mutating activities’ that might need to be trapped by both threads and GC. Gorgon Henriksen asked Dan for more elaboration on what he meant by generational GC because, as Gordon understood it, it came with a whole load of baggage that was inappropriate for Parrot. This week, Dan gave his answer and pointed out that various other improved GC schemes (incremental, concurrent) required the same level of support as a generational scheme so it made sense to provide such support now. Leo Tötsch had a few comments to make about the different possible schemes and discussion moved on to the nastiness of doing GC in a multithreaded environment. – Thread root

SDL Bindings

The SDL bindings that chromatic’s been working on continue to develop. (Bah! People who insist on weird capitalization of their names and thus force me into the passive voice are jolly annoying, even if personally very pleasant).

Python PMCs?

Michal Wallace wondered what Dan’s plan was for getting python objects working for the pie-thon. Michal has made a small start on wrapping PythonObjects as PMCs which seemed to work and was apparently easier than trying to recode them as PMCs. He pointed everyone at his current implementation. So far his post has been Warnocked. – The wrapper implementation

Docs and releases

Tim Bunce wondered whether Parrot’s documentation was in sync with current implementation reality, and when we’d see a clean way to make method calls. In a post dated the 3rd of February, Leo confessed that there is still a lot of outdated or unimplemented stuff in the assembly related docs and noted that Dan had said that the low-level object design would be done by the 30th of January.

Backward branch, Warnocked

Pete Lomax drew everyone’s attention to a problem he’d found back at the beginning of December which Leo had said was a problem with a backward branch. He wondered when/if the problem might be fixed.

Sadly the answer was “We’re not sure when it’ll be fixed, it’s really hard to fix the current version of IMCC, but it should be easier to sort out in IMCCv2. For now, don’t do that.” Meanwhile, Harry Jackson tried to track the bug down to the appropriate bit of IMCC; his experiments with code variants seem to imply that the problem is with IMCC not recognizing that ret is a branch.

Alignment issues with *ManagedStruct

The redoubtable chromatic came across some issues with the alignment of members within a struct and wondered if there might be a better way of sorting out alignment issues than his current trick of explicitly padding things out (which he feels probably isn’t portable). Leo pointed out that there was already support for offsetting struct members when setting up a *Struct PMC by using the third initializer parameter.

As discussion of the best way forward continued, it emerged that Jens Rieks is in the process of writing a simple C-parser in IMC which should be able to parse header files and create ManagedStructs automagically. Go Jens. Tim Bunce suggested that Jens take a look at ExtUtils::XSBuilder for hints. Meanwhile Uri was looking at Convert::Binary::C which is apparently far more robust.

Leo ended up listing a set of requirements for a script to parse C headers and generate the appropriate PIR code to set up various *Struct PMCs. – Jens talks about his C parser – Leo’s requirements

Baby, baby, where did my patch go?

Gordon Henriksen wondered what had happened to a patch that he’d submitted to bugs-parrot. Robert Spier wasn’t sure, but noted that the MyDoom virus was busy causing the servers a hard time (more than a gigabyte in 19 hours; Robert sounded a little fraught). As it happened, the patch had actually bounced from the list because it was huge. Everything got sorted out in the end though.

Documentation tools

Michael Scott continued his sterling work on Parrot’s documentation by adding the Perl tools he used to generated the HTML docs to the tree at tools/docs/, he also announced that he’d finished the examples and the various *.c file directories and will be looking at classes next. I wonder how long it’ll be before someone reimplements them in in PIR…

Approaching PDD16 callbacks

Leo announced that he’s implemented a first hacky way to run PASM callbacks from C NCI functions; it’s not a full implementation, but it’s a start. As usual, he solicited comments. And so far he’s not had any.

Meanwhile, in perl6-language

The Unicode argument again

Andy Wardley strongly advocated not making Unicode operators «, » etc part of the core language. Larry disagreed, but proposed that any Unicode declarations should also have an is ASCII('!@#$') trait to specify the ASCII equivalent.

Compiler writing tools

Luke Palmer has been writing ‘a lot of compiler’ recently and posted some of his positive and negative experiences with YACC as possible pointers to the sort of things Perl 6’s grammars might need. In his response, Larry once again demonstrated the truth of the proposition that “Everyone writes a templating module at least once in their life” when he confessed that “the first production language I ever wrote was an inside-out language where control commands were embedded in text that was to be output by default.”

Acknowledgements, Apologies, Announcements

Oops, reading back over last week’s summary I realise that, when I meant to talk of going to see Eliza Carthy performing live, I actually wrote that we’d gone to see her perform life. Sorry about that.

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 me feedback at, or drop by my website. – The Perl Foundation – Perl 6 Development site – My website, “Just a Summary”



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