The Perl 6 Summary for the week ending 20030309
Ooh look, it's another of those Perl 6 Summaries where Piers tries to
work a gratuitous reference to Leon Brocard into a summary of what's
been happening to the Perl 6 development process this week.
As tradition dictates, we'll start with all the action from
perl6-internals.
Object Specs
With his great good taste and impeccable timing, Dan Sugalski managed to
release his second draft of an Object spec at 22.27 GMT on Sunday March
the second. Which meant that, strictly, the root message of this thread
doesn't belong in this summary. To which I say 'Tosh!'
Brent Dax wondered how this spec coped with classless OO languages like
JavaScript and whether such languages would have to fake things with
anonymous classes. It seems that faking it is going to the 'right' way.
Erik Bagfors asked for a clear example of the difference between
attributes and properties, and between class and object variables. Dan
didn't actually offer an example, but explained that properties are
'runtime assigned name values pairs that are stuck on a variable', while
attributes 'correspond to instance variables or slots in other object
systems'.
Dave Whipp wondered about the semantics of creation and destruction of
objects with a long list of questions. Dan replied that there was a
'Class Spec' forthcoming at some point too. The Object spec concerns
itself with 'just the behaviour of objects that already exist'.
Some further discussion of this happened in perl6-language, but Dan
dragged it back into perl6-internals. I shall follow his example by
summarizing those subthreads here, whilst muttering rude words under my
breath about people make a poor summarizer's life so hard.
Garrett Goebel (not G�bel, as I mistakenly spelt it last week) wondered
about serialization and persistence and wondered whether a 'pure Parrot'
serialization scheme would be possible, allowing one to serialize Perl,
Python, Ruby etc objects at the Parrot level. Dan pointed out that there
were "freeze" and "thaw" vtable entries for PMCs, and said that he had
some 'sketches of necessary core functionality to make it feasible'. It
looks like simple 'data objects' will be simple to serialize at the
parrot level.
Sam Vilain suggested a whole bunch of extra things to be associated with
Objects. Dan noted that all of Sam's suggestions were actually things
that belonged with Classes rather than objects, with the exception of
what Sam referred to as 'associations'. Garret asked for some
clarification of what Sam was talking about, tying it to something Sam
had said in perl6-language about 'exporting object relationships in a
sensible and consistent manner', so Sam did a brain dump which outlined
a scheme for persisting almost anything in a language neutral manner
(requiring more or less complicity on the part of some languages) with
loads of neat ideas in it. Dan liked the ideas, but isn't going to go
the whole way (probably). Dan also implied that Parrot's
serialize/deserialize methods would make use of the GC system to make
sure that everything gets dumped properly, once and only once, solving
the problem of cyclic references (YAY! An OO Persistence tool writer
writes).
Dan released the next iteration of his tentative object spec on Sunday
(but a little earlier this time). He and Uri Guttman spent the rest of
the day thrashing out some issues and clarifying some terminology. Dan
is threatening a glossary with the next try at an object spec.
(Dan just suggested on IRC that I summarize these threads as 'Dan
muttered incoherently about objects again. Folks generally humored him.'
Which I would never do of course; I'm English and I know how to spell
'humour'.)
<http://makeashorterlink.com/?L22455AA3> -- Object spec (try 2)
<http://makeashorterlink.com/?M2A2623C3> -- Garrett's first question
<http://makeashorterlink.com/?M2B2323C3> -- Sam Vilain's suggestions
<http://makeashorterlink.com/?P2C2323C3> -- Garrett asks for clarity
<http://makeashorterlink.com/?W2D2523C3> -- Sam's brain dump.
<http://makeashorterlink.com/?S1E2213C3> -- Object Spec (try 3)
IMCC and multiple source files
K Stol wondered whether it was possible to write multi-file IMCC
programs. Leopold T�tsch answered that, whilst there's no Parrot linker
as yet, but by the time we read his post we could use the ".include"
macro to glue source files together.
<http://makeashorterlink.com/?A5F2213C3>
Patch Roundup
Jason Gloudon added some more ops to the sun4 JIT core. His patch was
applied, along with most of Steve Peters' patches from last week. J�rgen
B�mmels patched the print ops to use pure PIO (Parrot IO) rather than a
scary stdio/PIO hybrid. Dan applied this one with alacrity (I don't
think he likes stdio).
Coroutines end and DFG
Leo T�tsch wondered if coroutines ended and if they did, how? Leo noted
that coroutines caused IMCC some big headaches with register allocation.
Jonathan Sillito replied saying that coroutines were never ending and
pointed out that each coroutine has its own user stack which means that
"saveall" and "restoreall" do the right thing, which wasn't quite what
gives IMCC headaches because you can't pass arguments in the stack and
have to rely on lexicals or globals, which apparently means that IMCC
will need some new hints to work out what's happening.
Nobody explained what DFG stands for.
<http://makeashorterlink.com/?P203323C3>
SableVM
Tupshin pointed everyone at SableVM 'an interesting Java VM done as a
doctoral thesis'. Leo found some of the optimization techniques in the
thesis interesting. Which scares me.
<http://makeashorterlink.com/?R213523C3>
<http://www.sablevm.org/> -- SableVM
<http://makeashorterlink.com/?T223623C3> -- SableVM Thesis
Parrot 0.0.10 freeze
Steve Fink announced the feature freeze before release 0.0.10. Parrot is
now frozen prior to the 0.0.10 release on March 15th.
<http://makeashorterlink.com/?E133153C3>
Meanwhile, over in perl6-language
The object discussion leaked over from perl6-internals, I'll cover the
language relevant parts here. Dave Whipp had some interesting things to
say about Associations in response to one of Sam Vilain's posts that I
covered in perl6-internals and Andy Wardley offered a counter argument.
There was a fair amount of discussion about the advisability of Multiple
Inheritance (which can be summed up as "we don't have to like it but we
probably have to do it".) Andy Wardley proposed stealing Ruby's Mixins
and Simon Cozens came up with a nifty Perl6-o-meter which Larry pointed
out was rather more general than Simon intended.
<http://makeashorterlink.com/?B543423C3>
<http://makeashorterlink.com/?Q653213C3>
Signal/slot like mechanism
Yannick Le Saint wondered if there was a notification mechanism planned
for Perl 6. Luke Palmer offered a simple implementation which wasn't
quite what Yannick was after which looks like it might possibly need
modifications to the 'Class' Class. Dan pointed noted that there would
almost certainly be a mechanism for registering watcher subs with the
internals ("Yay!" writes an insane summarizer with a penchant for
digging around in Perl's runtime internals...).
<http://makeashorterlink.com/?E263523C3>
Acknowledgements, Announcements and Apologies
Another quiet week. However, as I write this Apocalypse 6 is available
to read on perl.com and Dan is making noises on IRC about the next draft
of the object spec being released some time before Sunday. I have the
feeling that next week's summary will be covering a lot more traffic.
Still haven't produced an American Odyssey web page. I've been too busy
taking photographs and relearning how to use my large format camera.
If you 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, job offers or an extension back for an
Ebony 45S to [EMAIL PROTECTED]
This week's summary was again sponsored by Darren Duncan. Thanks Darren.
If you'd like to become a summary sponsor, drop me a line at
[EMAIL PROTECTED]
--
Piers