Weekly Perl 6 mailing list summary for 29 January - 3 February, 2007

Ann Barcomb <[email protected]> Sat, 24 Feb 2007 15:41:24 +0100 (CET)
Newsgroups gmane.comp.lang.perl.perl6.announce
Message-ID <[email protected]>
  This week on the Perl 6 mailing lists

     ": This mornings up date proposed

     "Now the da rn spam fi1ters are chang.ng my spelling to look like
     sp*m. Yeah, that's the 4icket... :)"

     -- Larry Wall, in 'Enhancing array indices <http://xrl.us/uqks>'


  Language

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

     A commit from Larry Wall reorganized S03. This led Nicholas Clark to
     comment that the sequencing operator is not defined. He had a few
     other notes about the commit. John Macdonald responded to Nicholas's
     question "Is it defined that `$a + $b` evaluates the arguments in any
     particular order?" by stating that in C, it is deliberately left
     undefined to allow the code generator more flexibility. Aaron Crane
     also spoke up, further explaining how C functions.

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

     In this commit, Larry Wall clarified `gather` and `take`. Gaal Yahas
     wanted to know what it means for `take` to be evaluated in void
     context. He included some example code and asked what the result would
     be.

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

     Larry Wall applied some clarifications which were suggested by Gaal
     Yahas. Gaal, however, had some more questions. This concerned `gather`
     in S04. These were addressed in Larry's next commit.

   Typology of auto*crement <http://xrl.us/uqkm>

     Larry Wall replied to a comment by TSa in another thread, wherein TSa
     wondered if `++` and `--` coerce Nums to Ints. Larry stated that since
     a Str remains a Str in a similar situation, the Num should also retain
     its type. One exception that he could see would be that incrementing
     an Undef would create an Int.

     In thread 'Int-to-Num autocoercion <http://xrl.us/uqkn>', Larry
     expanded on how coercions are handled in functions. He said that Num
     to Int autocoercion is an explicit exception which is expected by Perl
     5 programmers, and Str to Num (and the inverse) are also done
     automatically at times. Larry further explained that there had been
     numerous discussions on the subject, and the general feeling is that
     exotic types should not autocoerce unless a multi has been declared to
     handle the situation.

     TSa made a reference to the long-running 'Numeric Semantics
     <http://xrl.us/t3o7>' to discuss how auto-coercion would work with
     `floor`. Darren Duncan replied that a `floor` would return an Int by
     definition, so that it would in fact be a way of explicitly
     converting.

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

     Larry Wall made a commit which disabled negative subscript 'dwimmery'
     for shaped arrays, which can now take `+` and `-` operators. He then
     wondered if a multidimensional `Whatever (**)` would mean the same
     thing in "whatever" dimensions.

     David Green noted that the subject of ordinals had come up some time
     ago, and quoted a message from Larry dating back to 2004. He added his
     thoughts to the subject as well.

     Blair Sutton felt that Perl 6 should stick with 0 as the first element
     of a list to avoid alienating programmers from most other languages.
     He thought that it could be adjusted by a user-defined Parrot grammar
     for those who didn't like the traditional starting value, although he
     had personally never required that feature.

     Smylers was of the opinion that a pragma is overkill, and a global
     variable would be sufficient. Jonathan Scott Duff responded that a
     pragma would be useful to Pascal or Fortran programmers, and therefore
     it would be handy to have a pragma. Rafael Garcia-Suarez added that
     `$[` is a pragma in Perl 5.

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

     Larry Wall made a commit concerning `*+` versus `*-` in subscripts.
     TSa replied that the distinction between the cases would be that they
     dispatch to different functions: `*` to `postcircumfix`, `*+` to
     `infix:<+>` and `*-` to `infix:<->`. TSa asked some questions based
     upon this observation.

     Larry responded that he did not want Whatever to package the array. He
     felt that in TSa's example, it would be necessary to dispatch to
     Whatever and let the Whatever code extract relevant information
     relating to `*`. TSa requested further information.

   Enhancing array indices <http://xrl.us/uqks>

     Jonathan Lang wondered if it would be possible to get a
     single-character symbol which could be used in an array index to refer
     to its shape, for example something like `@x[*.head]`. Larry Wall
     replied that a recent suggestion was to use a syntax like `@x[*+0]`.
     There was further discussion on syntax possibilities, with Jonathan,
     Darren Duncan and TSa joining the thread. Darren proposed getting rid
     of negative subscripts and using only terms like `@foo[*.head]`, which
     he felt had the advantage of being more consistent (for shaped and
     unshaped arrays), and easier to learn.

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

     Although he admitted that the month of Nob is cute, Larry Wall
     nevertheless changed S01's last modified date to Nov. In a followup
     commit, Larry changed the date to Jan.

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

     Larry Wall made a commit to allow colon pair syntax for a method-like
     sort of filetest. Smylers liked the changes, but was concerned about
     `filename.TEST` because there are only so many permutations of the
     word available for testing frameworks. Larry listed a host of other
     possible names, and was leaning toward `STATUS`.

  Parrot Porters

   [perl #41364] [PATCH] Fixed object vtable method overrides in PIR
   <http://xrl.us/uqma>

     Alek Storm submitted a patch as ticket [perl #41364]
     <http://xrl.us/u3h4>. The patch allows object vtable method overrides
     for a number routines, such as `find_method` and `get_attr`. He also
     wondered if the double-underscore method of overriding could be
     deprecated now that there is the :vtable flag. Patrick R. Michaud
     responded that the deprecation cannot take place until ticket [perl
     #40626] <http://xrl.us/s5rj> is resolved.

   [PATCH] PDD22 spec notes and ParrotIO tests <http://xrl.us/uqmc>

     Jerry Gay mentioned that he had written tests for the ParrotIO object,
     which he included as a patch. He also had some questions about PDD 22.
     Allison Randal answered the questions.

   Porting parrot on PDA <http://xrl.us/uqmd>

     Aldo Calpini wrote of an interest in porting Parrot to the PocketPC.
     CeGCC is a Windows port of gcc which produces ARM executable code. The
     first attempt at porting went well. A report of the procedure was
     included in the post.

   [perl #41371] [TODO] review parrot roles & responsibilies doc before
   next release <http://xrl.us/uqme>

     In ticket [perl #41371] <http://xrl.us/u3h5>, Jerry Gay noted that in
     r16834 he had committed `docs/roles_responsibilities.pod`. He asked
     project members to review it before the 0.4.9 release.

   [perl #41373] Need test for Clone of HLL info <http://xrl.us/uqmf>

     Will Coleda created ticket [perl #41373] <http://xrl.us/u3h6> to
     request a test to replace the ones marked 'todo' which relied on Perl
     5 PMCs.

   [perl #41374] test MMD with non-perl PMCs <http://xrl.us/uqmg>

     Ticket [perl #41374] <http://xrl.us/u3h7>, initiated by Will Coleda,
     requested tests for MMD which don't rely on Perl PMCs.

   Language Testing <http://xrl.us/uqmh>

     Klaas-Jan Stol remarked that he was trying to set up a test harness
     for PIR. It appeared that the module `PIR.pm` was not used, and he was
     unable to find documents on how to set it up. He offered to patch the
     compiler FAQ once someone explains it to him.

     Will Coleda explained that the problem was with the name of the
     language, with 'PIR' being reserved for internal testing. Therefore
     either `lib/Parrot/Test.pm` would require modification, or the
     language should be renamed, for instance to 'PIR_PGE'. With Will's
     advice Klaas-Jan was able to get it working.

   [PATCH] Updates for languages/PIR <http://xrl.us/uqmi>

     Klaas-Jan Stol submitted a patch to improve PIR. It includes a test
     suite, and corrections to several other files. Later, in '[PATCH]
     languages/PIR tests <http://xrl.us/uqmj>', and '[PATCH] languages/PIR
     more testing and fixing <http://xrl.us/uqmo>', he posted additional
     tests and corrections. Later there was also '[PATCH] PIR updates
     <http://xrl.us/uqmv>', which was applied as r16892.

   What Skills Do We Need to Finish Parrot? <http://xrl.us/uqmk>

     James E Keenan asked some questions with the intention of determining
     what part of Parrot he should focus on and try to encourage others to
     look at. He asked what code remains to be written before an alpha
     release can be made, and what skills are needed to produce that code.

     Allison Randal replied that the systems needing the most work are: IO,
     Events, Threads, Compiler tools interface, Object support, and
     Exceptions. She felt people with C skills are useful, as are people
     with general experience in dynamic languages.

     James then asked what the learning curve is for PIR. chromatic
     answered that the 'Parrot Essentials' book is still useful, although
     it is missing some of the more advanced features. He thought that it
     might be worth asking O'Reilly if the tutorial section could be
     expanded into public documentation, as there's currently no tutorial
     on PIR.

   [perl #41380] [PATCH]: docs/roles_responsibilities.pod: Minor
   grammatical corrections <http://xrl.us/uqmm>

     James Keenan submitted a patch to the roles and responsibilities file.
     It corrected punctuation errors and was applied as r16850. The patch
     was ticket [perl #41380] <http://xrl.us/u3h8>.

   On PASM and PIR registers <http://xrl.us/uqmn>

     Klaas-Jan Stol wondered if PASM registers are still needed, except for
     backwards compatibility, now that there are PIR registers. Leopold
     Toetsch replied that PASM registers are physically allocated in the
     Parrot virtual machine, whereas PIR registers are virtual registers.
     Both types are needed.

   [perl #41386] MANIFEST must die. <http://xrl.us/uqmp>

     Will Coleda created ticket [perl #41386] <http://xrl.us/u3h9> to
     express his opinion that `MANIFEST` should not be part of the
     repository. He pointed out that the purpose of this file is to make
     sure that the general release isn't missing any files, something you
     already know to be true when you are working with a repository. He
     suggested creating it when the release is generated.

     Allison Randal disagreed. She believes that the purpose of a MANIFEST
     is to tell you which files should be included in a distribution. She
     thought `MANIFEST.skip`, on the other hand, could be generated from
     the `svn:ignore` keyword before the distribution is created.

   [perl #41387] perlcritic.t picking up non-perl files
   <http://xrl.us/uqmr>

     In ticket [perl #41387] <http://xrl.us/u3ia>, Paul Cochrane reported
     that the new `Parrot::Distribution` module was finding some files
     which weren't actually Perl language files. This was later resolved by
     chromatic in r17069.

   [perl #41388] Parrot::Distribution doesn't exclude all external perl
   modules <http://xrl.us/uqms>

     In ticket [perl #41388] <http://xrl.us/u3ib>, Paul Cochrane reported
     that the new `Parrot::Distribution` module is not exempting external
     Perl modules such as Pod::Simple from its coding standards check.

   PBC to C Converter <http://xrl.us/uqmt>

     chromatic included a quick Perl program which writes a C program which
     makes a self-contained executable for a Parrot program. He thought
     that it was fairly cross-platform compatible, although there could be
     an issue with big-endian processors.

   PMC Tools Test Failure <http://xrl.us/uqmu>

     chromatic reported a failure with the buildtools tests following a
     `make realclean` and a Configure. James E Keenan responded that he's
     experienced it infrequently and thinks that it is a poorly-designed
     test rather than a real failure. There was a brief discussion on how
     to improve the test, with James suggesting that perhaps someone who
     was involved with the original development of `pmc2c.pl` could explain
     what is happening in the `DO_A_DUMP` loop.

   Q on PIR vs PASM <http://xrl.us/uqmw>

     Klaas-Jan Stol gave a brief history of how IMCC started, noting that
     it was eventually merged with Parrot as its parser, and since that
     time there have been several additions. He wondered if it is still the
     case that every PIR construct also has a PASM form, and if every PIR
     construct can be directly translated to PASM. Allison Randal replied
     that that was the ideal situation, but in practice many tests are
     written in PIR, so there may not be complete coverage for the PASM
     syntax versions.

   [PATCH] Update copyright for Parrot --version <http://xrl.us/uqmx>

     A patch by Klaas-Jan Stol contains a correction to make `parrot
     --version` give a copyright range of '2001-2007' instead of
     '2001-2006'.

   Copyright chang script and test <http://xrl.us/uqmy>

     Klaas-Jan Stol submitted a script which checks all files for the last
     changed date and updates the copyright notice in the file. The second
     is a test which finds files which have out-of-date copyright notices.
     chromatic replied that he had a couple of ideas for the script and
     would take a look at them soon.

  Users

   take()'s return value <http://xrl.us/uqm2>

     Gabriele Renzi wanted to know why `take` inside of a gather structure
     returns undef instead of a return value. Carl Mäsak had been wondering
     the same thing. Larry Wall couldn't remember why it hadn't been added
     to the specification, and put it in S04.

  Acknowledgements

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

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

     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.perlfoundation.org/>