This week on the Perl 6 mailing lists

    "With the little sense of smell I have left, this smells like
    INTERCAL's 'COME FROM' statement to me..."

    -- Larry Wall, who has a cold, in 'supertyping <http://xrl.us/twvd>'


 Language

  supertyping <http://xrl.us/twvd>

    In this thread, TSa brought up the concept of supertyping again. The
    example of `Square <: Rectangle` was included, along with others.
    TSa's question involved an example where the object's type was changed
    while its identity was preserved. Additionally, TSa asked if
    supertyping will exist in Perl 6, and if so, how would 'superdoes' and
    'superis' concepts be expressed.

    Jonathan Lang attempted to rewrite the question for a larger audience.
    He explained that the suggestion was to go from specific to general,
    rather than the other way around.

    Jonathan then noted that there are four approaches to code reuse,
    three which add functionality, and one which restricts it. This led
    him to see supertyping in terms of exemptions for the fourth case.
    Luke Palmer responded with an equation to express the relationship,
    and his answers to the questions of whether it should be illegal to
    add a required method to A if B does not implement it, given `role A
    superdoes B`, and if a required method for A should automatically
    become a required method for B.

    There was some discussion on how 'superdoes' would be written, with
    'done_by', 'bequeath', and 'by' being proposed. Ruud H.G. van Tol
    offered more suggestions than a thesaurus.

    Larry Wall first wanted to see use cases which go beyond the number
    examples in order to see the value of the proposal to those who aren't
    interested in type theory. Luke Palmer, on the other hand, expressed
    his interest in continuing to consider the idea until it is solid
    enough that he would be comfortable with it. Larry added his thoughts
    concerning namespace issues. There was a great deal more discussion
    formulating the specifics of the proposal.

  Gather/Take and threads <http://xrl.us/trid>

    Given a gather block which spawns multiple threads, Joe Gottman wanted
    to know if it is guaranteed that no object returned is lost, given
    that the relative order of items returned is indeterminate.

    This week, Larry Wall responded that gather/take is defined over a
    dynamic scope, and each thread is a different dynamic scope, so by
    default there would be no results from other threads. He also
    entertained the converse, that gather/take is a normal way to set up
    inter-thread queuing. The short answer seemed to be that this has not
    yet been decided.

 Parrot Porters

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

    This thread was started by Bob Roger's proposal for dynamic binding.
    To date, it has included an extended discussion between Bob and
    Allison Randal, plus a request from Leopold Toetsch.

    Allison began this week by explaining her understanding of the terms
    dynamic scoping, assignment and binding. Her view of the proposal is
    that it offers a textbook definition of dynamic scoping. The
    discussion has included dynamic binding, dynamic scoping, and
    temporization, however. With the terms defined, she went on to propose
    that Bob create a new proposal for implementing dynamic scope which
    does not contain any references to temporization. Bob agreed to do
    this, but asked for a few clarifications first.

  [perl #40958] [BUG] - can't iterate subclass of ResizablePMCArray
  <http://xrl.us/tgta>

    chromatic responded to ticket [perl #40958] <http://xrl.us/tgtb> with
    a second patch, which improves upon his earlier attempt. However, he
    noted that it seems to work poorly with Data::Dumper and that his
    solution, while non-invasive, was not ideal. He described his
    preferred fix.

  [perl #41055] [BUG]: 'Argument is not numeric' warning in Darwin
  configuration <http://xrl.us/trit>

    Last week, in ticket [perl #41055] <http://xrl.us/triu>, James Keenan
    registered a bug with running `perl Configure.pl`, which seemed to be
    related to having a 3-level version number.

    This week, Lee Duhem commented that it would probably be enough to get
    the major OS version.

  [perl #41064] Not-so-new 'make' failures on Darwin <http://xrl.us/twve>

    Ticket [perl #41064] <http://xrl.us/twvf> was created by James Keenan
    to report another failure to make Parrot on Darwin. He expressed
    frustration that he is still seeing the same problem which he
    encountered at the Chicago Hackathon and described the measures he has
    taken to resolve it.

    Will Coleda found a possible file ownership problem, and suggested
    trying a new checkout. After determining that this was not the cause,
    Will asked several questions in an attempt to pinpoint the cause.
    Several further posts were made by both James and Will as they tried
    to determine the source of the problem. Eventually Will concluded that
    the most likely culprit was James using another compiler, rather than
    the Apple version of gcc/g++.

  yield from a method <http://xrl.us/twvg>

    Will Coleda showed how the current `:method` and `.yield`
    implementations and asked if it was desirable for them to work in this
    way. He was working on the 'Range' object and encountered this
    problem.

    Bob Rogers thought the proper fix would be to build Coroutine on
    Continuation instead of Sub. He also suggested storing the coroutine
    state explicitly in the object, and emulating yielding the method.

    Allison Randal responded that the current functionality is desired for
    class methods, although it makes no sense for instance methods. She
    advised making yield object-specific within methods.

  Side effect between exit & .HLL <http://xrl.us/twvh>

    Fran??ois Perrad showed some example code where an error of 'no
    exception handler' was seen when a .HLL directive was added before a
    simple subroutine. He wondered if that was a feature or a bug.

  Past-pm basic string types <http://xrl.us/twvi>

    Allison Randal asked how to best pass-through string types from a
    compiler to Parrot without doing string processing. Patrick R. Michaud
    replied that it is expected that it will be rare for a HLL string
    literal format to exactly match a string literal in PIR. Consequently,
    it expects that the HLL will have decoded the strong constant
    according to the HLL rules, and PAST-pm will re-encode the string to
    work in Parrot. He offered to modify PAST-pm to provide a "send
    literal" option.

    Allison thought that was a good idea, and appreciated that the current
    system makes no assumptions about what constitutes a string. Later
    Patrick realized that the functionality already exists, if the `ctype`
    isn't set. This is subject to change, however, so he included more
    specific instructions for performing the task.

  Past-pm printing the return value of the main routine
  <http://xrl.us/twvj>

    Allison Randal cited an example of printing a simple statement, '2',
    which would actually print '21' because the main routine is returning
    the value of the last statement (true), which is correct for Perl but
    not all languages. Also, the HLLCompiler is printing out this return
    value, and she wanted to know why that was happening. Patrick R.
    Michaud reported that this has since been fixed.

  [perl #41082] [PATCH] Cygwin: conflicting types for _LIB_VERSION
  <http://xrl.us/twvk>

    Greg Bacon opened ticket [perl #41082] <http://xrl.us/twvm> to report
    a failure with building r16097 on Cygwin. He supplied a patch. After
    Jerry Gay closed the ticket, he asked if it was a known issue, and
    what the solution was.

  Bug Day <http://xrl.us/twvn>

    Will Coleda created a page to prepare for bug day
    <http://xrl.us/twvo>. December 16th was bug day.

 Users

  Error running Pugs tests <http://xrl.us/twvp>

    Ovid reported that Pugs r15881 gave some errors with his new GHC 6.6
    if he ran a test without `-lblib6/lib`. He wondered why it would
    generate a syntax error if he left out that portion of the line. Gaal
    Yahas suggested that it was due to an old version of Test.pm from the
    earlier installation.

  Introspection and list question <http://xrl.us/twvq>

    Ovid had a quick question on how to do introspection in Pugs. He also
    wanted to know how to flatten nested lists in Perl6. Jerry Gay
    responded that introspection is mostly unimplemented. He also pointed
    Ovid to S02 for the answer to his other question. Gaal Yahas suggested
    that the Official Perl 6 Documentation <http://spec.pugscode.org/> was
    the best place to look for updated synopses. He proposed `gather` to
    flatten a list, but noted that it was not yet implemented. Larry Wall
    replied that that would only flatten a recursive structure with help,
    and noted that Pugs implements the block form of `gather`. jerry gay
    Gaal Yahas Larry Wall

  Strange error message with anon subroutine <http://xrl.us/twvr>

    Ovid showed some code he had written to compress a list. He showed
    that once he had added some return statements inside an anonymous
    subroutine, he received an error message about using a control
    structure outside a routine. Ovid wondered if he had made a mistake or
    if there was a bug.

    Larry Wall replied that it was expected to work that way. He quoted a
    section of S06, and also referenced S04. He advised changing the
    pointy block in to an official sub. Gaal Yahas also gave similar
    advice.

 Compiler

  6-on-5 and read only aliasing <http://xrl.us/twvs>

    Nicholas Clark announced a placeholder named BIND for 6-on-5 aliasing,
    which should replace the need for the Perl 5 internal type PVBM as of
    r29544. He included a list of features he thought were needed for
    6-on-5, and asked for other 4-letter (or shorter) words which were
    better than BIND.

    David Nicol noted that increasing internal types to 32 instead of
    keeping them at 16 would allow the top ones to accelerate tied and
    overloaded types. Nicholas replied that there were too many switch
    statements in the core, and he would prefer switching to vtables.

    David Landgren thought BIND was an alias, which was like a nickname,
    and therefore proposed NICK.

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

Reply via email to