Front page | perl.perl6.internals |
Postings from October 2002
Perl 6 summary for week beginning 2002-10-07
From:
Leon Brocard
Date:
October 15, 2002 12:12
Subject:
Perl 6 summary for week beginning 2002-10-07
Message ID:
20021015191210.GB27582@ns0
Perl 6 summary for week beginning 2002-10-07
This is yet another Perl 6 summary, documenting what has happened over
on the perl6-internals (where Parrot, the virtual machine that will run
Perl 6 is discussed) and perl6-language (where Perl 6 language design is
discussed) mailing lists. Piers is still off on holiday (bungee jumping
and motocrossing, no doubt), so I'm still your host this week. A fairly
quiet week, so let's start off with the perl6-internals list as usual.
The Pumpking is dead, long live the pumpking!
I am happy to report that we have a new Parrot pumpking. Jeff Goff has
done great work in the past, but taking over is Steve Fink who has been
active in Parrot since near the beginning. He's been extremely active
this week, participating in almost all of the discussions and accepting
patches left, right and center.
<http://makeashorterlink.com/?X18F23422>
Variables have three parts
Dan Sugalski decreed that vtables were about to get more complicated.
Variables and values used to be simple, but now we need to have three
parts for each "thing": an optional name, a container and the contents
of the container. There wasn't any discussion, but I expect Dan will
rejig vtables some more anyway.
<http://makeashorterlink.com/?T29F12422>
Line number metadata
Juergen Boemmels explained that the line number information given by the
"setline" opcode was quite verbose in the source and suggested adding
line number metadata into Parrot bytecode. He proposed using the DWARF-2
debugging format (as used by the Mono project) so as not to reinvent the
wheel. Dan promised some specs for moving this information out of band.
This thread quickly got out of hand, with Nicholas Clark noticing that
having column number information magically built in full debugging
support for Befunge (a two-dimensional language) and Sean O'Rouke
wishing to make "source position" a vector, thus generalising to
scripting languages of any dimension.
<http://makeashorterlink.com/?A2BF52422>
New array base
Leopold Toetsch continued in his attempt to confuse the summariser with
thousands of patches. He had rewritten the base routines from the array
PMC as a working engine for list operations. It should be fast and
simple, being based on chunks with fast index get and set. He committed
this as list.c, and commented that most of the other array-style PMCs
will start to use it as a base, and that it may replace the intlist PMC
(and other typed array PMCs).
<http://makeashorterlink.com/?H2CF32422>
Parrot_sprintf
Continuing last week's "sprintf in Parrot" mention, Brent Dax committed
a huge patch completing the feature set of Parrot_sprintf, including
width and precision for ints and strings, and modified many little bits
of code to use it.
Inspiration then struck him, or rather, vtables did. He's rewritten it
to use vtables, and split some of code out of "misc.c" and into the new
"spf_render.c" and "spf_vtable.c", which managed to turn into another
huge patch. Looks like there is a portability issue on PPC systems with
"va_copy" however.
<http://bugs6.perl.org/rt2/Ticket/Display.html?id=17791>
<http://bugs6.perl.org/rt2/Ticket/Display.html?id=17817>
Nuke dem opcodes
Simon Glover proposed a patch to get rid of the 2-element "ne" opcode,
which at a first glance should be optimisable at compiler time and hence
should not be in Parrot, barring complicated number precision issues.
After a little discussion, Nicholas Clark pointed out that maybe we
should do as C99 and state that constant folding will be done at compile
time and at the precision of the compiling Parrot. Some of the opcodes
where nuked, but it's important to keep some opcodes just in case of
overloading.
<http://makeashorterlink.com/?F1DF46422>
Getting Started Guide
Cast your minds back, dear readers, if you will, to last week, where
Erik Lechak proposed writing a getting started guide. Well, he did just
that, starting from the beginning with the configure system and then all
the way out. There were many comments and suggestions, and it would be
great to see this as POD and in the repository soon. Unfortunately, it
is not in the archive.
Larry explains all
Perl6-language had very few new threads this week. Instead, there were
mostly little updates to previous threads, which makes it somewhat
tricky to summarise. However, Larry Wall was everywhere this week,
giving us detailed insights into the Perl 6 language.
Larry clarified that to remove ambiguity, variable properties will
surrounded in brackets and have repetitions of "is":
# instead of this:
my $foo is rw cmp "";
# we would have:
my ($foo is foo is bar, $bar is baz) = (1,2);
Additionally, it looked like class attributes had changed name from
"attr" to "has".
There was also some talk on the module versioning system, which could be
done with a slice-like notation:
use Acme[1.0]; # like so
use Acme[ (1;17..) | (2;0..) ]; # or perhaps
use Acme[1;17..] | Acme[2;0..]; # or even
I'm pretty sure he was joking, but Larry considered alternatives to the
"...", which issues a warning (or maybe an exception) if you try to
execute it. "???" would never complain and "!!!" would always throw an
exception. Or the other way around. Or one is fatal. Or more likely,
stick with "..." and make its behaviour pragmatically controllable.
"..." is useful for abstract method declaration.
There definitely wasn't any talk about "&&&" and "|||".
Perl6 OO Cookbook
Michael Lazzaro made good on his promise last week and produced a
comprehensive Perl 6 OO cookbook describing "stuff that hasn't yet been
designed, for a language that doesn't yet exist". It is a great piece of
work and tries to examine real life Perl 6 examples.
There was some discussion of the recipes and the Michael announced that
he wanted to work on an online system for adding new data and many other
changes. Worried about Perl 6 OO? Then check this out:
<http://cog.cognitivity.com/perl6/>
In brief
Some of the Parrot tests still don't work under Win32.
Some bugs in various bits of the Parrot JITs were found, and some fixed.
Dakkar found a bug in the Perl 6 compiler which basically boiled down to
checking for truth instead of definedness. Hopefully Perl 6 will remove
this particular problem for us ;-)
We probably need more tinderboxes.
Brent Dax promises to fit a pony into his next patch.
Simon Glover added quite a few tests and pieces of documentation.
C structs need to be padded for the more exotic architectures and
compilers.
There are still some DOD / GC bugs.
Who's Who in Perl6
Once more we get to meet people involved in the development of Perl 6.
Who are you?
Jerome Quelin.
What do you do for/with Perl 6?
I wrote a Befunge interpreter in Parrot assembly. Now I'm waiting
for Parrot to handle multiarrays and objects in order to implement
the Befunge-98 specs.
Where are you coming from?
Some Perl Golf rumors have said that I'm an alien coming from Mars.
When do you think Perl 6 will be released?
Some day.
Why are you doing this?
In order to have a chance to understand Perl 6 sources. And because
Befunge is a fun language, that deserves to be supported by Parrot.
You have 5 words. Describe yourself.
Perl Golf and Befunge addicted.
Do you have anything to declare?
Befunge rocks.
Acknowledgements
This summary was brought to you with slightly less distraction from
Super Mario Sunshine and more recognition of the sterling work that
Piers does every week.
As Piers says: One more, if you think this summary has value send money
to the Perl Foundation <http://donate.perl-foundation.org> and feed back
and/or T?iBooks to me, <mailto:pdcawley@bofh.org.uk>. As usual, the fee
paid for publication of this summary on perl.com has been donated
directly to the Perl Foundation.
Enjoy, Leon
--
Leon Brocard.............................http://www.astray.com/
scribot.................................http://www.scribot.com/
.... f u cn rd ths, u cn gt a gd jb n cmptr prgrmmng
-
Perl 6 summary for week beginning 2002-10-07
by Leon Brocard