Weekly Perl 6 mailing list summary for 12-18 November, 2006

[email protected] (Ann Barcomb) Mon, 20 Nov 2006 17:36:17 +0100 (CET)
Newsgroups perl.perl6.announce
Message-ID <[email protected]>
  This week on the Perl 6 mailing lists

     "Sadly, the hallucinogens are essential, not external."

     -- Mark J. Reed in 'List assignment question <http://xrl.us/tc7m>'


  Language

   how to change the type of objects <http://xrl.us/s6uj>

     Last week, TSa asked how an object could change its type without
     loosing its identity. As an example, TSa suggested an `add_vertex`
     method which could be called on a polygon but not on a rectangle
     subtype of polygon. Darren Duncan wondered why one would declare a
     type as a rectangle and then mutate it so that it was no longer a
     rectangle. His opinion was that `add_vertex` should be fatal for the
     rectangle; the user can explicitly cast a rectangle into polygon
     first; or that the polygon class is immutable, and the `add_vertex`
     method creates a new polygon.

     This week TSa elaborated, stating that there were three issues:
     subtyping, the preservation of object identity, and the mutating
     `add_vertex` method, which were not all addressed by Darren's answer.

   generic ordinal-relevant operators <http://xrl.us/tc7i>

     Darren Duncan showed a list of comparison operators and the type of
     comparisons they perform. Missing in the list were generic
     ordinal-relevant operators for less-than, greater-than, and so on,
     although there are numeric and string comparisons of this type.

     Jonathan Lang replied that he doesn't see the need for distinct `eqv`,
     `==` and `eq` operators; he would rather replace these with `==`,
     '+==`, and '~==`, or even just `==` alone. There was further
     discussion on this proposal, with Darren preferring generics to be the
     shortest and prefixes indicating the numeric or string casting
     versions.

     Smylers requested that proposals for new operators should be
     accompanied with an example of awkward code which could plausibly be
     written in a natural setting, and a second example showing how the
     proposed operator would correct the situation. Larry Wall added the
     opinion that perfect orthogonality is neither possible nor desirable.

     However, `before` and `after` operators were accepted, as were min and
     max operators. This led to some further discussion on the syntax.

   named sub-expressions, n-ary functions, things and stuff
   <http://xrl.us/tc7j>

     Darren Duncan is designing an RDBMS which is a subset of Perl 6 with
     simple syntax and domain-specific additions. He gave an overview of
     the features of the language. This led to a few questions and
     suggestions on Perl 6. One was for something similar to the SQL (some
     dialects) `with` clause, which is an expression which can be embedded
     in other expressions, with repeated portions calculated only once.
     Another request was for a syntactical short-hand to add an immutable
     `bag` type. Thirdly, he suggested separate operators for integer and
     numeric operators, especially division. Next, there was a call for
     `floor()` and `ceil()` functions which take a number as input and
     return an integer. Finally, he proposed that built-in Perl 6 types all
     have multis for operators.

     Mark J. Reed and Mark A. Biggar commented on the absence of 'undef'
     and 'NaN' concepts in the RDBMS language Darren described, which
     Darren replied to.

     Smylers replied to Darren's first point, suggesting that the `do`
     block is similar. Darren replied that it may be sufficient for his
     purposes, and thanked Smylers for the suggestion. Dr. Ruud added some
     more examples.

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

     Larry Wall added missing generic boolean comparisons to S03.

   List assignment question <http://xrl.us/tc7m>

     Vincent Foley supplied some tests for the `*` operator, which is
     currently not implemented in Pugs. Larry Wall replied that perhaps `$`
     should be used instead, as `*` is likely to be confused with the
     slurpy `*`. He offered a few suggestions on the tests as well.

     There was a side discussion on when `my ($a, undef, $b) = 1..3;`
     worked in Perl 5.

   Smart Matching clarification <http://xrl.us/tc7n>

     Jonathan Lang brought up some information relating to hashes and was
     wondering if the matching operator ought to be modified since the
     concept for hash keys has since changed. Larry Wall replied that `===`
     was correct, but that the decisions on sorting may need to be
     rethought. Jonathan thought that not only was the current description
     suboptimal, it might not even be possible. Darren Duncan added in his
     opinion that .keys should return a Set. Jonathan had some concerns
     about the idea. Meanwhile, Paul Seamons made another suggestion based
     upon Template Toolkit's handling of the concept.

  Parrot Porters

   Coding Standard Questions <http://xrl.us/so89>

     Previously, there was a discussion on coding standards. This week,
     Chip Salzenberg joined in. He thanked Kevin Tew for asking the
     questions and gave his answers on what the standards should be.

   [perl #40934] [TODO] Tcl - check for open channel in
   src/builtin/flush.pir <http://xrl.us/tc7o>

     Paul Cochrane submitted a patch for ticket [perl #39704]
     <http://xrl.us/sznu> as [perl #40934] <http://xrl.us/tc7p>.

   How do I associate methods with a compiler? <http://xrl.us/s5tw>

     Earlier, Patrick R. Michaud gave some background in to the issue,
     explaining how Parrot currently handles compilers, and what PDD21 has
     to say on the subject. He was curious about how to conceptually model
     compilers in Parrot. He favored a compiler with an object which has a
     `compile` method as a model.

     This week, Patrick summarized a #parrotsketch meeting where it was
     decided that the convention would be to have a `compreg` opcode return
     an object with a `compile` method, instead of returning an invokable
     subroutine. Allison Randal clarified a few points from the meeting.

     Leopold Toetsch recommended against recreating the `compile` opcode as
     a means of making the `compile` method call. Allison elaborated on
     what was intended by the suggestion, and Leopold clarified his stance.

   [perl #40788] Tcl - bug in interactive tclsh <http://xrl.us/s6um>

     Will Coleda posted details on how someone could resolve ticket [perl
     #40788] <http://xrl.us/s6un>.

   [perl #40814] [PATCH] Assorted Solaris fixes <http://xrl.us/tc7q>

     Steve Peters sent in a patch to make Parrot compile on Solaris. It was
     sent as ticket [perl #40814] <http://xrl.us/tc7r>. The patch was
     applied in r15445.

   [perl #40815] Summary of 'make test' failures on Darwin
   <http://xrl.us/tc7s>

     In ticket [perl #40815] <http://xrl.us/tc7t>, James Keenan sent a
     summary of Parrot test failures on Darwin. Steve Peters reported that
     one of the problems had been fixed in r40818.

   [perl #40816] open opcode creates file if it doesn't exist
   <http://xrl.us/tc7u>

     In ticket [perl #40816] <http://xrl.us/tc7v>, Jonathan Rockway
     reported that the open opcode creates the file if the file doesn't
     exist. He was not sure if this was a bug.

   [perl #40817] [TODO] track generated files during the configure/make
   process <http://xrl.us/tc7w>

     Jerry Gay suggested appending each file to a list when it is created,
     replacing the MANIFEST. The idea was described in [perl #40817]
     <http://xrl.us/tc7x>.

   [perl #40818] [PATCH] Silence warning in t/library/pcre.t
   <http://xrl.us/tc7y>

     In ticket [perl #40818] <http://xrl.us/tc7z>, Steve Peters created a
     patch to fix a warning in `t/library/pcre.t`, which was applied as
     r15442.

   [perl #40819] [TODO] Remove Duplication in t/codingstd/*.t Files
   <http://xrl.us/tc72>

     chromatic created ticket [perl #40819] <http://xrl.us/tc73> to request
     the removal of duplicate tests in the coding standards section.

   [perl #40822] Pg NCI Test Makes Unportable Connection
   <http://xrl.us/tc74>

     In ticket [perl #40822] <http://xrl.us/tc75>, chromatic commented that
     `t/library/pg.t`'s assumption of a certain database setup is faulty.
     He proposed using an environment variable to define the user name and
     password.

   [perl #40823] Win32 vs. the world - length for sprintf('%e') - what's
   right? <http://xrl.us/tc76>

     In ticket [perl #40823] <http://xrl.us/tc77>, Chip Salzenberg
     requested that someone see what Perl does on Win32 to test sprintf.
     SADAHIRO Tomoyuki answered that it drops the superfluous zero from the
     return value.

     Jerry Gay noted that he preferred a fix in Parrot_sprintf, rather than
     in the related test. He felt that Parrot should act in a consistent
     way across platforms. Allison Randal noted that the decision had been
     made to go with a platform-independent implementation.

   [perl #40824] loadlib opcode causes problems with exceptions
   <http://xrl.us/tc78>

     In ticket [perl #40824] <http://xrl.us/tc79>, Matt Diephouse included
     a patch to fix loadlib failures which were previously not catchable
     exceptions. Bob Rogers noted that he thought the problem was in the
     `:init` code. The patch was committed as r15413, but it was agreed
     that the questions remain.

   [perl #40826] Mac OS X and Dylib Funcs <http://xrl.us/tc8a>

     In ticket [perl #40826] <http://xrl.us/tc8b>, chromatic reported some
     portability wrappers which were deprecated in Mac OS X 10.3 in favor
     of the functions themselves. He removed the test which relied upon the
     old behavior, but noted that the Darwin hinter should pick the correct
     dl.c file based upon the OS X version.

   [perl #40827] [BUG] testing alarm with exception handlers causes
   runloops to play leapfrog <http://xrl.us/tc8c>

     Jerry Gay noted in ticket [perl #40827] <http://xrl.us/tc8d> that
     there is a problem with alarm and exception handlers. He included some
     sample code. Bob thanked Jerry for the example but replied that he
     didn't yet have a good solution to the problem.

   [perl #40834] [BUG] - PMC methods aren't inherited to PIR subclasses
   <http://xrl.us/tc8e>

     In ticket [perl #40834] <http://xrl.us/tc8f>, Patrick R . Michaud
     reported that if a METHOD is defined in a .pmc file, it is not
     automatically inherited by PIR subclasses. Leopold Toetsch clarified
     that some METHODs are implemented in a way which doesn't cope with
     inheritance. He thought this was related to ticket [perl #39329]
     <http://xrl.us/tc8g>.

   Assertion failed: (PTR2UINTVAL(mmd_table[i].func_ptr) & 3) == 0
   <http://xrl.us/tc8h>

     Ron Blaschke reported that in r15444, Parrot failed to smoke on his
     Win XP box. He included the results of the attempt.

   RFC: Proposal for dynamic binding <http://xrl.us/tc8i>

     Bob Rogers included a patch to the proposal for dynamic binding in
     Parrot, and requested comments. Leopold Toetsch asked Bob to consider
     the impact of a third variation using STM, which is already
     implemented. Bob replied with a description of the problems he saw
     with STM and continuations.

     Allison Randal thanked Bob for the proposal and gave some comments she
     had on it. Bob replied.

   [perl #40861] [CAGE] - add a Perl::Critic policy to look for
   FIXME|TODO|XXX <http://xrl.us/tc8j>

     In ticket [perl #40861] <http://xrl.us/tc8k>, Paul Cochrane noted that
     the test which checks for TODO (and related) comments only applies to
     C-language files, and that it would be good to look for them in Perl
     as well. Chris Dolan replied that there is a policy available on CPAN
     which would do this.

     Will Coleda asked Andy to adjust the patch to allow TODO comments with
     RT tickets attached to them, but to disallow those without. Andy
     Lester objected to Will's suggestion, and proposed instead that TODO
     items with tickets simply include 'RT' and the ticket number. This was
     addressed in '[perl #40912] [CAGE] Tcl - convert all XXX (#...)
     comments to the RT#... format <http://xrl.us/tc8m>'

   set_pmc + setref/deref: anyone using them? <http://xrl.us/tc8n>

     Matt Diephouse wanted to know if anyone would be upset if he removed
     the `set_pmc` vtable and the `setref` and `deref` opcodes. Allison
     Randal thought it sounded like a bad idea to simply remove opcodes
     because they were broken. She wanted to know what problem they were
     intended to solve, and what the replacement strategy for is.

   [perl #40863] [TODO] Tcl - Actually support bignums <http://xrl.us/tc8o>

     In ticket [perl #40863] <http://xrl.us/tc8p>, Matt Diephouse showed
     some code which checks if the value is too large to be represented by
     a normal integer, and sets the value to zero if it is. He thought it
     should be possible to change the code to support larger numbers.

   [perl #40865] [TODO] ensure isxxx() and toxxx() are only passed unsigned
   char values <http://xrl.us/tc8q>

     In ticket [perl #40865] <http://xrl.us/tc8r>, Chip Salzenberg noted
     that the `isxxx` and `toxxx` functions should only be given unsigned
     character values. He requested that a cage cleaner check calls to
     them, and repeat the task periodically.

   Fwd: Re: [pirate] Re: languages/python - any plans? <http://xrl.us/tc8s>

     Leopold Toetsch forwarded a letter from the pirate development list.
     In the mail, Tyler Coumbes said that he had some Python PMCs based off
     the ones in Parrot's repository. He had hoped to clean them up and
     submit patches, but life was interfering. He indicated where the files
     could be found, in case someone else was interested in looking at
     them.

   Release: Parrot 0.4.7, "Caique" <http://xrl.us/tc8t>

     Chip Salzenberg announced the release of Parrot 0.4.7, "Caique".

   [perl #40884] [CAGE] update parrothist.pod from email archives
   <http://xrl.us/tc8u>

     Chip Salzenberg created ticket [perl #40884] <http://xrl.us/tc8v> to
     request that someone check the email archives for the names given to
     previous releases to add to the history in `docs/parrothist.pod`.

     Paul Cochrane reported that he had done some of the work, but that he
     was unable to find reports of other releases. Also, he thought there
     were some duplicated names.

   Object design revisions <http://xrl.us/tc8w>

     Allison Randal reported that she had finished reviewing the PMC object
     design meeting notes, which was a summary of the design discussion
     written during last weekend's hackathon. She invited questions or
     comments. chromatic had a few notes, and Allison responded to his
     points.

   [pmc_object_design_meeting_notes] Properties <http://xrl.us/tc8x>

     Leopold Toetsch responded to the recommendation to deprecate property
     support in PMCs. Discussion ensued, with chromatic and Allison Randal
     participating. Allison suggested that the discussion of properties
     should be delayed for a week because it is related to the role
     architecture.

   [perl #40905] [CAGE] coding standards hammer too big
   <http://xrl.us/tc8y>

     In ticket [perl #40905] <http://xrl.us/tc8z>, Will Coleda noted that
     files copied from external sources should not be required to meet
     internal coding standards.

   [perl #40909] [BUG] Tcl - [namespace eval] + [source] + [proc] don't
   play well together <http://xrl.us/tc82>

     In ticket [perl #40909] <http://xrl.us/tc83>, Matt Diephouse reported
     that some Tcl code was not working as expected. He thought there
     should be a test, but because it depends upon an external file, he was
     not sure how to best write it.

   Fwd: MC units refreshed <http://xrl.us/tc84>

     Based upon a post from H. Merijn Brand to the Perl 5 Porter's list,
     chromatic wondered if the configure system needed to be updated.

   [perl #40910] [CAGE] Fix t/distro/file_metadata.t to work in svn
   <http://xrl.us/tc85>

     In ticket [perl #40910] <http://xrl.us/tc86>, Paul Cochrane wanted
     `t/distro/file_metadata.t` to work with both svn and svk. chromatic
     reported it fixed in r15616.

   [perl #40911] [CAGE] Merge manifest generating scripts with
   mk_manifest_and_skip.pl <http://xrl.us/tc87>

     Paul Cochrane created ticket [perl #40911] <http://xrl.us/tc88>. In it
     he suggested merging the functionality of two tools,
     `gen_manifest_skip.pl` and `mk_manifests.pl`.

   [perl #40912] [CAGE] Tcl - convert all XXX (#...) comments to the RT#...
   format <http://xrl.us/tc8m>

     In ticket [perl #40912] <http://xrl.us/tc89>, Paul Cochrane asked for
     all TODO items to be changed to 'RT #' style. This request stemmed
     from the discussion '[perl #40861] [CAGE] - add a Perl::Critic policy
     to look for FIXME|TODO|XXX <http://xrl.us/tc8j>'. It was done in
     r15651.

   [perl #40923] test errors <http://xrl.us/tc9a>

     Seth Whelan reported a problem with Parrot 0.4.7's `make test`. He
     included information about his system in ticket [perl #40923]
     <http://xrl.us/tc9b>.

   Perl segfault in cppcomments.t <http://xrl.us/tc9c>

     Paul Cochrane reported a segmentation fault with a test. It looked
     like a problem with the regular expressions which were used to remove
     C-comments.

   [perl #40932] [PATCH] languages/abc test harness <http://xrl.us/tc9d>

     In ticket [perl #40932] <http://xrl.us/tc9e>, Nuno Carvalho sent a
     patch which is designed to finish the test harness for the language
     abc. Patrick R. Michaud applied the patch.

   pmc2c.pl: Proposed Strategy for Revisions and Testing
   <http://xrl.us/tc9f>

     Following an introduction to Parrot at the Chicago Hackathon last
     week, James E Keenan posted a proposal on how `pmc2c.pl` could be
     tested. He hoped for some feedback at an early point to prevent him
     from wasting effort on useless patches.

     He proposed extracting as much functionality as possible in to
     subroutines which are then placed in a package. He also wondered about
     some options which were described in the documentation but didn't
     appear to be used.

   [perl #40937] bad links in docs/ROADMAP.pod <http://xrl.us/tc9g>

     Will Coleda wanted some bad links to be corrected. He requested this
     in ticket [perl #40937] <http://xrl.us/tc9h>.

   [perl #40938] [PATCH] languages/abc test suit <http://xrl.us/tc9i>

     Nuno Carvalho submitted a patch in ticket [perl #40938]
     <http://xrl.us/tc9j>. It is designed to add more files to the abc test
     suite. It was applied.

   [perl #40939] [PATCH] languages/abc test suit <http://xrl.us/tc9k>

     In ticket [perl #40939] <http://xrl.us/tc9m>, Nuno Carvalho sent a
     patch which cleans up the abc test harness. It was applied.

  cvs-parrot

   [svn:parrot] r15517 - in trunk: . src <http://xrl.us/tc9n>

     chromatic reported an error with r15517. Patrick R. Michaud confirmed
     that it broke on Linux/x86_64 as well. chromatic attached a patch
     which he was not happy with because he was curious about how it
     affected Patrick's system. Patrick agreed the patch was just masking a
     deeper problem, but that it did appear to fix the problem. Leopold
     Toetsch checked in the patch.

  Acknowlegements

     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/>