The Perl 6 Summary for the week ending 20030330
Welcome once again to the gallimaufry that is a Perl 6 summary.
Unfettered this week by the presence of feline distraction we plunge
straight into the crystal clear waters of perk6-internals.
Iterator proof of concept
People must really like Leo T�tsch's Iterator proposal and patch. There
was only one comment about it this week (from Leo, so I'm not sure if it
counts) asking for thoughts about a possible Ref or Reference class.
Anyone?
<http://xrl.us/fao>
Bonsai
Zach Lipton announced that he has Bonsai up and running on the Parrot
CVS repository. This gives us a shiny new way of looking at the history
of the distribution. Thanks Zach.
<http://tinderbox.perl.org/bonsai>
BASIC, IMCC and Windows
Clinton A Pierce had problems trying to get IMCC building correctly
under Win32 in order to generate a binary distribution for the win32
platform. He finally brought up a working IMCC on Friday and asked for
comments about what a binary distribution should look like.
<http://xrl.us/fap>
<http://xrl.us/faq>
getopt.macro
Inspired by the argument processing in Leon Brocard's uniq(1)
implementation, Jonathan Scott Duff presented a getopt macro for Parrot
programmers. Benjamin Goldberg had a few suggestions about how to make
things a little more flexible.
<http://xrl.us/far>
Patch to examples/assembly/cat.pasm
Paul Duncan offered a patch to examples/assembly/cat.pasm which would
cause it to terminate when it received a ctrl-D.
<http://xrl.us/fas>
IMCC and scientific notation
Having got IMCC working in a win32 environment, Clinton A Pierce
discovered that IMCC didn't understand scientific notation, but the
parrot assembler does. Leo T�tsch pointed out that it sort of does, but
instead of 1e20 you have to write 1.e20. Joseph Ryan wondered if
handling scientific notation wasn't really a job for individual
compilers, but Clint and Mark Biggar explained why this wasn't a good
idea. As Mark said, in a world with BigFloats you don't want to have to
expand 1e2048 into a 2049 character string if you can possibly help it.
<http://xrl.us/fat>
RT spam
Someone claiming to be Marla Hurley crawled out from under a stone and
took it upon themselves to offer credit to the perl6 RT installation.
Thanks. We needed that.
Meanwhile, over in perl6-language
The language list was again busier than the internals list this week,
but volume has fallen on both lists. (If you don't count an off topic
thread on the internals list, which I haven't, there were only 22
messages there this week. And very few patches from Leopold T�tsch, I
hope he's all right.)
is static?
Discussion of static/state variables continued. Arcadi Shehter wondered
if it made sense to attach "but" properties to closures. I confess I
didn't really understand what he was driving at. Austin Hastings and
Larry saw something in it, and the question shifted to ways of doing
state variable initialization, which in turn led to possible changes in
the various control of flow keywords. As Larry pointed out, if you have
a static variable:
state $variable
Then, assuming that you need 'undef' to be a possible value for your
variable, you need some way of doing once and only one initialization of
that variable.
state $variable;
ONCE_AND_ONLY_ONCE { $variable = $initial_value };
The problem is that INIT and CHECK blocks happen too early; in the code
above, $initial_value may well not be set, if your state variable is set
up inside a closure this becomes even more likely. Larry reckons that
the most useful initialization semantics appear to be 'just in time'. In
other words you want initialization to happen on the first actual call
to a closure. But "FIRST {...}" is already taken, so Larry is
considering renaming FIRST and LAST to ENTER and LEAVE, freeing up FIRST
to mean "my very first time". Freudian analysis was discouraged.
<http://xrl.us/fau>
Argument initializations
Michael Lazzaro summarized the various different and proposed assignment
operators available in Perl 6, including a proposed "::=" for 'only
assign to uninitialized variables'. Michael wondered how these could be
used in method signatures and proposed some changes to the signature
system as set out in Apocalypse 6. People were dubious about this, with
Damian saying "I don't think that allowing 20 different types of
assignment in the parameter list of a subroutine actually helps at all."
I'm not sure Michael is convinced yet.
<http://xrl.us/fav>
P6ML?
Michael Lazzaro asked if anyone was actually working on P6ML (a project
name that popped up last week in the 'XML is too hard for Programmers'
thread) and if there was any idea of what such a project would entail.
Robin Berjon was unsure of the wisdom of such a project, arguing that
supporting a tool that wasn't strict about the XML it parsed would be a
retrograde step and giving reasons as to why. However, he did think that
creating a toolset for 'recuperating data from a quasi-XML [document]
(aka tag soup)' would be interesting and useful, and he proposed a
couple of approaches.
It's apparent, from reading this thread that people who don't like the
current generations of XML tools really don't like them at all:
adjectives such as 'craptacular' and phrases like 'festering pile of
steaming camel turds' were bandied about. Then there's the 'Perl has
lots of ways of doing XML, which is great because you can pick the one
that suits you' camp, and the 'Perl has lots of ways of doing XML, which
is terrible because you have to pick the one that suits you and that
takes time' camp.
Leon Brocard pointed out that, whilst Perl 6 might have nicer syntax and
a faster parsing engine, there was nothing to stop people working out,
and implementing, the required semantics in Perl 5 right now. There was
a fair amount of muttering that, however desirable or otherwise P6ML may
be, there wasn't really much need to be discussing it on a language
design list (as if that could stop anything).
Dan Sugalski caught everyone out by raving about the idea: "the thought
of altering Perl 6's grammar to make it a functional language is sheer
genius [...] I say we start right away!". The only catch is that Dan was
talking about ML, a programming language and he bent the needle on
Austin Hasting's Sarcasmeter. But he promised to fix any such devices at
OSCON if their owners would bring them to him there. So that's all right
then.
<http://xrl.us/faw>
Summary writer goes all red and glowy.
Matthijs van Duin pointed out that Piers had misspelled him as 'Mattijs'
4 times in last week's summary.
I am really sorry and I shall endeavour never to do it again.
Support for attributed DAGs
In a thread deceptively named 'Perl and *ML', Dan opined that XML would
be so much easier to support if Perl had good support for attributed
DAGs (That's Directed Acyclic Graphs, or 'trees'), and noted that having
such support would be good for things like Abstract Syntax Trees too.
Robin Berjon wasn't so sure, pointing out that, whilst fast and
efficient graph support would be really useful, acyclic graphs weren't
that useful for XML as useful XML representations usually had back links
to parent and sibling nodes (and that's before you take linking into
account). I have the feeling that further discussion of graph support
probably belongs on the internals list for the time being, but I could
well be wrong.
<http://xrl.us/fax>
Acknowledgements, Announcements and Apologies
I've already apologized to Matthijs "Mattijs" van Duin for misspelling
his name, but I'll do it again. I'm really, really sorry.
If you've appreciated this summary, please consider one or more of the
following options:
*
Send money to the Perl Foundation at
<http://donate.perl-foundation.org/> and help support the ongoing
development of Perl.
* Get involved in the Perl 6 process. The mailing lists are open to
all. <http://dev.perl.org/perl6/> and <http://www.parrotcode.org/>
are good starting points with links to the appropriate mailing
lists.
* Send feedback, flames, money, photographic and writing commissions,
or an ArtixScan 2500f to [EMAIL PROTECTED]
This week's summary was again sponsored by Darren Duncan. Thanks Darren.
If you'd like to become a summary sponsor, drop me a line at
[EMAIL PROTECTED]
--
Piers