Note: these documents may be out of date. Do not use as reference! |
To see what is currently happening visit http://www.perl6.org/
<B>This week's summary was written in two parts: </B>
<A NAME="___top"></A> <UL> <LI><A HREF="#Part_1">Part One</A></LI> <LI><A HREF="#Part_2">Part Two</A></LI> </UL>
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.
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.
groups.google.com[192.168.1.100]
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.
François Perrad had some trouble adding methods to Lua PMCs and asked for help. Leo provided it and all was gorgeousness again.
{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.
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!
: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.
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.
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.
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.
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.
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.
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...
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.
geeksunite.org -- Chip still needs help.
If you find these summaries useful or enjoyable, please consider contributing to the Perl Foundation to help support the development of Perl.
donate.perlfoundation.org -- The Perl Foundation
The Perl Foundation Blog is an excellent source of news about the Perl Foundation's activities.
Planet Perl Six is a handy news aggregator of several Perl 6 related sources.
dev.perl.org -- Perl 6 Development site
Check out my website, it's lovely.
Did I say Thursday night? What was I thinking? Blame Nikon for finally delivering my D200; or just blame me for being a lazy git who spent Thursday night recovering from the drive home from Liverpool and Friday playing with a new toy and chatting to interesting people in the atrium at SageGateshead.
So, here's part two of the summary, in which I summarize ancient history in perl6-language.
Darren Duncan asked that Perl 6 provide a way for a class/role/metaclass to declare that all variables declared to be of that type are automatically/implicitly set to a particular value at declaration time. Larry's response was fascinating as he talked about what I find myself thinking of a continuum of definedness, where, instead of worrying if a variable is defined, the language/programmer/whatever only cares whether it is defined enough. The syntax for asking such questions isn't really defined enough yet.
Then it all got slightly philosophical with talk of the ideal of a dog (when I think the questioner really wanted to talk about the ideal dog), Platonism and Aristotelianism. And the metamodel.
And there was hypnotism.
groups.google.com[192.168.1.100]
Last week, Brad Bowman asked a bunch of questions about the workings of Perl 6 macros. This week, Larry offered answers.
Yuval Kogman had some ideas about how to make Perl 6 development go faster. "Igor! More tuits!"
Some people disagreed with him. Some agreed. I am staying well out of this one (at least in the summaries; I have opinions and I don't trust them, or myself, enough to be able to write a properly impartial summary of the discussions).
Darren Duncan had another wish for Perl 6: a simple and terse way for Perl 6 identifiers or symbols to be able to be composed of any characters whatsoever... whoa! Deja vu!
Ah yes, I already did this one in part one. Move right along the summary, nothing to see here.
groups.google.com[192.168.1.100]
say
Simple question: how do you implement say
?
The answer isn't quite as simple as you might think. Actually, that's not true, the answer is simple, but the question has hidden depths.
Go read Robin Houston's question and its responses if you don't believe me.
Robin Houston had some questions/observations about the smart match
table in synopsis 4. This is the table that describes how the smart
match (~~
) operator does its comparisons. It turns out that the
table in the synopsis implies non-commutative behaviour, which came as
something of a surprise. I'm surprised this thread petered out so
quickly without any real resolution; it seems rather important to me.
So, does the serial format work? Apart from the problem of not actually getting on with part two when I should have done, it works remarkably well for me. Writing the summary in one big chunk can be somewhat daunting, especially if my brain gets fried by the first two lists. Feedback is good.
geeksunite.org -- Chip still needs help.
If you find these summaries useful or enjoyable, please consider contributing to the Perl Foundation to help support the development of Perl.
donate.perlfoundation.org -- The Perl Foundation
The Perl Foundation Blog is an excellent source of news about the Perl Foundation's activities.
Planet Perl Six is a handy news aggregator of several Perl 6 related sources.
dev.perl.org -- Perl 6 Development site
Check out my website, it's lovely.