This week on Perl 6 (11/10-11/17, 2002)
"Oh! my ears and whiskers, I'm late!"
It's 0650, it's 20021120 and I've only just started writing the summary. Call me lazy, call me a shirker, call me anything you damn well please, just don't interrupt me while I'm writing this.
Yup, it's past time for another peek into the lives of those strange beings we call the Perl 6 development community, starting off, as usual, with the perl6-internals crew.
Dan returned unscathed from this year's Lightweight Languages workshop and presented a short roadmap for the next few miles. Dan reckons that if we hit all those milestones, then we'll have a complete imperative core -- which will be nice.
http://groups.google.com/groups
Michael Collins stuck his head above the parapet to report that using
branch provoked a core dump on his Linux setup. It turned out to be
a problem with his code. Dan debugged his code and offered a
reasonably full explanation of how parrot's branch actually works
(and why you should really use labels in hand written assembler.)
Gopal V worried that allowing branches to non-instructions was unsafe
and wondered whether, at least, a parrot -fverify switch might be in
order. Dan agreed, but his reasoning was somewhat different.
Elsewhere in the thread, Dan tells us that he wants safe interpreters to be as safe as a locked down VMS system, but he's unsure as to whether we'll reach that gaol. (Mmm ... nice typo there Piers, leave it)
http://groups.google.com/groups
http://groups.google.com/groups
Clinton A. Pierce announced his complete rewrite of BASIC for Parrot, this time modeling his implementation on QuickBASIC. Here's a list of the new features, lifted from Clint's announcement:
Nobody said anything -- I think they were rendered speechless. However, I'd like to take the opportunity to use this platform to say "Yay Clint!". This is superb news. OK, so supporting BASIC wasn't exactly Parrot's initial goal, but it's great to see that a single hacker can implement such a complete language using Parrot.
http://groups.google.com/groups
Not to be outdone by Clint's BASIC implementation, Jürgen Bömmels has taken advantage of Jon Sillito's lexical scopes patch to add functions to scheme (before it was just scheme syntax, now it has some claim to being really scheme like). Bravo Jürgen!
http://groups.google.com/groups
This week, Leo has been mostly:
And generally seeming to pop up with useful contributions in almost every thread. Where does he find the time?
Marius Nita asked about the Perl 6 compiler, wondering what language it'd be written in, Perl or C? Markus Laire thought it'd eventually get written in Perl 6 or Parrot 'or something else which runs on parrot.' Gopal V worried about the bootstrapping problem and asked that the Perl 6 compiler be written in something other than Perl 6 in an attempt to avoid a 'dependency hellhole'. Brent Dax pointed out that we're pretty much obliged to write Perl 6 in Perl in order to get the self modifying parser behaviour and noted that we'd ship it as bytecode. Nicholas Clark pointed out that, strictly, you can't build perl5 from scratch without an installation of perl5, but the p5porters get 'round the problem by shipping the generated headers as part of the perl5 tarball.
Dan points out that the goal is for Parrot to require a C compiler and a platform shell or Make tool (either should do). Nicholas Clark attempted to kick off a variant of Monty Python's 'Yorkshiremen' skit ("Make tool? Luxury! We 'ad to make do wi' a console and switches!" "You were lucky! We used to 'ave to mek waves in' t'mercury delay line wi' us tongues!"), reckoning that it should be possible to get by with just a C compiler and asked that we 'archive this message and hold it against me when the time comes, and you're looking for someone to prove it by making it work'.
http://groups.google.com/groups
http://groups.google.com/groups -- Archive this message
Dan announced that he was about to 'do exceptions' and wanted to give a heads up to everyone who does Odd Things (principally the JITterbugs). The rule appears to be 'Don't monkey with the system stack'. Leopold Tötsch wondered if that was actually the issue Dan thought it was, but came up with a bunch of other issues to do with register allocation, both at the parrot level and the processor level. And then it all got too much for my brain to cope with.
http://groups.google.com/groups
Over in perl6-documentation, they're about to start producing Perl 6 language tests, so chromatic posted Brent Dax's suggestion about how tests should be organized into sub directories. General response was favourable (the current languages/perl6 tests are somewhat disorganized.)
http://groups.google.com/groups
The language list was relatively quiet this week. The Operator thread seems to have reached a cæsura, but most of the current threads seem to have spun off from issues raised in that monster.
Discussion of ralph's proposals for changing the function declaration
syntax continued. Damian doesn't like the proposed changes, and has
been explaining to ralph why not. Nicholas Clark worries that a
function being able to access its caller's topic is 'an unrestricted
licence to commit action at a distance' (he says that like it's a bad
thing). Andrew Wilson pointed out that, unless you could access the
caller's topic you wouldn't be able to prototype things like print
(and if you can't get a prototype for something then you can't fully
override it). Damian added that it's also what Perl 5 does (except
Perl 5 does it without having the decency to declare anything)
http://groups.google.com/groups
I'm not entirely sure why a thread titled 'Superpositions and Laziness' should contain discussion of whether one should have a 'pure' property or a 'cached' one. Or both.
Meanwhile, in the 'laziness' side of the thread, Piers Cawley saw fit to post a huge chunk of uncommented code which was described by Larry as 'opaque, and not in a good way'. On rereading, I didn't think it was that bad.
Larry also introduced the possibility of breaking the operator:
method of declaring operators up into prefix:, infix:,
postfix: and circumfix:.
http://groups.google.com/groups
http://groups.google.com/groups
http://groups.google.com/groups
Last week, arcadi declined to expand 'FMTWYENTK about :='. This week we discovered that it stands for 'Far More Than What You Ever Needed To Know' (It was the 'what' that foxed me).
This week Damian supplied answers/clarifications. Next week, I'm hoping for a lovely, consolidated document.
http://groups.google.com/groups
http://homepages.tcp.co.uk/~nicholson/alice.html -- Always worth a read
Given the subject of the last link, I find it entirely appropriate that the thread about coroutines and yield should be called 'Continuations', but I freely admit to an odd sense of humour.
It turns out that there are several different views as to what coroutines should do, a few of the alternatives were discussed. Damian thinks that the actual semantics chosen will probably have a good deal to do with how Perl 6 iterators work. Luke Palmer, whose name should live in infamy for this, declared that he was starting to like coroutines because 'the elegantify stuff.'
http://groups.google.com/groups
http://groups.google.com/groups -- Dan's expectations
http://groups.google.com/groups -- Damian's initially preferred coroutines
http://groups.google.com/groups -- 'Pythonic' coroutines
Luke Palmer wondered about collapsing junctions. When a function collapses a junction, does the junction collapse everywhere, or would one have to make an explicit 'observation' to precipitate collapse? Damian offered a reasonably complete discussion of the various possibilities.
I offer the following without comment:
When a junction hits a function and collapses down to one will it propagate the changes through the runtime? Oh, what fun!
http://groups.google.com/groups
http://groups.google.com/groups
Timothy S. Nelson's suggested new control structures got discussed this week. The general feeling seemed to be that what was proposed didn't really offer much that was desperately useful over and above the current control structures.
http://groups.google.com/groups
http://groups.google.com/groups
http://groups.google.com/groups
Andy Wardley wondered whether we couldn't overload + to work as both
numeric addition and string concatenation. Answer: No.
Richard Proctor wondered if we couldn't get away with doing string
concatenation by juxtaposition ( "string " "foo" evaluates to
"string foo".) Answer: No.
Larry had wise words the on subject of juxtapositional operators.
http://groups.google.com/groups
http://groups.google.com/groups
I'm still at something of a loss as to how to summarize this group effectively. Essentially the goal of the perl6-documentation list is to thrash out, in detail, the complete behaviour of Perl 6 and to produce tests and documentation which amount to a detailed spec. Their current project is 'literal values', and the work is ongoing.
There's been some debate as to documentation format of choice (current thinking is 'POD with knobs'). Michael Lazzaro who, if he hasn't officially been named documentation pumpking is doing a damn good job as de facto 'Bey of the docs' has posted a working outline for Section 1 of the docs. Garrett Goebel appealed for some docs on writing good tests for languages, which kicked off some debate about how tests should communicate with the test harness. Angel Faus put up a first cut at the 'literal values' subsection, and got a good amount of feedback. Dave Storrs took on the 'glossary chap' role, and posted a taster.
Dave is also the coordinator for 'Contributor License Forms', which are rather important. Before you donate any docs to the Perl 6 Documentation project you must fill in the form assigning the license to the Perl 6 project. Dave's post has the details.
Can you tell it was getting late when I wrote this section?
http://groups.google.com/groups -- Section 1 outline
http://groups.google.com/groups
http://groups.google.com/groups -- Literals, take 1
http://groups.google.com/groups -- Literals, take 2
http://groups.google.com/groups -- Numeric literals, take 1
http://groups.google.com/groups -- Glossary
http://groups.google.com/groups -- Contributor license forms
Clinton A Pierce had problems building under Win32 -- I'm not entirely sure the issue was resolved.
Jerome Quelin, backed up by Leon Brocard (Yay! I was wondering how I was going to mention him this week) used his Befunge interpreter to find bugs in PerlArray and string_append.
Daniel Grunblatt (or a better than reasonable facsimile) is back. This made Leopold Tötsch and Steve Fink happy. And we like it when they're happy. Welcome back Daniel.
The 'very complete lexical scopes' patch finally got applied this week.
Tim Bunce pointed us at CCured, which looks interesting: http://manju.cs.berkeley.edu/ccured/index.html
Jonathan Sillito offered a patch to turn Parrot subs into closures.
Arcadi wondered whether sigils were user extensible. Answer: Yes, but not necessarily easily.
This summary was brought to you, late from the comforts of GNER's First Class carriages, and from Mary Branscombe and Simon Bisson's most excellent (if somewhat hard to stand up from) sofa. Distractions were provided by the Kiseido Go Server, XMAME, Mary & Simon's DVD collection and a visit from Black Dog. Normal service will hopefully be resumed next week.
Proofreading was once again down to Aspell and myself. We make a much better team than we did.
A couple of months ago, I said of Leo Tötsch that 'he turned 44 on the 16th of September 2002, so not only does he contribute really useful code, he makes Dan and I feel younger. Can this man do no wrong?' I seems he can't, he's even found time to contribute his answers for the summary questionnaire. Thanks, Leo. Once more, if you participate in the lists and you've not sent me a set of answers, then I'd be really grateful if you'd send your answers to: mailto:5Ws@bofh.org.uk, current names I'm targeting include Larry, chromatic, Steve Fink, Clint Pierce, Daves Whipp & Storrs (Hmm... Now there's a name for a legal practice, 'Pierce, Whipp & Fink') and anyone else named in a summary who hasn't sent me answers. As I used to say in my USENET days aTdHvAaNnKcSe.
Now, I hope you're in good voice as we all join in the chorus:
If you didn't like this summary, then what are you doing still reading it? If you did like it, please consider one or both of the following options:
The fee paid for publication of these summaries on perl.com is paid directly to the Perl Foundation.
Perl.com Compilation Copyright © 1998-2006 O'Reilly Media, Inc.