The Perl Summary for the week ending 20021222
Hello, good morning and welcome to the Christmas edition of the Perl 6
summary. For some reason I have convinced myself to sit here on
Christmas Eve writing a summary for all you crazy kids out there who
hang on my every word. Plus, it beats wrapping all the presents and last
minute panic shopping.
So, let's get perl6-internals out of the way first.
The Road to 0.0.9
The first half of the week saw a feature freeze in the run up to the
release of Parrot 0.0.9, so people spent their time trying to track down
and fix various tinderbox issues and other bugs.
Steve Fink worked on trying to get the NCI (Native Call Interface) tests
to work properly.
Simon Glover and Leo T�tsch worked on tracking down a GC bug that was
causing problems for the scratchpad tests.
Andy Dougherty is having problems getting languages/perl6 to pass its
tests. Apparently part of the problem is that the undef function isn't
fully defined.
Andy also found problems with sprintf and 64 bit INTVALs (fixed by Brent
Dax), PMCs and 64 bit INTVALs (fixed by Leo T�tsch), PerlHashes and
gcc-2.95.3 and 2.8.1 on Solaris (confirmed as a problem with other
versions of gcc on Solaris by Joshua Hoblitt), dependency issues between
Jako and IMCC from a clean directory and problems with the Jako life
implementation.
Bruce Gray sent a pile of fixes for Win32 systems, covering GC and build
problems.
Compiling to ParrotVM
Klaas-Jan Stol is thinking of writing a compiler that targets Parrot for
his Bachelor's in Computer Science, probably a TCL compiler, and he
asked for suggestions and tips.
David Robins made a few suggestions and pointed out that parrot is a
moving target. Dan protested that it wasn't moving that much ("If I
'adn't nailed it to the perch, it'd've muscled up to them bars and...
VOOM!") and said that he thought a TCL to Parrot compiler would be
great. Will Coleda put up a URL for his first pass at such a beast and
asked that we be gentle with him (he put up a URL for his second pass
later, which is the link below). Gopal V pointed out that IMCC may be a
better target than Parrot assembly as that took care of register
allocation and generally helped programmers retain their hair and also
suggested that, if the compiler was written in C then DotGNU's TreeCC
would be worth looking at. Tanton Gibbs, who is working on a C++
compiler agreed that TreeCC is 'an extremely nice system' that he
recommended highly.
http://makeashorterlink.com/?T27042FD2
http://www.coleda.com/users/coke/parrot/
http://makeashorterlink.com/?H2CF62ED2
Register scanning
Apologizing for reopening the register scanning can of worms, Steve Fink
wondered about the requirement that all Parrot GC implementations scan
all hardware registers for live pointers. Apparently this is a real
problem with, for example, the IA64 architecture. He proposed that
configure probe for systems that would support register scanning GC, but
that the default implementation should use a 'registration' system. He
followed this up with a 'naive' implementation of such a system. Jason
Gloudon suggested another scheme that I'm afraid I didn't understand to
implement 'accurate' GC.
http://makeashorterlink.com/?L2DF41ED2
http://makeashorterlink.com/?T1EF22ED2
Returning a new PMC from ops
David Robins wondered about the cleanest way to return a new PMC from an
op. He and Leo T�tsch thrashed it out.
http://makeashorterlink.com/?K1FF62ED2
Parrot v0.0.9 "Nazgul" released
Steve Fink announced the release of Parrot version 0.0.9, aka "Nazgul"
complete with a long list of new features, and the usual call for
further assistance. Well done everyone. As Steve says, Parrot is getting
dangerously close to being really usable...
http://makeashorterlink.com/?X10022FD2
http://makeashorterlink.com/?C51024FD2
Meanwhile, in perl6-language
It was quiet... too quiet. Only 48 messages in perl6-language, maybe
we're all keeping quiet so as not to distract Larry from writing the
next Apocalypse.
Comparing Object Identity
This thread (along with every other thread in the language list this
week) continued from last week. Dan pointed out that using long lived
object IDs (ie. unique for all time) would be expensive, and reckoned
that the basic approach should be fast and good enough for the common
case. Piers Cawley wondered if doing object 'identity' comparison with a
method (eg: "$obj.is($other_obj);") wasn't actually the best way
forward. (Piers had been applying his OO rule of thumb -- if you're not
sure of how to do something, take a look at a Smalltalk image). Dave
Whipp proposed an adverb syntax ("$a eq : ID $b") which would be
generalizable:
$a eq:i $b # compare, case insensitive
$a eq:w $b # compare, ignoring whitespace differences
$a eq:ID $b # are they the same object?
Which Austin Hastings (at least) liked.
http://makeashorterlink.com/?B22032FD2
Everything is an object
Piers Cawley and Dave Storrs went back and forth a few times about left
to right and right to left 'pipelines' in Perl 6. Piers was arguing that
Perl5ish right to left pipelines ("@out = grep rx/.../, map {...} @in"
should work without any extra syntax in Perl 6 and would be happy if
that meant the only support for left to right pipelines was "@out =
@in.map({...}).grep(rx/.../)". Dave agreed with Piers about right to
left pipelines, but wants a less ugly left to right syntax. Both of them
would like to see an 'official' Collection hierarchy, which led Simon
Cozens to suggest that we're getting close to inventing Ruby. Andy
Wardley didn't think this was a bad thing, and Dan pointed out that
actually we're getting closer to inventing Smalltalk, which was fine, so
long as we don't end up inventing Lisp.
Dan Sugalski isn't sure about the value of a special syntax for left to
right pipelining and, after a certain amount of back and forth provided
a really good summary of why.
After that I get the impression that we're getting a little bogged down.
Everyone's stated and restated their position and I'm not entirely sure
that we're moving forward. It's probably time to appeal to Larry, but
he's busy writing an Apocalypse and doing the Christmas thing.
http://makeashorterlink.com/?N53025FD2
http://makeashorterlink.com/?C34026FD2
Is it required to use type declarations
The week before, Dave Storrs mentioned that he was worried that Perl 6
was moving further and further away from Perl 5's (almost) typelessness
and wondered if type declarations would be required in Perl 6. Piers
Cawley pointed out that there's a difference between typed variables and
typed values, argued that typed values were the most useful. He then
gave a rundown of where he saw utility in declaring variable types with
the 'safety' issue way down at the bottom (of the three entry list, it'd
be lower down if I could think of any other reasons though).
http://makeashorterlink.com/?W25041FD2
In Brief
A discussion of Leon Brocard's Curses Life turned into a discussion of
the merits of 'caller saves' calling conventions. Leo T�tsch thinks it's
suboptimal, Piers Cawley doesn't, pointing out that there will always be
cases where one style loses, but that caller saves makes tail call
optimization and continuations a good deal easier to implement.
Jerome Quelin upgraded his befunge interpreter giving it a big version
number bump to 0.1.0 from 0.07 because he's now using an array of
PerlArrays instead of an array of strings.
Leo T�tsch continued down the road towards unifying buffers and PMCs.
(Which covers a lot of ground in one sentence...).
Jason Gloudon fixed a bug with PARROT_GC_DEBUG
Who's Who in Perl 6
I've been getting a few 'strange' entries in the questionnaire inbox
recently from names I don't recognize so I've decided to summarize the
answers:
Who are you?
I know this will come to you as a surprise and I do not wish to
impose upon you, but I am Doctor Fred Mbogo, the only son of the
former minister of the Nigerian treasury, Kevin Mbogo.
What do you do for/with Perl 6
Gather MILLIONS of ADDRESSES for you to deliver your email AD to so
many People at such a low cost!!!
Where are you coming from?
Nigeria
When do you think Perl 6 will be released?
WHILE stocks LAST!
Why are you doing this?
Because l wish to solicit for you assistance in a transaction which
l strongly believe will be of mutual benefit to both of us.
You have 5 words. Describe yourself
Red Hot Lolitas for you!
Do you have anything to declare?
This message isn't spam. Honestly. Really. If you don't believe me
send mail to addresstrap at scum-sucking-spammer dot com and I'll
send you lots more mail that isn't spam.
Acknowledgements
Well, Christmas is coming, the goose is getting fat so, for once this
didn't get written on a train. It got written sat in a comfortable chair
with the ginger ninjas (our two new kittens, Sully & Mike) tearing up
the place.
I'd like to say a big "Go disembowel yourselves over a red hot brazier
you worthless pustules on the backside of humanity" to the folks who
spam the questionnaire mailbox with pointers to photos of naked 12 year
olds, stock tips and offers of a share of millions of dollars of fairy
gold. Seriously folks, Christmas is a season of Peace and good will to
all men so, do the world a favour and remove yourselves from it.
Ahem. Merry Christmas to everyone else, have a great holiday.
Proofreading was done by the ever lovely Aspell and the ever ugly Piers
Cawley. Between them, they probably screwed it up again.
If you're not a pustule on the backside of humanity, please consider
answering the questionnaire and sending it to <mailto:[EMAIL PROTECTED]>.
If you didn't like this summary, what are you doing still reading it? If
you did like it, 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 6.
* Get involved in the Perl 6 process. The mailing lists are open to
all (except the aforementioned pustules).
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 and/or a household robot to do the
chores (we're in the future now, everyone should have robots) to
<mailto:[EMAIL PROTECTED]>
The fee paid for publication of these summaries on perl.com is paid
directly to the Perl Foundation.