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