This week on Perl 6 (9/9 - 9/15, 2002)
by Piers CawleySeptember 15, 2002
Happy birthday to me! // Happy birthday to me! // Happy birthday, dear meeeee! // Happy birthday to me!
And, with a single breech of copyright, Piers was free. The production of this summary was delayed by my turning 35 on the 15th and then spending the Monday train journey reading one of my birthday presents (Dead Air by Iain Banks, it's jolly good) instead of writing a summary. So this morning, I left the book at home.
So, what's been going on with Perl 6. We'll start, as usual with perl6-internals.
Goal Call for 0.0.9
The week before, Dan had asked for some suggestions as to what should be the priorities for the 0.0.9 release of Parrot. One of Nicholas Clark's goals from last week was the 'Careful elimination of all compiler warnings, particularly on non x86 platforms, and for builds with nondefault INTVAL size,' and discussions of how to go about doing this (and indeed some doing) carried on into this week. There was also some discussion about whether IMCC and the Perl 6 compiler should be built by default. On the one hand, it would mean that the tinderboxes were testing those important subsystems, on the other hand, it was thought that there were some people who wouldn't be interested in testing those things. Consensus seemed to be that we should just build and test them anyway.
http://groups.google.com/groups
Scheme Implementation Details
Jürgen Bömmels and Piers Cawley continued their discussion
of how to go about implementing a scheme interpreter, and lambda in
particular. Piers made noises about a proof of concept implementation
of Scheme that he'd made using Perl objects, but didn't show
code. (And, I can exclusively reveal, will not be showing the
original) code owing to badness with backups and lackadaisical use of
CVS). Jürgen, who had actually made the effort of writing some
code, listened politely and agreed that Piers' suggestions looked like
they might be a way forward. Jürgen went away and implemented a
first cut at quote, define and set!.
http://groups.google.com/groups
http://rt.perl.org/rt2/Ticket/Display.html
chr, ord etc.
Clinton A Pierce restarted this thread and discussed what he'd like to
see (apart from a pony) from Parrot's equivalent of Perl 5's
pack. Clint wondered whether Parrot pack should use a template,
or if it should be implemented as a horde of smaller ops, each
handling a different conversion, so that a single, Perl level call to
pack would become lots of op calls at the parrot level. Clint also
drools at the thought of doing sprintf at the parrot level. Aaron
Sherman agreed with most (all?) of Clint's proposals, and also wants a
pony. (Who doesn't?). Peter Gibbs went so far as to offer a patch
which implemented a subset of pack functionality, and was
applauded. Graham Barr wondered if pack should also allow for packing
to 'native' types, which wouldn't have to worry about
endian issues. Peter thought that would be a good idea. Nicholas
Clark pointed out that extending the code to cope with unsigned
integers would be a good idea, too.
http://groups.google.com/groups
Lexicals
Jürgen Bömmels asked a pile of questions about the implementation of lexical variables and how one could use them to make a closure. Jonathan Sillito provided a mixture of answers and guesses. It seems that we're waiting on Dan to firm up some things about lexicals.
http://groups.google.com/groups
IMCC 0.0.9 Runs 100% Perl 6 Tests + Various Results
Leopold Toetsch has been working on getting IMCC to generate parrot
bytecode directly rather than going through a stage of generating an
intermediate .pasm file, and had been having some problems with
'writing out the .pbc, especially Const_Table, type PFC_KEY /
PARROT_ARG_SC'. Two hours later, he announced that he had all the perl6
tests running successfully within IMCC, but only if GC was turned off
(there are problems with the longer running tests when GC is turned
on). Things get progressively worse as first JIT, and then
Predereferencing are turned on.
Dan wondered what the GC bug could be. Leo wasn't sure but posted some possible pointers. Peter Gibbs thought that at least one of the bugs was in continuation.pmc and posted a patch that fixed one of the problems when running under parrot. Meanwhile, Leo tracked down the bug to a bit of code that he'd appropriated from debug.c, so he fixed his IMCC and sent in a patch to fix debug.c as well. Applying both patches meant that the tests all passed under both IMCC and parrot.
Dan applied both patches.
Leo later fixed his problem with writing out a .pbc file directly from IMCC, and offered a patch to packout.c which he described as ugly, but working.
I think Mr Toetsch is going go get my 'kudos' award for this week as he later patched things to make the 'predereferenced' run mode work again (all perl6 tests pass when run with -P). By the way, there appears to be no reference to 'predereferenced' in the glossary.
http://groups.google.com/groups -- Problem
http://groups.google.com/groups -- Qualified success
http://rt.perl.org/rt2/Ticket/Display.html

