The Perl 6 Summary for the fortnight ending 2004-08-20
Harrumph. Note to self; never miss a week when you could actually have
written the summary. I lulled myself into a false sense of security with
the quiet week for the last summary. The last two weeks have been rather
more busy and I've been away at EuroFoo over the weekend.
So, this fortnight's summary might be a bit sketchy.
We're back with starting with perl6-internals this time as it continues
to comfortably out traffic perl6-language (message count was running
about 3:1 in favour of p6i).
Register allocation
Work continued apace on adding a bullet proof failsafe register spilling
algorithm so that Dan's work project could be made to at least compile.
There was much discussion of what was actually causing the problem and
several attempts to fix it. Work is ongoing.
Melvin Smith coined a new acronym: DSWEPIC, which stands for Dan Stop
Writing Evil Pathological Intermediate Code though, as chromatic pointed
out, it's actually Dan's compiler that's generating Evil Pathological
code and Dan claimed that that's because he's writing a compiler for an
Evil Pathological language.
http://xrl.us/cub5
Parrot cvs mirrored with svk
Chia-liang Kao announced that he (I'm guessing, I'm not very good at
divining the gender of none western names. Sadly 'he' is usually a safe
bet in this field though) was mirroring the Parrot CVS repository in a
Subversion repository for those who didn't like CVS. There was a certain
amount of chuntering but most people seemed pleased by this.
http://xrl.us/cub7
The Pie-thon post-mortem
Dan posted his notes on the aftermath of the pie-thon push. Next time we
do this, we'll start earlier.
http://xrl.us/cub8
An alternate call scheme
Dan ruled on Leo's alternate call scheme proposal, but wasn't entirely
comfortable with it. However, he sketched out another idea inspired by
it. Leo didn't sound convinced.
http://xrl.us/cub9
Source mangling slides
Dan posted a link to an abortive talk on some of the cunning tricks we
do with source mangling in Parrot.
http://xrl.us/cuca
http://xrl.us/cucb
Making NCI work with a nasty library
Hildo Biersma is trying to write parrot support for IBM's MQ library. He
had a couple of questions about the best way to go about it. Leo and
chromatic had some suggestions.
http://xrl.us/cucc
Functions for embedders to override
Noting that Ponie was already have problems, Dan outlined those
functions that embedding environments may need to override to get things
working. He asked for help and comments in getting a system in place to
allow overriding functions to be registered in order to give embedders
control over parrot's interface to the real world. This is something
which needs doing sooner rather than later so as to avoid storing up
pain.
This triggered a fairly wide ranging discussion, but progress is being
made.
http://xrl.us/cucd
What Unicode means to us
Mmm... Unicode. Dan outlined what need to deal with to do Unicode
sufficiently well. Discussion ensued.
http://xrl.us/cuce
Fix generation of src/nci.c to be more efficient
I don't normally point out patches, but Dan's patch to improve the
generation of src/nci.c spawned a longish thread with commentary from
Nicholas Clark and chromatic.
http://xrl.us/cucf
A small task for the interested
Dan posted another of his small tasks for the interested (maybe we
should start calling them STFTIs?). This time he's after source tests to
test the embedding interface and some fixing of the auto-prefix scheme.
http://xrl.us/cucg
The encoding API
Dan detailed the encoding API, the layer that mediates between Parrot,
which sees strings as a sequence of codepoints and the underlying buffer
full of bytes. Gopal V and Michael Stone had questions and suggestions.
http://xrl.us/cuch
COBOL on Parrot?
Remember Dan pointed everyone at a GPL'd COBOL compiler and suggested
that a Parrot backend would be cool? David Essex (if that's the British
singer from the 70s then I'll be boggling like a good 'un) pointed
everyone at a couple of others. He and Uri Guttman discussed runtime
libraries.
http://xrl.us/cuci
The Perl 6 compiler pumpking
Patrick Michaud, Perl 6 compiler pumpking, outlined his plan for getting
us to a working Perl 6 compiler.
http://xrl.us/cucj
PMC semantics
Leo kicked off what looks like being a long running thread when he
opened discussion of the semantics of the various integerish PMCs in
Parrot. Larry and Dan both pitched in with discussion.
http://xrl.us/cuck
Charset API
Dan posted part two of the charset API, which confused me slightly by
arriving on my computer before Part 1.
http://xrl.us/cucm -- Part 1
http://xrl.us/cucn -- Part 2
Handling block parameters in Ruby
Mark Sparshatt asked for advice on how to handle method invocations that
include special block parameters like Ruby's. Leo thought that handling
it in the parser/compiler and simply passing the block in as an extra
parameter was the best way forward. Larry and Dan discussed
complications associated with that idea.
http://xrl.us/cuco
Parakeet breaks and recovers
Michel Pelletier updated his Parrot distribution and managed to kill his
Parakeet language. Dan and Leo set about trying to track the underlying
bug down. I presume it got fixed because Michel posted a new version of
Parakeet soon after.
http://xrl.us/cucp
http://xrl.us/cucq
NCI and callback functions
Stephane Peiry had some problems getting NCI callbacks working with GTK.
He and Leo went tried the debugging by email trick, but with little joy
before the end of the week.
http://xrl.us/cucr
TODOs added
Will Coleda added a vast number of TODO items to Parrot's RT queue.
His TODO about the configuration system sparked a good deal of
discussion. At least one person suggested ditching "make", which seems
to be par for the course in these kinds of discussions.
http://xrl.us/cucs
http://xrl.us/cuct
Popping an empty array
Michel Pelletier wondered how to generate a catchable exception when he
tried to "pop" from an empty PerlArray. Larry reckoned that, if it's
really a PerlArray it should return an undef containing an unthrown
exception. Which sparked a longish discussion...
http://xrl.us/cucu
Parrot interfaces
Noticing that there appeared to be ops for handling interfaces, Michel
Pelletier wondered when we might see an implementation or PDD covering
their semantics. Our resident roles guy, chromatic, pointed out that
Parrot will actually have roles, which can look like interfaces in the
right light and pointed at Apocalypse 12 for more in the way of detail.
Later on, Dan sketched out an initial interface spec. Parrot level
interfaces are very simple indeed.
http://xrl.us/cucv
http://xrl.us/cucw
Interpreter permissioning
Felix Gallo sought input on the problem of interpreter permissioning. He
got lots.
http://xrl.us/cucx
What?
Dan Sugalski is a very, very bad man. Sure, he gets a good deal of
mitigation from Parrot working as well as it does, but... well... Multi
Method Dispatch on return continuations is sick, evil, and a strangely
fascinating idea.
http://xrl.us/cucy
Span praise
Dan's been catching up with his mail and popped his head up to say nice
things about Span, a very pleasant looking OO language based around
Parrot.
http://xrl.us/cucz
Incremental garbage collection
Leo's working on implementing an incremental garbage collector for
Parrot. The idea behind it is to reduce the amount of time the GC system
spends with the world stopped. The response was generally positive, with
discussion of potential edge cases.
http://xrl.us/cuc2
http://xrl.us/cuc3
GC/DOD API
Whee, a subject that's all acronym. That's Garbage Collection/Dead
Object Detection Application Programming Interface for those of you who
are bemused by the alphabet soup.
Dan pointed out that, before we get a fully reworked garbage collection
system in place, it would be a good idea to get the API designed and
documented.
http://xrl.us/cuc4
Meanwhile, in perl6-language
Revision of Apocalypse 12's lookahead notions
Larry posted a a message resolving issues with method lookahead and
adverb parsing. And there was much discussion and clarification. Expect
to see the results in Synopsis 12 when it gets written.
http://xrl.us/cuc5
Handling block parameters in Ruby
Matt Diephouse spawned a subthread from the A12 lookahead discussion by
wondering how Perl 6 will handle multiple blocks as arguments. Larry had
some thoughts.
http://xrl.us/cuc6
Precedence table update
Larry posted a newly tweaked Perl 6 operator precedence table. If you're
one of those chaps who thinks Perl has too much syntax look away (or
point and laugh depending on your persuasion) now.
Various oversights were quickly spotted and fixed up.
http://xrl.us/cuc7
Synopses drafts
Larry posted the first draft of Synopses 1, 2 and 4 the condensed,
updated, versions of their respective apocalypses. The list did the
usual proofreading/patching thing.
http://xrl.us/cuc8
http://xrl.us/cuc9
http://xrl.us/cuda
Return with no expression
Matt Diephouse found something surprising in Perl 5's handling of a
return with no arguments and wondered if Perl 6 would magically solve
his problem. Luke thinks it'll do the right thing by making the right
hand side of a "=>" evaluate in a scalar context.
http://xrl.us/cudb
"<->" as "->" with automatic "is rw"
Juerd scared me by proposing that "<->" be the equivalent of "->" with
an implicit "is rw". Larry declared "It's really sick, and cute, and I
love it." but thought that there might already be too many ways to
declare a sub.
http://xrl.us/cudc
Announcements, Apologies, Acknowledgements
Phew! I think I got this finished just before 'press' time for perl.com.
Or maybe not.
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 feedback or contributions to a
'getting Piers to OSCON 2005' fund to mailto:[EMAIL PROTECTED]
http://donate.perl-foundation.org/ -- The Perl Foundation
http://dev.perl.org/perl6/ -- Perl 6 Development site
Oh yes, there's new content on my website for the first time in an age.
Enjoy.
http://www.bofh.org.uk/