The Perl 6 Summary for the week ending 20030907
Welcome to the last Perl 6 summary of my 35th year. Next week's summary
will (in theory) be written on my 36th birthday (a year of being square,
so no change there then). I'll give you fair warning that it might be
late, though it probably won't. Newcastle University has, in its
infinite wisdom decided to have its students enrolling on that day so
Gill will be off up to Newcastle to register leaving me at home with
nothing to do but keep the house tidy in case a buyer wants to come and
look at it, so sitting in one place with a laptop writing a summary
seems like a good strategy.
As last week's 'world turned upside down' approach of starting with
perl6-language was such a success we'll do the same again this week.
The language list gets some traffic shock!
Jonadab the Unsightly One replied to Abhijit A. Mahabal's message from
the first of August concerning junctions and set theory.
http://xrl.us/sm6
Meanwhile, on perl6-internals
Serialization is Hard!
Last week's discussion of serialization sparked off by Leopold T�tsch's
suggestion of a "vtable->dump" mode *really* got into its stride this
week. It turns out that getting this right is a Hard Problem in the
presence of threads.
Dan's plan for serialization involves using the GC's object graph walker
to work out what to serialize when you tell Parrot to dump a PMC. Leo
worried that this would essentially stop the garbage collector running
during serialization which could be tricky if the serialization process
tried to allocate any memory.
Dan and Leo ended up in a protracted, but polite, argument about
details.
At about 45 entries into the thread, Leo produced a summary of the
various options and issues associated with them.
http://xrl.us/sm7
http://xrl.us/sm8 -- Leo's summary
File Spec
Leo T�tsch commented on Vladimir Lipskiy's implementation of a
File::Spec like tool for Parrot. (File::Spec is Perl's tool for dealing
with filenames and paths in a platform independent fashion). Michael
Schwern pointed at Ken Williams' "excellent Path::Class module which
gives you actual file and directory objects" which he reckons has a much
better interface than File::Spec.
http://xrl.us/sm9
Notifications
Gordon Henriksen posted a great discussion of using notifications to
implement weakrefs. Rather wonderfully he used the notification system
itself as a good example of why dying object notifications were a good
idea.
http://xrl.us/sna
Parrot 100% GNU .NET
Danger. Here be Licensing Issues. I don't do Licensing issues.
The main thrust of the discussion was what kind of library would ship
with Parrot. Dan's answer is worth reading, if only for the "That's a
swamp I don't have enough castles for" line.
http://xrl.us/snb
http://xrl.us/snc -- Dan's take on the library
You are in a maze of keyed variants, all similar
This seems to have been a week in which Dan and Leo spent a good deal of
their time politely disagreeing with each other. This time they were
disagreeing about the need for all the keyed variants of Parrot's
opcodes.
Dan outlined the reasoning behind demanding keyed variants of every
operation in a PMC's vtable (Executive summary: A combination of speed
and space reasons). Leo still doesn't seem convinced but, for now,
Pumpking trumps Patch monster.
http://xrl.us/snd
Parrot Z-machine
Amir Karger's post from last week about implementing the Z-machine (the
VM that runs Infocom and other text adventures) got de-Warnocked this
week. Nicholas Clark explained that doing the Z-machine 'properly' would
require some bits of Parrot that weren't actually there yet,
specifically dynamic opcode loading and dynamic bytecode conversion.
This led to a discussion of how to get those things implemented.
http://xrl.us/rtr
PIO Questions
Benjamin Goldberg posted a long list of issues and suggestions about
handling character type and encoding on Parrot IO objects. J�rgen B�mels
said that there were indeed issues, that he'd be dealing with them as
tuits allowed and that patches are welcome.
http://xrl.us/sne
How to dynamically add a method to a class
Joseph Ryan had asked how to add a method to a class at runtime. Dan
explained what was supposed to happen (each class has a 'backing
namespace' associated with it which contained all the class's methods).
Leo asked for a few details about how that would look in Parrot
assembly.
A little later, Joseph reported what appeared to be a bug in the way
IMCC handles ".namespace". It appears that IMCC is working as designed,
the question is whether the design is doing the Right Thing.
http://xrl.us/snf
http://xrl.us/sng
Proposed amendment to chartype structure
Peter Gibbs is working on adding support for additional chartypes to
Parrot, along with support for dynamic loading of the same. He outlined
how he planned to do it. Dan liked the idea and Peter set off to
implement it.
http://xrl.us/snh
Acknowledgements, Announcements, Apologies
First up, a combined apology and announcement. Mitchell Charity nudged
me to remind me about Mike Scott's wonderful Getting Started with Parrot
Guide/Wiki at http://xrl.us/sml which is wonderful and should be
checked out immediately. Bravo Mike, sorry it's taken so long to get
round to mentioning it in the summary.
Hopefully next week I'll have some info from the Perl Foundation about
their Parrot related grants. Gav Estey gave me the details in an AIM
conversation which I foolishly didn't log.
Apologies to everyone for spelling 'seven years and two days' as 'seven
and 2 days' last week. I would fire my proofreader, but then there would
be nobody to write the summary.
ObLeonBrocard: Leon didn't say anything this week. As per usual.
My weblog has a shiny new URL this week. No new content (yet), but you
can admire the old stuff at http://www.bofh.org.uk:8080/.
As ever, if you've appreciated this summary, please consider one or more
of the following options:
* Send money to the Perl Foundation at
http://donate.perl-foundation.org/ and help support the ongoing
development of Perl.
* Get involved in the Perl 6 process. The mailing lists are open to
all. http://dev.perl.org/perl6/ and http://www.parrotcode.org/
are good starting points with links to the appropriate mailing
lists.
* Send feedback, flames, money, requests for consultancy, photographic
and writing commissions, or a lovely birthday present to
[EMAIL PROTECTED]