Front page | perl.perl6.language |
Postings from February 2004
This week's summary
From: The Perl 6 Summarizer
February 3, 2004 10:17
This week's summary
Message ID: email@example.com
The Perl 6 Summary for the week ending 20040201
Welcome once again to Gateshead, where the skies are grey, the view is
uninspiring, and the workmen across the road seem determined to fall off
the ladder before they get the double glazing fitted.
But enough of the gay Gateshead life, let's hurry on to the doings of
the denizens of the perl6-internals mailing list. Who knows, we might
even visit the inmates of perl6-language later.
To nobody's great surprise, we talked about threading. In particular,
Gordon Henriksen's concerns about the all around scariness of "morph"
(and not just in a threading context). I'm not sure I quite understand
what's being done, but progress is definitely being made.
Late in the week Dan announced that there were obviously still issues to
be worked out before we started in on implementation (modulo some
'obvious' stuff). He also asked for 'real worldish' tests for threading
in order to get some real numbers for different possible approaches and
to see if the problem is as bad as it was first thought.
Embedding vs. extending interface types
Remember last week's kerfuffle about "Parrot_Interp" vs "Parrot_INTERP"?
Dan's resolved it be deciding that we'll just call it "Parrot_Interp"
everywhere. Gordon Henriksen sent in the patch.
Will Coleda (and others) have been having problems with data that should
be inviolate getting clobbered in strange ways. After some effort, Will
got his offending code down to 22 lines. This let Leo Tötsch work out
what was going on, and in the referenced post he explained all.
Essentially, the Copy on Write logic for handling register (and other)
stacks is broken. The workaround is not to use Continuations and
Exception Handlers. Fixes are welcome. Please.
Testing Signal Handlers
Leo asked for help with sorting out the testing code for some signal
handling tests that seemed to be confusing the harness quite badly. Uri
Guttman came up with some suggested workarounds, as did Mike Schwern.
Leo found a third way. (If you've ever tried to write test with "fork"
in it, it's worth taking a look at both Uri and Schwern's answers.
The costs of sharing revisited
Last week, Leo posted some scary numbers implying that using a shared
PMC led to terrible slowdowns. This week he posted the latest numbers,
and things are looking up.
$ time perl-58-th shared_ref.pl
$ time parrot shared_ref.pasm
(and that's an unoptimized Parrot). Elizabeth Mattijsen was moved to ask
for a ponie.
Cunning stunts with with UnManagedStruct
Donning his devious head, Leo demonstrated the use of UnManagedStruct to
allow for unlimited self-inspection and self-modification of Parrot
state. Which isn't really something we want to be possible. In the
opinion of Luke Palmer and Jeff Clites, the costs of removing this
capability aren't worth paying. As Jeff Clites pointed out, you only use
UnManagedStructs when you're calling out to a native library, and once
you introduce a native library all bets are already off.
Michael Scott: hero of the week
Over the past few weeks Michael Scott has gradually been making the
parrot distribution a kinder, gentler place with his sterling efforts to
tidy up and generally improve the existing documentation. This week he
rationalized/added documentation for everything in src/ (with the
exception of malloc.c and malloc-trace.c). He's working on documenting
The response to his announcement was overwhelmingly and understandably
positive (The consensus is that Mike rocks). Now if we can just *keep*
everything in such good condition...
Parrot DBDI announced
Tim "Perl DBI" Bunce announced the Parrot DBDI Project: A Database
Driver Interface for Parrot. The goal is to have a common Parrot level
interface to database drivers which can then be reused by different
language specific database interfaces. For further details read the
post; it's jolly good. And bravo Tim.
Internal exception handlers
Leo posted a set of macros for doing exception handling in the parrot
core using "TRY/CATCH/THROW" etc. and asked for comments. So far he's
After Leo fixed the struct PMCs for him, chromatic has proceeded apace
to implement SDL wrappers in Parrot. He's reached the point where he has
code that can create an SDL window and blit a blue rectangle onto it.
Leo applied his patches. Check out examples/pni/sdl_blue_rectangle.imc
if you're interested.
Meanwhile, in perl6-language
Discussions continued to test the encode setups of the participants'
Semantics of vector operations
A sub-thread of the discussion of the semantics of vector operations
turned into a discussion of the meaning of 'vector' which has different
meanings depending on whether you're a mathematician or Seymour Cray.
Another sub-thread discussed the possible ASCII alternatives for "«"
and "»". I'm afraid I'm going to bottle out of attempting to summarize
the various alternatives suggested, if only because I used up all my POD
escape-fu last week. It looks like the "<<" and ">>" alternatives might
be about to bite the dust in favour of an as yet undecided, less
ambiguous, new scheme. Larry hasn't ruled on it yet though.
Acknowledgements, Apologies, Announcements
I'd just like to announce that, if you haven't seen Eliza Carthy perform
life, you owe it to yourself to rectify that. We went to see her last
night and it's bucked me up enormously.
If you find these summaries useful or enjoyable, please consider
contributing to the Perl Foundation to help support the development of
Perl. You might also like to send me feedback at
firstname.lastname@example.org, or drop by my website.
<http://donate.perl-foundation.org/> -- The Perl Foundation
<http://dev.perl.org/perl6/> -- Perl 6 Development site
<http://www.bofh.org.uk/> -- My website, "Just a Summary"