The Perl 6 summary for the week ending 2006-02-12
Welcome to part one of this week's summary. Owning to chronic problems
with deadlines I've only got time to summarize perl6-compiler and
perl6-internals tonight; I'll do perl6-language when I get back from
$paying_job on Thursday night.
You shall just have to contain your excitement 'til then.
This week in perl6-compiler
Tokenizer hints, supporting delimited identifiers or symbols
Darren Duncan said that he'd like for there to be a simple and terse way
for Perl 6 identifiers or symbols to be able to composed of any
characters whatsoever (even whitespace). After all, it's allowed in lots
of other languages (including, although Darren didn't mention it, Perl 5
-- consider "${"var with spaces"} = 'foo'" if you don't believe me.
Lexical vars are a wee bit trickier).
I turns out that, as Larry said "$::<You can already do that!>;", which
is nice. It turns out there's quite a few ways of doing it and Larry
discussed them all.
<http://xrl.us/j2bf>
Meanwhile, in perl6-internals
Parameter count checks
One of the tricky things about having PIR level parameter count checks
is coming up with a good syntax for it; in particular, Chip wanted an
easy way of expressing common things like void calls. It turns out out
that Common Lisp is one of the trickier languages to deal with here
since it allows for multiple values returned from a function, but
ignores every return apart from the first unless you specifically ask
for them. Which can be nice, but is weird.
I'm not sure we have a syntax for it yet, I'm sure one will be
forthcoming eventually.
<http://xrl.us/j2bg>
Add methods in dynpmc
François Perrad had some trouble adding methods to Lua PMCs and asked
for help. Leo provided it and all was gorgeousness again.
<http://xrl.us/j2bh>
"{null,parrot,installable}_config.o"
Florian Ragwitz is the Debian maintainer of the pugs and parrot packages
and he has problems getting the latest pugs to link with Parrot, mostly
because of the way parrot stores information about where things are
installed. He made a few suggestions for resolving the issue. I'm not
sure Leo's answer was much use to him.
<http://xrl.us/j2bi>
Heureka - from the -Ofun department
Leo announced that Parrot is now running the Ackermann benchmark faster
than C. It turns out that tail recursion elimination is a really good
thing to have. It also turns out that we only get the really blistering
speed on x86 and ppc architectures, because those are the architectures
with a working JIT core. Things aren't quite so rosy on SPARC, for
instance.
Still. Wow!
<http://xrl.us/j2bj>
":non_volatile" is now ":unique_reg"
Jonathan Worthington checked his ":non_volatile" patch back in, but with
the new ":unique_reg" name. Which is nice.
<http://xrl.us/j2bk>
Sub introspection: filename and line
Jerry Gay had some questions to ask about walking the Parrot call chain
and getting at file and line info. It turns out that the Sub PMC doesn't
have the methods he needs. Johnathan Worthington corrected what he'd
said on IRC about how to walk the call chain, pointing out that, instead
of walking subs, you need to walk contexts, but that contexts aren't
actually PMCs because we don't have weak references yet.
Apparently, we will have weak references eventually, at which point
we'll be able to have context PMCs, which can be used for introspecting
on the call chain.
Me? I don't quite understand what's the difference between these
'contexts' of which Jonathan speaks and return continuations. But I'm
odd like that.
<http://xrl.us/j2bm>
Q. Namespaces and classes
Leo wasn't entirely sure of what semantics are needed by namespace PMCs.
He talked around the issues and asked if he was going along sane lines.
I can't tell if Jonathan thought Leo was sane or not, but Leo seemed to
find the response useful.
<http://xrl.us/j2bn>
Quis custodiet ipsos custodes?
Misspelling Juvenal slightly, Jerry Gay observed that there are no tests
for Parrot::Test and made a plea for this to be remedied. You're on your
own with the Latin.
<http://xrl.us/j2bo>
PIC/JIT update
Leo announced that the PPC JIT core can now compile subs on the fly,
just like the x86 core. But only for integer code apparently.
<http://xrl.us/j2bp>
Integer divide overflow
Leo observed an overflow issue with integer division and asked for
comments. Jonathan Worthington suggested going to the pub. "It won't fix
the problem, but we'll feel better about it." We definitely seem to be
in "Don't do that then." territory.
<http://xrl.us/j2bq>
Find a multi-method/multi-sub by name and signature
Jonathan Worthington's work on a .NET translator 'ambles on'. He's
working on mapping .NET's static method overloading on to Parrot's MMD
and it's almost working. He outlined the issues and hoped that there
might be some way of doing a "find_global" or "findmethod" that took the
function's signature into account and pointed out that we'd need
something like it for Perl 6 anyway. Leo pointed him at the 'long names'
of functions, which contain the information that Jonathan needs, but
which aren't (yet) standardized.
Sounds like a case for standardization to me...
<http://xrl.us/j2bs>
Acknowledgements, apologies and everything else
Sorry the summary's been split this week, but it was either that or get
Matt Fowles to do it again, which just wouldn't be fair. I hope you all
enjoy the new serial format anyway.
Help Chip
<http://geeksunite.org/> -- Chip still needs help.
The usual coda
If you find these summaries useful or enjoyable, please consider
contributing to the Perl Foundation to help support the development of
Perl.
<http://donate.perlfoundation.org/> -- The Perl Foundation
The Perl Foundation Blog is an excellent source of news about the Perl
Foundation's activities.
<http://blog.perlfoundation.org/>
Planet Perl Six is a handy news aggregator of several Perl 6 related
sources.
<http://planet6.perl.org/>
<http://dev.perl.org/perl6/> -- Perl 6 Development site
Check out my website, it's lovely.
<http://www.bofh.org.uk/>
--
Piers Cawley <[EMAIL PROTECTED]>
http://www.bofh.org.uk/