Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Yet Another Way To Get Involved With Perl6

by Limbic~Region (Chancellor)
on Jun 10, 2005 at 18:17 UTC ( #465629=perlmeditation: print w/replies, xml ) Need Help??

The language design process has been and continues to be a long rough road. Opening up the design process to the entire community and filtering everyone's "good" ideas hasn't made it any easier. While a vast amount of the language has already been designed and decisions rendered, on paper only about 1/3 of the Synopses have been published.

So how can you help out and learn Perl6 at the same time? You can post patches to the Perl6 mailing list against the change controlled documents and pmichaud has volunteered to moderate commits. So what are some things that patches are needed for?

  • For unwritten Synopses, an outline of what is to be covered (reference Perl6 Timeline By Apocalypse)
  • For written Synopses, any missing headings that need to be filled in
  • When a decision is rendered by @Larry on the list, a patch to the appropriate documented
  • Searching the archives for the latest decisions that haven't been incorporated yet

Cheers - L~R

  • Comment on Yet Another Way To Get Involved With Perl6

Replies are listed 'Best First'.
Re: Yet Another Way To Get Involved With Perl6
by ank (Scribe) on Jun 11, 2005 at 14:35 UTC

    A few days ago I was looking for a small task to help within Perl 6 development while learning it. After asking around, I started looking at the perl6-language archives and AES for reference. Wanting to try some code using loops, I read about zip(). I found a few different (and somewhat conflicting?) references to the ways it cuold be used:

    zip(@a,@b,...) zip(@a;@b;...) zip(@a,@b,...,by=>3) zip(@a=>3,@b=>2,...)

    It wasn't clear whether by should be supported or not, whether it should have semi-colons or commas as argument separators and whether the numeric options should work or were dropped entirely. As far as I could tell, the svn version of pugs only accepts the first form. I also found a discussion about zip() and weave() - but couldn't find weave() anywhere else.
    Of course, I'm new to perl6, so I know almost nothing about how these should work within pugs or in a more finished perl6 (and I'm surely missing information!).
    Having some documentation dealing with issues like these would help a lot of people in my position to get up to speed with it.

    -- ank

    Update Fixed grammar, spelling

      It needs to be semicolon, but I don't know if Pugs handles semicolon lists correctly yet. When passed to a function not expecting semicolons, they're just treated as commas. But when passed to a function like zip() that is expecting them, semicolons delimit multiple input lists. Saying
      needs to be equivalent to
      zip <== @a <== @b <== @c
      There are no optional arguments to zip() that I'm aware of, but if there were any, they'd have to come in before the semicolon lists. In other words, semicolon lists are not ordinary positional arguments. They're a way of ordering multiple variadic inputs, invented originally to handle multidimensional slice subscripts, but since then generalized to work with any signature that recognizes them (though what exactly in the signature recognizes them is still somewhat open to negotiation).

      However, there are no general guidelines for how to document the as-yet undesigned parts of the design. The best you can do is to make a guess consistent with the current design and see if anyone carps about it. A certain willingness to be sincerely misguided goes with the territory. :-)

        Sounds very interesting -- I also read a bit on the supercomma (see below) -- I wonder how these will all fit together -- and I'll try to help find out :)

        Now, about the zip() issue, these are the sources:

        • Just semicolons, no mention of parameters: S04
        • Parameters, general discussion, weave() - see the 4 links after "Supercomma!" (it is an old discussion though).
        • Another example with parameters and commas:
          for zip(@colors=>2, @textures=>1) -> $color1, $color2, $texture { $mix = blend($color1, $color2); draw_circle($mix, $texture); }
          (source: Perl 6 and Parrot Essentials, 2nd edition,
Re: Yet Another Way To Get Involved With Perl6
by Ninthwave (Chaplain) on Jun 16, 2005 at 12:14 UTC

    Ok I want to Help. Really I actually want to play with something new. There is nothing more exciting than technology as it grows. But to Help I need help. The documentation for Perl 6 and Parrot is confusing me (though through past posts and general comments we can say that in itself is not saying much.) I have installed Parrot. I love pasm, makes me remember my c-64 assembler cartridge. But Perl6 will not work. I know I missing instructions or doing something silly. And I could probably live for the next year or so playing with pasm but that is besides the point.

    What I am doing:

    su - cd /opt rsync -av --delete parrot cd parrot perl make clean make make test make install

    Now parrot itself works fine but I can not find a single document that tells me how to call Perl6 from Parrot. And the readme says parts of Perl6 will not work without ICU. So tonight I plan on downloading ICU from IBM and adding that. My request isn't really for a oh you are doing xyz wrong but more of here is document a which tells you how to install parrot and document b which tells you how to configure Perl6 and use Perl6 with Parrot.

    I have been lurking on all the mailing lists and the IRC channels and really like what I am seeing but just need some place to start from. I have been reading all the readmes and docs on and I am working my way through Parrot and Perl 6 Essentials. though I feel like I am missing the obvious somewhere.

    As you can see I wouldn't be the greatest help with Perl 6 yet, but my curiousity is killing me here. Please help

    "No matter where you go, there you are." BB
      When Pugs first started, it didn't have any support for Parrot. With that said, all of the Perl6 functionality that is in Pugs today, with the exception of rules which requires PGE, doesn't require Parrot. Just having Parrot in your path will enable rule support from what I understand.

      Targeting Parrot is a work in progress but there is minimal capability through -BParrot (pugs -BParrot examples/mandel.p6). There is more robust support using -BPIR but as I said, it is an evolving process. How to use the compreg thingy in Parrot to eval p6 code is beyond me, but I know it is in there.

      Hopefully autrijus and/or chip will augment my reply as I don't know what document(s) to point you to.

      Cheers - L~R

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlmeditation [id://465629]
Approved by kvale
Front-paged by ghenry
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (4)
As of 2018-05-21 06:23 GMT
Find Nodes?
    Voting Booth?