Front page | perl.perl6.announce |
Postings from December 2006
Weekly Perl 6 mailing list summary for 10-16 December, 2006
From:
Ann Barcomb
Date:
December 17, 2006 02:07
Subject:
Weekly Perl 6 mailing list summary for 10-16 December, 2006
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, <kudra@domaintje.com>.
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/>
-
Weekly Perl 6 mailing list summary for 10-16 December, 2006
by Ann Barcomb