The Perl 6 Summary for the week ending 2004-07-25
Monday morning, all's well, and Piers sits down at his desk to bash out
another in his ongoing series of Perl 6 Summaries.
I've just realised that I missed noting the second anniversary of my
writing these summaries. It came up a month ago. On my last anniversary
I hoped I wouldn't be celebrating many more of them before we have a
real, running Perl 6; I'm still hoping. It looks like we may well have a
real, running Python interpreter on Parrot before Perl 6.
But we won't have it this week. Read on.
Pie-thon!
First, the bad news. Dan's conceded.
Now, the good news. Dan and Leo still got an awful lot done in a
surprisingly short time; who knows where we'd be if Dan hadn't been
stuck without a working laptop for most of June. In 5 weeks, we went
from nothing at all running to having four out of seven running, and 3
of those running faster than Python. Leo estimated that, once everything
was done, Parrot should be averaging about twice the speed of Python.
Next week (or possibly the week after) should see some post mortem
documentation from Dan and Leo discussing what they've learnt from the
exercise, and what needs to be done to get a 'proper' python
implementation up on Parrot.
So yes, Dan's going to get a pie in the face and be out a round of
drinks. If you're at OSCON, you might like to drop in on the Python
lightning talks and watch.
http://xrl.us/ciwi
Cygwin JIT problems
Joshua Gatcomb pointed out that JITted programs were dumping core on
Cygwin. Again. He and Leo tracked down a problem with the flags used on
the cygwin version of GCC. Joshua made a plea for experienced Cygwin
programmers to help out with issues of getting various things working on
the Cygwin parrot. He also called himself a 'bumbling idiot' but none of
us (apart, possibly, from his wife) believed him.
The whole and everything
Leo and Dan had a long discussion about a proposal of Leo's that Dan had
rejected without commenting on. Leo's not exactly happy about Parrot's
subroutine call speed and had proposed something which he thought would
make things go faster. Dan disagreed, and pointed out that it was
actively thread dangerous (there's a difference between not optimizing
for threads and not making threading possible).
In a lighter hearted part of the thread, Larry suggested embedding
python in Parrot as a way to get all the pie-thon tests running at least
as quickly as python. Leo hacked something up which piped the Python
code to python itself. But we're too honest to do that at OSCON.
http://xrl.us/ciwj
Parakeet 0.1
Michel Pelletier announced the release of Parakeet 0.1, a small Parrot
language which he hopes will eventually expose all of the OO features of
the Parrot VM. Judging by the description he posted, it's a fascinating
Forth like language. Kudos to Michel.
http://xrl.us/ciwk
http://xrl.us/ciwm
Meanwhile, in perl6-language
The infinite thread
Pushing onto lazy lists continued to exercise the p6l crowd (or at
least, a subset of it). Larry said that if someone wanted to hack
surreal numbers into Perl 6.1 then that would be cool.
Do users need FileHandles?
Remember Dave Whipp's proposal to get rid of user visible filehandles in
favour of something like tied scalars? It sparked a good deal of
discussion this week. A few people were pro, a few anti, with Larry
seeming to position himself somewhere in the middle.
http://xrl.us/ciwn
The mathematics summary
Austin Hastings made me laugh when, following my announcement that I'm
off to train to be a maths teacher, he wrote a spoof 'Mathematics
summary'. Thanks Austin.
http://xrl.us/ciwo
String Interpolation
The string interpolation subthread of last week broke out into it's own
first class thread this week. Larry said that he was seriously
considering incrementing the Ruby-o-meter some more by saying that the
*only* interpolators in double quotes would be
\n, \t etc.
$foo
@foo[$i]
%foo{$k}
{ EXPR }
where the last provides a list context to "EXPR". Damian thought that
the current solution with "$(...)" and "@(...)" was still the best way
to go. He didn't relish having to escape every "{" double quoted strings
(code that writes code for execution by "eval" is hard enough to read
without a whole bunch of *extra* quoted characters being required).
As is usual with p6l, the discussion was wide ranging and touched on a
whole bunch of other entertaining subjects. He who must not be
capitalized, chromatic brought up curried and first class roles, and
Larry shied away from allowing the (IMHO) eminently sensible
$foo does $bar
Where do we stand now? Well, I can safely say that some stuff will
interpolate in double quoted strings.
http://xrl.us/ciwp
xx and re-running
James Mastros made my head hurt slightly as I first read his post about
the "x" operator. For a large chunk of his post I was reading "x" as an
algebraic *x* which stood for an arbitrary operator before it dawned on
me that he was talking about the repetition operator (which becomes "xx"
in Perl 6), using the particular example:
@list = int(rand 100) xx 100
His contention was that people expected the "rand" part to be evaluated
100 times and that they were surprised when it wasn't (frankly, I'd be
surprised if it were, but I might be too indoctrinated). He proposed
that either a new "xxx" be introduced which reevaluated its LHS multiple
times, or that "xx" be altered so that, if its LHS was a closure, it
would execute the closure multiple times to get values.
Joseph Ryan pointed out that that was what "map" was for.
http://xrl.us/ciwq
http://xrl.us/ciwr
What's the core?
A question arose about what modules would come as standard with Perl 6.
Larry's argued previously for an utterly minimal basic distribution so
as to encourage people to make use of CPAN rather that relying on the
(possibly old, broken) that came with their Perl. Others were not
convinced that this was a good idea.
http://xrl.us/ciws
Announcements, Apologies, Acknowledgements
Over the next few weeks I'll be moving the cut off day for these
summaries from Sunday to Friday. Writing summaries on a Monday when you
don't have to drive to Middlesbrough for work is pretty easy, but less
easy when you do. So, by moving the cut off day I hope I'll be able to
continue writing the summaries while I'm busy doing my teacher training.
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
mailto:[EMAIL PROTECTED]
http://donate.perl-foundation.org/ -- The Perl Foundation
http://dev.perl.org/perl6/ -- Perl 6 Development site