Weekly Perl 6 mailing list summary for 1-7 October, 2006

[email protected] (Ann Barcomb) Sun, 8 Oct 2006 15:22:22 +0200 (CEST)
Newsgroups perl.perl6.announce
Message-ID <[email protected]>
  This week on the Perl 6 mailing lists

     "When I first read 'Warnock applies' on things in p6 summaries a year
     or so ago, I thought it was some really energetic programmer who went
     around and applied patches as soon as people posed a question."

     -- Carl Mäsak, on Warnock's Dilemma <http://xrl.us/r5wx>


  Language

   Nested statement modifiers <http://xrl.us/rjmq>

     Paul Seamons asked why multiple nested statement modifiers (`say "foo"
     if $foo for 1 .. 3`) are disallowed. A long discussion on the
     technical and ergonomical problems was stirred up. The general
     consensus is that there is still no good reason to allow nested
     statement modifiers.

   Exceptions on hypers <http://xrl.us/r5wy>

     In a subthread of 'Nested statement modifiers <http://xrl.us/rjmq>',
     Aaron Sherman asked what the semantics of exceptions within hyper
     operators are. Larry explained that since hyperoperators imply not
     caring about the order of the side effects (for multithreaded
     goodness), which element generates an exception might be
     implementation dependent.

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

     Last week, 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.

     This week, Sam Vilain thought that it would be the same as requiring
     that a class implement a method, except for a difference in syntax.
     This led Brad Bowman to ask how a role can require a target class to
     implement a method or do another role. Stevan Little answered that he
     believed this was done by providing a method stub. Jonathan Lang
     mostly agreed with Stevan and offered more details.

     chromatic thought that forbidding methods was potentially like the
     false-cognate problem. Stevan admitted that he had yet to find a
     real-world use for it.

     There was further discussion on roles.

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

     Last week, an earlier discussion on S05 subrules continued. Audrey
     Tang wondered if there was a hidden cost to making `/<foo>+/` always
     react so that `$<foo>.from` returns something. Carl Mäsak preferred
     the proposed semantics and asked if the question had been discussed
     off-list.

     This week, Audrey replied that there had been no further discussion.
     Carl asked for a short snipped to illustrate it, and supplied an
     anecdote about Warnock <http://xrl.us/r5wx> applying.

   RFC: multi assertions/prototypes: a step toward programming by contract
   <http://xrl.us/r5wz>

     Last week there was a great deal of discussion on this subject.

     This week, Tsa asked, in response to Larry Wall's comment, if
     namespaces give a structural type definition.

     Also, Aaron Sherman started a new topic entitled 'Abstract roles,
     classes and objects'. He asked rhetorically what was the use of an
     interface which doesn't give a guarantee. Trey Harris responded that
     there are three ways to manage a guarantee: an 'is abstract' marker,
     some type of inference, or by disallowing abstract classes. Jonathan
     Lang offered his definition of 'instance management'.

   Automatic coercion and context <http://xrl.us/r5w2>

     Joshua Choi asked how coercion interfaces are implemented and
     implicitly used. Musings on roles and the terror of implicit coercions
     in C++ were part of the discussion, but surprisingly the `as` multi
     method was not mentioned at all.

   "Don't tell me what I can't do!" <http://xrl.us/r5w3>

     Jonathan Lang initiated a long discussion by objecting to programming
     styles where a programmer can intentionally prevent someone else from
     taking what is otherwise a legitimate action. He cited an example from
     the recent discussion on allowing a role to prevent the consumption of
     another role ('class interface of roles <http://xrl.us/rvnd>').

     There was a suggestion that restrictions could be purely advisory.
     This led to the question of whether strict is localized. Larry Wall
     replied that the default is for lexically scoped pragmas, but that S01
     states that it must be possible to write policy meta models. More
     discussion on this topic followed.

   Mailing list archive and index <http://xrl.us/r5w4>

     Aaron Sherman posted that he was considering creating an archive of
     messages from the mailing list which would be easier to search than
     Google. The problem with the Google archive is that it includes
     discussion, and he's only interested in decision. He asked for
     opinions on the examples he posted. Darren Duncan suggested seeding
     from the existing mailing list archives.

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

     In this commit, Audrey Tang removed the 'single argument function
     becomes a method' rule from S12.

   if-else and statement-ending blocks? <http://xrl.us/r5w8>

     Markus Laire quoted a section of S04 on lines ending with `}` followed
     by nothing but whitespace or comments. He wondered if this meant that
     an else statement like
         };
         else {
     would be the same as the same without the semicolon.

   import collisions <http://xrl.us/r5w9>

     Jonathan Lang wanted to know what would happen if he imported two
     modules which export the same method. He felt that the resolution
     should be similar to role composition techniques. He suggested some
     syntax. Aaron Sherman thought that only plain multis would conflict,
     and suggested a warning would be most appropriate.

   Hash composers and code blocks <http://xrl.us/r5xa>

     Aaron Sherman quoted a section from S04 on the hash composer. He was
     afraid that the current syntax could lead to 'looks fine to the
     uninitiated' errors. He suggested providing an unambiguous form for
     all the sigiled types. He elaborated on his proposal.

  Parrot Porters

   [CAGE] perl coding standards... <http://xrl.us/r5xb>

     Earlier, Will Coleda posted an attempt at creating a perlcritic test.
     This week, Chris Dolan created a patch to simplify the test code by
     using Test::Perl::Critic.

   requirements gathering on mini transformation language
   <http://xrl.us/r5xc>

     Last week, Allison Randal asked for a volunteer to write up the
     requirements for a mini transformation language to use the compiler
     tools. The job would involve spending time with Allison and Patrick
     Michaud and combining their ideas along with your own perspective.
     Adriano Ferreira offered some opinions on the subject, and Markus
     Triska volunteered to do it if it relates to his area of expertise.

     This week, Aaron Sherman expressed confusion over the purpose of this
     project. He thought TGE performed this task. chromatic replied that
     the mini language would be "the stuff in curly braces" in the TGE
     grammar files.

     Adriano Ferreira named some desired features in a transformation
     language, such as a data structure pattern language, and rules which
     are selected via the patterns.

     Allison reported that there were several volunteers.

   [svn:parrot-pdd] r14784 - trunk/docs/pdds/clip <http://xrl.us/r5xd>

     Last week, Jonathan Worthington committed a draft PDD on Parrot's
     bytecode format. Ben Morrow wanted to know if pbc files could allow an
     optional `#!` line so that they could be used as executables. Jonathan
     replied that he had considered this, but rejected it because it is
     UNIX-specific. There was additional discussion on the topic.

     This week, Karl Forner suggested working around the need to specify
     the absolute path by using the `env` command.

   [perl #40443] Separate vtable functions from methods (using :vtable)
   <http://xrl.us/r5xe>

     In ticket [perl #40443] <http://xrl.us/r5xf>, Matt Diephouse noted
     that it was decided at OSCON 2006 that vtables and methods should be
     separated. This is the request for this modification.

   Can I use Parrot's subsystems in an embedded code? <http://xrl.us/r5xg>

     Nikolay Ananiev is working on a C project which will embed Parrot.
     He'd like it to be as portable as Parrot, and wondered if there was
     some way he could take advantage of Parrot's portability.

   Questions about FixedBooleanArray and ResizeBooleanArray
   <http://xrl.us/r5xh>

     Karl Forner was unable to find detailed specifications for the
     FixedBooleanArray and ResizeBooleanArray PMCs and was wondering what
     should happen if they were resized. Leopold Toetsch replied that the
     FixedBooleanArray won't resize, and specified what the default values
     should be.

     Some additional questions were asked in '[#39063 and #40066] boolean
     arrays <http://xrl.us/r5xq>'.

   Heads up: Dynamic environment now captured in continuations
   <http://xrl.us/r5xi>

     Bob Rogers announced that as of r14830, continuations capture the
     dynamic environment in order to restore it properly on invocation. He
     also noted that moving the `control_stack` slot broke coroutines, but
     that he suspected this was due to problems with coroutines. He asked
     to know if any problems with coroutines developed. François Perrad
     replied that he'd been unable to implement coroutines in Lua. Bob
     Rogers was not surprised, and discussed some of the problems involved.

   Emacs/vim code coda placement <http://xrl.us/r5xj>

     Paul Cochrane reported that the Perl::Critic policy for the coda skips
     `__END__` and `__DATA__` sections, but vim requires the coda to be
     within the first or the last 5 lines of the file. Chris Dolan agreed
     with Paul that using `=cut` for POD in the `__END__` section would
     work, but was not sure how to handle `__DATA__`. Will Coleda approved
     putting the coda after the `__END__`.

   [perl #40449] [PATCH] improvements to examples/io/httpd.pir
   <http://xrl.us/r5xk>

     Chris Dolan created ticket [perl #40449] <http://xrl.us/r5xm> to
     supply a patch to make improvements to the HTTP server which ships
     with Parrot. It was applied as r14833.

   Wikipedia example <http://xrl.us/r5xn>

     Aaron Sherman sent a patch which was requested on IRC. It contains
     code which executes the parser on a sample string and dumps the parse
     tree; it checks the speed of PGE. chromatic reported difficulties in
     getting the patch to work.

   [perl #40455] [PATCH] Bring dotnet back into unified languages testing
   <http://xrl.us/r5xo>

     Ticket [perl #40455] <http://xrl.us/r5xp>, by Bernhard Schmalhofer,
     contained a patch to extend the library search path to fix failing
     tests for `languages/dotnet`.

   [#39063 and #40066] boolean arrays <http://xrl.us/r5xq>

     Karl Forner wrote that he has been working on FixedBooleanArray and
     ResizeableBooleanArray. Ticket [perl #40066] <http://xrl.us/qvjw>
     indicated they needed to be rewritten. He also looked at bug [perl
     #39063] <http://xrl.us/r5xr> on ResizeableBooleanArray using 64 bytes
     per bit. He thought that it would be best to rewrite the PMC. He had a
     few questions on what was desired in an implementation. Bernhard
     Schmalhofer and Leopold Toetsch tried to answer the questions.

     From this, Karl concluded that the best solution might be to use an
     external lib. He also described two other possible approaches.

     A related thread is 'Questions about FixedBooleanArray and
     ResizeBooleanArray <http://xrl.us/r5xh>'.

   Linux/PPC Segfault in Build <http://xrl.us/r5xs>

     chromatic reported that he cannot get Parrot to build. Bob Rogers
     attributed the problem to his continuation changes, and thought r14845
     would correct the problem. chromatic confirmed that this solved the
     issue.

   [perl #40458] [PATCH] fix for c_code_coda.t multiple occurrences test
   <http://xrl.us/r5xt>

     In ticket [perl #40458] <http://xrl.us/r5xu>, Paul Cochrane supplied a
     patch to make the C-file coda test work correctly with multiple
     instances of the coda.

   Bytecode PDD <http://xrl.us/r5xv>

     Last week, Jonathan Worthington committed a draft of the Bytecode PDD
     and Leopold Toetsch offered comments.

     Bernhard Schmalhofer wondered if the 'UUID' field should be named
     'checksum'. Leopold agreed, but thought that a UUID was also needed.
     Jonathan noted that he had simply written down the incorrect
     definition in the file.

  Users

   trying to use a role within a role <http://xrl.us/r5xw>

     Richard Hainsworth posted some code where he was trying to use a role
     within a role and wondered why it didn't work. Audrey Tang replied
     that the statement-level `does` form of roles was not yet implemented.
     Later, she replied that it had been implemented as r13782. She gave
     Richard some information on writing tests for Pugs.

   error when using -> as lambda function <http://xrl.us/r5xx>

     Wim Vanderbauwhede reported a problem with using `->` in calculating
     the factorial of 5. Audrey Tang found the problem with the code, and
     recommended looking at 'Changes to Perl 5 operators' in S03. She asked
     if Wim could supply a test to ensure that `1<2` generates a parse
     failure.

   Operator overloading/Inheritance from built-in types?
   <http://xrl.us/r5xy>

     Wim Vanderbauwhede wanted to create a bitvector object and had
     problems overloading the `+` operator. He also wondered if it was
     possible to overload the assignment operator, and included code from
     his attempt. David Brunton offered a suggestion.

  Compiler

   Synopses on the smoke server are a bit out-of-date <http://xrl.us/r5x2>

     Previously, Agent Zhang reported that the synopses on the smoke server
     are out of date--r12432 as compared to version r12466 on feather,
     which syncs every hour.

     This week, Ingo Blechschmidt asked for an example of something which
     was out of date, because the timestamps indicated a recent refresh.

  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 assisted with summaries 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>