develooper Front page | perl.perl6.internals | Postings from October 2002

Perl 6 summary for week beginning 2002-10-07

Leon Brocard
October 15, 2002 12:12
Perl 6 summary for week beginning 2002-10-07
Message ID:
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.


  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.


  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.


  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).


    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.



  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


  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:


  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

    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.

    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 <> and feed back
    and/or T?iBooks to me, <>. As usual, the fee
    paid for publication of this summary on has been donated
    directly to the Perl Foundation.

Enjoy, Leon
Leon Brocard.............................

.... f u cn rd ths, u cn gt a gd jb n cmptr prgrmmng Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About