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.
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!'
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
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://groups.google.com/groups -- Object spec (try 2)
http://groups.google.com/groups -- Garrett's first question
http://groups.google.com/groups -- Sam Vilain's suggestions
http://groups.google.com/groups -- Garrett asks for clarity
http://groups.google.com/groups -- Sam's brain dump.
http://groups.google.com/groups -- Object Spec (try 3)
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.
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).
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
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
Nobody explained what DFG stands for.
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://www.sablevm.org/ -- SableVM
http://www.info.uqam.ca/%7Eegagnon/gagnon-phd.pdf -- SableVM Thesis
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.
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.
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...).
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@example.com
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 firstname.lastname@example.org.