This week on the Perl 6 mailing lists

    "`my Yellow sub marine { @we.all.live }`"

    -- Larry Wall, concluding a series of Beatles references in the grep
    thread.


 Language

  [svn:perl6-synopsis] r12136 - doc/trunk/design/syn <http://xrl.us/rvm8>

    Larry Wall committed a change stating that the filetest operators
    return a stat buffer object, that can be repeatedly used for more file
    tests, and also overloads boolean context for the test that created
    it.

    This eliminates the need for the `-X _` form in Perl 5, used to
    eliminate additional calls to `stat`.

  class attr set defs as their names <http://xrl.us/rvm9>

    Darren Duncan asked if two class meta objects `eqv`ing one another
    implies type equality. Nobody seemed to have any view on the subject.

  request for addition to administrative field to Synopsis
  <http://xrl.us/rvna>

    Mark Stosberg had a comment on the specification for smart linking. He
    offered a suggestion to make the documentation more useful to users.

  Renaming grep <http://xrl.us/rvnb>

    Darren Duncan suggested renaming `grep` to `where` in order to phase
    out UNIX lingo from Perl. Many people also suggested `filter`, and it
    was noted by Damian Conway that this is in fact the de facto standard
    for modern languages (like Haskell and Python). `select` and `reject`
    were also proposed at which point a list parting construct with
    arbitrary buckets was also proposed.

    The end result was the introduction of the `classify` built-in by
    Damian. This function generalizes various other list filtering and
    parting semantics.

    There was also a discussion on aliases and homonyms, under the
    umbrella of keeping `grep` as a backwards compatibility alias.

    Subsequently, Trey Harris' suggestion for using junctions and `~~` was
    discussed in a different thread <http://xrl.us/rvnc>.

  class interface of roles <http://xrl.us/rvnd>

    TSa wondered how typing of mixins <http://xrl.us/rvne> would look in
    Perl 6. A code example of how it might look was included. There were
    also some questions on roles in Perl 6.

  Threads and types <http://xrl.us/rvnf>

    Aaron Sherman asked whether or not the type system and the meta model
    is shared between threads, especially in the light of a shared
    variable of a certain type.

  call, call(), .call, and captures <http://xrl.us/rvng>

    Trey Harris pointed out that there are three types of 'call' as
    expressed in S06 and S12. He would like to see the syntax normalized
    to avoid confusion. Aaron Sherman and Markus Laire added some
    comments. Larry Wall wanted to avoid using related names for unrelated
    concepts. He thought that perhaps three different names (`call`,
    `callargs` and `callcap`) would help clarify the situation. Aaron
    Sherman liked the idea.

  Capture sigil <http://xrl.us/rvnh>

    Larry Wall announced that Captures will now have their own sigil,
    allowing captures stored in scalars to be "interpolated" into argument
    lists without using the `[,] =$capture` form. It was eventually
    decided that `|` will perform this role. The resultant syntax is:

    my $foo = (:foo(4), $blah);

    gorch(|$foo);

    which is analogous to:

    my $foo = ??bar gorch??;

    my @array = ( "foo", @$foo

  [svn:perl6-synopsis] r12284 - doc/trunk/design/syn <http://xrl.us/rvni>

    Larry Wall committed a change to S02 concerning the | sigil and
    operator. Aaron Sherman requested an update to S03's 'Junctive
    operators' to resolve the ambiguity of `a|$b`, `a | $b`, and `a |$b`.
    Larry attempted to clarify. Mark J. Reed noted that this implies that
    subroutines without arguments will be rare, but methods without them
    will be commonplace, introducing the same ambiguity with `$o.a%$b` and
    other similar-looking expressions. Larry replied that a method does
    not take arguments without `:` or `()`.

    Aaron commented on Larry's statement that bare constants are being
    discouraged in favor of sigiled constants by asking if `pi` and `e`
    should become `$pi` (or `$??`) and `$e`.

  Dumb list-flattening question. <http://xrl.us/rvnj>

    Mark J. Reed wanted to know how to create a two element list out of
    two arrays, which in Perl 5 would be `(@a, @b)`. If the syntax is the
    same, he wanted to know what the `` mechanism is called, since
    references are automagical. Juerd replied that they are captures.
    Aaron Sherman elaborated Juerd's answer by referencing S03. Mark J.
    Reed suggested mentioning captures to prevent list flattening in S09.
    Mark Stosberg felt that the specification for `` was unclear.

  Capture Literals <http://xrl.us/rvnk>

    Jonathan Lang asked how he could construct a capture literal which has
    both an invocant and at least one positional argument, and how it
    would be distinguished from a capture literal which has no invocant
    and at least two positional arguments. He offered some example code,
    which, according to Larry Wall, was correct aside from a syntax error.

  Motivation for /<alpha>+/ set Array not Match? <http://xrl.us/rvnm>

    Audrey Tang quoted a section of S05 concerning subrules. She found the
    'quantified' clause to be unintuitive and wondered if it would be
    possible to modify it to produce Match objects and to reserve Array
    only for noncontiguous same-name subrules. Patrick R. Michaud and
    Flavio S. Glock made some alternate suggestions.

 Parrot Porters

  HOWTO give options to parrot in tests <http://xrl.us/rrap>

    Last week, Karl Forner posted that he is working on [perl #40064]
    <http://xrl.us/qvjs>. He was wondering how he could run the script
    with options, and wanted to know if `TEST_PROG_ARGS` would be an
    appropriate choice. Leopold Toetsch suggested subclassing
    Parrot::Test.

    Karl noted that if he subclasses Parrot::Test he won't be able to
    reuse the code. Leopold replied that there are already test classes in
    `lib/Parrot/Test/*.pm`.

  gmp_version undeclared <http://xrl.us/rvnn>

    David Romano reported that his Parrot build failed due to the
    gmp_version being undeclared. He included a patch for people who don't
    have GMP installed. Alberto Sim??es noted it was fixed in r14636.

  pcre tests <http://xrl.us/rvno>

    David Romano reported that two tests which depend on PCRE failed when
    PCRE is not installed. The code which checks for PCRE does not work.
    David included a patch to fix this.

  RFC: Consolidate stack-unwinding code <http://xrl.us/rvnp>

    Bob Rogers refactored Parrot's stack unwinding code, consolidating
    it's various incarnations into the continuation invocation. Leopold
    Toetsch answered some of Bob's questions. Larry Wall clarified Perl
    6's requirements of Parrot's continuation handling.

    Matt Diephouse commented that this change broke Tcl's `uplevel`, and
    helped Bob to test a quick fix that preceded a real fix.

  [perl #40349] [PATCH] #40278: [CAGE] perl coding standards coda.
  <http://xrl.us/rvnq>

    Paul Cochrane sent a patch to try to close ticket [perl #40349]
    <http://xrl.us/rvnr>, which was related to [perl #40278]
    <http://xrl.us/roay> and concerned coding style.

  [perl #40360] [PATCH] implement loadlib(NULL) <http://xrl.us/rvns>

    Dmitry Karasik sent a patch in [perl #40360] <http://xrl.us/rvnt>,
    which was applied as revision r14670.

  Re: [perl #40361] [PATCH] #40278 [CAGE] perl coding standards coda.
  (cont.) <http://xrl.us/rvnu>

    Paul Cochrane supplied a patch for bringing various files in the
    Parrot repository up to the coding standards. Jerry Gay noted some
    problems with the change, which Paul corrected. This was eventually
    added to RT as [perl #40364] <http://xrl.us/rvnv>.

  #parrotsketch logs: 19SEP06 <http://xrl.us/rvnw>

    Jerry Gay posted the URL of latest #ParrotSketch log
    <http://xrl.us/rvnx>.

  [perl #40367] [TODO] SDL tests <http://xrl.us/rvny>

    In ticket [perl #40367] <http://xrl.us/rvnz>, Leopold Toetsch
    requested tests for configuration, all SDL classes and interfaces,
    tests of full-fledged examples, and eventually tests for the GUI.

  [perl #40370] [PATCH] code_coda.t update <http://xrl.us/rvn2>

    Paul Cochrane submitted a number of patches to add the required emacs
    and vim coda as requested in [perl #40279] <http://xrl.us/roa2>.

    * [perl #40370] <http://xrl.us/rvn3> (applied as 14671)
    * [perl #40371] <http://xrl.us/rvn4> (applied as 14673)
    * [perl #40372] <http://xrl.us/rvn5> (applied as 14674)
    * [perl #40373] <http://xrl.us/rvn6> (applied as 14675)
    * [perl #40374] <http://xrl.us/rvn7> (applied as 14676)
    * [perl #40377] <http://xrl.us/rvn8>
    * [perl #40393] <http://xrl.us/rvn9> (applied as 14688)

  [perl #40379] [TODO] investigate use of tools/dev/as2c.pl
  <http://xrl.us/rvoa>

    In ticket [perl #40379] <http://xrl.us/rvob>, Jerry Gay requested an
    investigation in to `tool/dev/as2c.pl` because makefile it calls is
    not platform-independent. Leopold Toetsch explained the purpose behind
    the file.

  [perl #40380] [PATCH] errors on 'make install' - src/pdb.c
  <http://xrl.us/rvoc>

    In ticket [perl #40380] <http://xrl.us/rvod>, Herbert Poul reported a
    failure with `make install`. He included a patch.

  [DONE] shootout example testing <http://xrl.us/rvoe>

    Karl Forner included a patch to test the shootout PIR programs in
    `examples/shootout.pir`, which was applied as r14684.

  [perl #40392] [CAGE] convert C<internal_exception> to C<real_exception>
  <http://xrl.us/rvof>

    In ticket [perl #40392] <http://xrl.us/rvog>, Jerry Gay requested that
    instances of `internal_exception` be replaced with `real_exception`.
    Bob Rogers pointed out that in many instances, `internal_exception`
    might be needed because `real_exception` requires a working control
    stack.

  [perl #40394] [PATCH] Added a test for multiple codas to
  t/codingstd/code_coda.t <http://xrl.us/rvoh>

    Paul Cochrane sent a patch as ticket [perl #40394]
    <http://xrl.us/rvoi>. The patch includes tests for multiply-defined
    codas. Jerry Gay modified it slightly and applied it as r14686.

  [perl #40402] Remove src/ops/dotgnu.ops <http://xrl.us/rvoj>

    Bernhard Schmalhofer wondered in ticket [perl #40402]
    <http://xrl.us/rvok> if he could remove `dotgnu.ops` which was a
    conversion file for C# which now appears obsolete. Jonathan
    Worthington suggested removing it, and Leopold Toetsch pointed to his
    generic answer on the subject.

 Users

  the CGI.pm in Perl 6 <http://xrl.us/rras>

    Last week, a number of posts were devoted to discussing the merits of
    refactoring and renaming CGI.pm for Perl 6. Removing HTML generation
    methods from the core module, renaming CGI, and the relationship
    between CGI.pm and session management received the most type. This
    week, the thread continued.

    Once again, several people expressed the opinion that HTML generation
    could be included in a separate module which worked well with the
    parameter gathering, but the view that these are integrated tasks was
    also expressed. Mark Stosberg suggested that people who have concrete
    ideas about the API should create a wiki page
    <http://rakudo.org/perl6/index.cgi>. This would allow the design to be
    developed by many people and understood by those with less API design
    experience.

    Mark also pointed out that the suggestion of `use perl5:CGI` might not
    work well in practice, as currently it is not clearly defined how to
    pass information to Perl 5. This led to a side discussion on how Perl
    5 embedding should work. Mark created a wiki page <http://xrl.us/rvon>
    to summarize expectations about Perl 5 embedding.

    Meanwhile, Juerd suggested that the `param` method should be replaced
    with two hashes, `get` and `post`. A. Pagaltzis thought that the
    beauty of the `param` method is that it lets you treat input as
    single- or multi-valued at your own discretion. The topic continued,
    with a detour to cover the correct syntax for `my @bar =
    $q.param<bar>[];`.

    Another topic was concerned with the default encoding. An argument was
    made for it being UTF-8, and another person preferred it to be
    undeclared. The HTTP specification says that the default is Latin 1.

    In thread CGI Session management (was Re: the CGI.pm in Perl 6)
    <http://xrl.us/rrax>, the discussion of session management continued.
    Last week, Michael Snoyman suggested including it in CGI.pm, and Yuval
    Kogman begged for a plugin solution. This week, the thread was
    consumed by the API design and module naming discussions from the
    initial thread.

    In the splinter on module names, Juerd was completely against anything
    which contained the word 'CGI'. Ian Langworth proposed 'HTTP', but
    several people thought that the module typically involves fetching
    parameters, not dealing with the protocol.

    As for the API design discussion, it repeated the main thread's
    arguments for the most part. Jacinta Richardson introduced a new
    request: subroutines should have a uniform naming scheme, rather than
    mixing terms (`scrolling_list` but `popup_menu`) and underscores
    (`textfield` versus `password_field`).

    For more CGI discussion, also see Web development I: Web::Toolkit
    <http://xrl.us/rvom>.

  Trying to use Perl5 modules <http://xrl.us/rraw>

    Earlier, Richard Hainsworth was trying to discover how to use Perl 5
    modules in Perl 6. He included some code which worked in Perl 5, and
    asked how he could use them in Pugs. Trey Harris replied that imports
    currently don't work, and showed a workaround. Audrey Tang answered
    that imports were implemented a few weeks ago, but implicit imports
    aren't supported yet.

    This week, Mark Stosberg thanked Audrey for the status update and
    corrected the wiki to contain this information. He invited others to
    include tips about Perl 5 embedding <http://xrl.us/rvon>.

  Index of terms <http://xrl.us/rvoo>

    Richard Hainsworth asked for an index of terms to be compiled for the
    Synopses. The silent masses apparently use `grep -r`, or Perl6::Bible
    <http://xrl.us/rvop>.

  more on perl5 modules <http://xrl.us/rvoq>

    Richard Hainsworth asked for help using Perl 5's Gtk2 module in a Perl
    6. Aristotle Pagaltzis corrected his code, but that version didn't
    work on Richard's version of pugs, which Juerd explained was ancient.

  Trying to make a new operator <http://xrl.us/rvor>

    Richard Hainsworth was trying to define a custom operator, but it
    didn't work out. Daniel Hulme noted that the operator has to be
    declared up right to be used, and Yuval Kogman subsequently nitpicked
    that only the grammar needs to know about it's existence, and a stub
    definition will do. With his new found knowledge, Richard went on to
    implement the birth of Jesus, which Markus Laire refactored. No
    religious wars ensued.

  Web development I: Web::Toolkit <http://xrl.us/rvom>

    After much discussion in 'the CGI.pm in Perl 6 <http://xrl.us/rras>',
    Juerd decided to create a new thread to clarify and summarize his
    feelings on how Perl 6 should address web development. The
    conversation moved on to XHTML versus HTML and whether code which
    generates HTML should confirm to the XHTML specifications by default.

    Juerd continued the discussion of web development in 'Web development
    II: Code <http://xrl.us/rvos>' with code examples.

  perl6 and a multi-interpreted-language example <http://xrl.us/rvot>

    William Herrera cited a blog post <http://e-scribe.com/news/193>, akin
    to a language shootout, implementing the game of reverse in several
    languages. Juerd and Larry Wall provided their take on a Perl 6
    version of the code, while Aristotle Pagaltzis provided a version in
    Perl 5 which he felt represented it better.

  perl6 and a multi-interpreted-language example <http://xrl.us/rvou>

    William Herrera asked how one would go about implementing the game of
    Reverse <http://e-scribe.com/news/193> in Perl 6. Larry promptly
    supplied a Perl 6 version, while Aristotle Pagaltzis provided an
    implementation in Perl 5 that seemed to do it more justice.

  Perl6 "style-guide" <http://xrl.us/rvov>

    Fagyal Csongor asked if someone was willing to write a Perl 6 style
    guide. Aristotle Pagaltzis debated the merits of such a site, and
    mentioned that a cheat sheet for Perl 5 hackers would be nice. Carl
    M??sak mentioned the pugs porting howto <http://xrl.us/rvow> in
    response. Darren Duncan suspected that Damian Conway's Perl Best
    Practices book was written to be forward compatible with Perl 6, a
    suspicion that Larry Wall confirmed. Lastly, Jerry Gay urged Fagyal to
    start a wiki page for a style guide, an idea expanded on by Michael
    Snoyman.

  Web development II: Code <http://xrl.us/rvos>

    Juerd posted several pseudocode stub classes for the basis of a web
    framework, proposing that they be put on some wiki space. Steffen
    Schwigon then offered the list in general subversion space for such
    endeavors.

    This message followed from 'Web development I: Web::Toolkit
    <http://xrl.us/rvom>'.

 Compiler

  PCR replaces PGE in Pugs <http://xrl.us/rvox>

    Agent Zhang announced that PCR (the implementation of Perl 6 rules in
    perl 5) will replace PGE as the default rule engine in Pugs. This is
    supposed to solve the many issue people have with binding pugs to
    parrot.

  Check smoke results while reading Synopses <http://xrl.us/rvoy>

    Agent Zhang announced that the smoke server and the synopses are now
    integrated using the smart link platform.

  Updates to "Perl 6 and Parrot Essentials" <http://xrl.us/rvoz>

    ajr asked if an errata/updates file for Perl 6 and Parrot Essentials
    (2nd edition) <http://xrl.us/rvo2> exists. Agent Zhang said that the
    book is now very much out of date, and that the synopses are a better
    place to look. Michael Snoyman and Sam Vilain both said that in their
    opinion the book was still a nice way to jump into Perl 6.

 Acknowlegements

    This summary was prepared using Mail::Summary::Tools
    <http://xrl.us/qvno>, now available on CPAN.

    If you appreciate Perl, consider contributing to the Perl Foundation
    <http://donate.perlfoundation.org> to help support the development of
    Perl.

    Yuval Kogman covered a number of threads this week.

    Thank you to everyone who has pointed out mistakes and offered
    suggestions for improving this series. Comments on this summary can be
    sent to Ann Barcomb, <[EMAIL PROTECTED]>.

 Distribution

    This summary can be found in the following places:

    * use.perl.org <http://use.perl.org/>
    * The Pugs blog <http://pugs.blogs.com/>
    * The perl6-announce mailing list <http://xrl.us/qycj>
    * ONLamp <http://www.oreillynet.com/onlamp/blog/>

 See Also

    * Perl Foundation activities <http://blog.perlfoundation.org>
    * Perl 6 Development <http://dev.perl.org/perl6>
    * Planet Perl Six <http://planetsix.perl.org/perl6>

Reply via email to