Ann Barcomb
Sun, 29 Oct 2006 06:03:40 -0800
Weekly Perl 6 mailing list summary
This week on the Perl 6 mailing lists
"IMHO, @Larry got overly precise in the above S02 quote: s[More
precisely] = "Usually""
-- Jonathan Lang, in 'where constraints as roles' (was: 'how typish
are roles <http://xrl.us/susf>')
Language
Synopsis 26 - Documentation [alpha draft] <http://xrl.us/r9xo>
Discussion continued on the draft S26 documentation Damian Conway
released. Christopher J. Madsen noted another possible issue with
XHTML entities, which are not always lower-case. He offered
suggestions on how the issue could be resolved.
signature subtyping and role merging <http://xrl.us/r9xy>
Two weeks ago, TSa asked for some help on the topic of subtyping
signatures in the context of deriving a type lattice from role
definitions. Mark A. Biggar replied that it is safe to assume that two
methods with the same name are semantically unrelated, which makes the
signature merge nonsensical in a general case. Jonathan Lang agreed,
requesting that no attempt be made to merge signatures. He suggested
multiple dispatch instead.
This week, TSa thought that while multiple dispatch would avoid some
problems, every role might not provide its methods as multi. Jonathan
Lang agreed but still thought there was no good way to merge
signatures. TSa and Jonathan debated the issue further.
set operations for roles <http://xrl.us/so8q>
Last week, Jonathan Lang replied to a comment in the thread 'class
interface of roles'. The discussion involved the syntax for ordered
and unordered composition. Jonathan proposed some syntax. TSa and
Jonathan discussed possibilities, and Larry Wall added his thoughts.
This week there was further conversation, including a clarification of
how mathematical symbols for sets would be written in ASCII.
There was also confusion on rules for set operators, which, according
to Jonathan Lang, has to do with terminology. He sees the same thing
in the terms 'subclass' and 'superclass', which are counterintuitive.
He felt that highlighting set operations and avoiding traditional type
theory terminology could avoid much of the confusion. TSa was not sure
this would solve the issue.
Programming languages and copyright? <http://xrl.us/suse>
Markus Laire inquired about programming languages and copyrights.
Specifically, he wanted to know if it was legal to incorporate
features from other languages when designing a language. Smylers
replied that code can be copyrighted, but ideas cannot be; therefore,
you can borrow from what code does, so long as you don't copy the
sources. Buddha Buck elaborated further.
how typish are roles <http://xrl.us/susf>
Referring to an earlier thread 'class interface of roles' (which also
spawned thread 'set operations for roles <http://xrl.us/so8q>', TSa
asked how typish roles are, because some people appear to see them as
lightweight components for class composition, while TSa views them as
offering a contract on functionality.
Trey Harris gave his opinion. He thought that in practice, both
classes and roles will be used as types, with roles being more common
when working close to the Perl core, and classes for local needs.
Later TSa summarized what had been discussed to date, which led to a
discussion of syntax and what will be part of Perl 6 (and what might
come later).
Trey started a new thread, 'where constraints as roles', wherein he
asked if a `where` clause or junctive type defines an anonymous role,
while a type parameter defines a lexical role, and suggested adding
this information to S12. Larry Wall replied, saying that a `where`
clause is there for pattern matching...but went on to note other
possibilities. chromatic commented: "it's awfully difficult to have
nominal typing in a room full of blank 'Hello my name is' tags."
Jonathan Lang felt that S02 gave some indication of what Trey
suggested, and that `where` clauses and junctive types should not be
turned in to roles: roles and junctive types should be turned in to
`where` constraints.
mmd-draft.txt <http://xrl.us/susg>
TSa noted that multi-method dispatch is not yet in S06 and asked if
someone could explain the voting mechanism used to select the dispatch
target.
Parrot Porters
Bytecode PDD <http://xrl.us/r5xv>
Some time ago, Jonathan Worthington released a draft PDD for Parrot's
bytecode format.
This week, Jonathan replied to Leopold Toetsch's message, but also
suggested a review of r15001. There was a brief discussion on HLL
resources.
Parrot::Coroutine <http://xrl.us/r5xi>
Fran??ois Perrad continued the 'Heads up: Dynamic environment...'
thread as it relates to Lua. He remarked that the
`languages/lua/lib/thread.pir` methods are stubs, and asked how
`__clone` and `__get_pointer` should work.
[perl #40544] [NEW] Test for DOS line endings in Parrot text files
<http://xrl.us/sush>
Previously, In ticket [perl #40544] <http://xrl.us/so8x>, Paul
Cochrane offered a patch to check for DOS line endings in the Parrot
distribution.
This week Chris Dolan suggested changing `eval { use SVN::Client; };`
to `eval { require SVN::Client; };`
classnames and HLL namespaces -- help! <http://xrl.us/so9i>
Previously, Patrick R. Michaud wrote of his confusion on how to deal
with classname conflicts when multiple HLL namespaces are involved,
now that PDD21 has changed. Matt Diephouse, Allison Randal, Leopold
Toetsch and Will Coleda joined the thread. The conclusion seemed to be
that namespace pollution still needs to be resolved and the object
model is due for discussion as well.
Recently, Jonathan Worthington proposed collecting requirements from
different languages so that an OO PDD can be based upon them. He
offered to make the first draft and to maintain it. chromatic thought
it was a good idea, and suggested using the `docs/pdds/clip`
directory. Patrick R. Michaud also approved. This project was started
with commit '[svn:parrot-pdd] r15024 - trunk/docs/pdds/clip
<http://xrl.us/susi>'.
Meanwhile, Leopold Toetsch offered some more information on
namespaces. Patrick disagreed with Leopold's conclusions, stating that
he was against subclass' names needing to include the names of their
parents. There was further discussion between Patrick and Leopold on
this topic.
[HOWTO] add a C file to get archived in libparrot.a <http://xrl.us/so9j>
Last week, Karl Forner asked what he needed to do to have his .o file
added in `libparrot.a`.
Jonathan Worthington recommended a `make realclean`. Karl replied that
it did not work. Adam Thomason recommended adding the file to
`config/gen/makefiles/root.in` and running Configure again.
Current State of ParrotClass and ParrotObject? <http://xrl.us/susj>
Kevin Tew asked how he could instantiate a ParrotObject from a
ParrotClass. Leopold Toetsch asked to see Kevin's attempt.
Patches from Paul <http://xrl.us/susk>
This week, Paul Cochrane submitted a number of patches:
* '[PATCH] Adding (some) coding standards tests to the default tests'
(ticket [perl #40589] <http://xrl.us/susm>) contains a patch to add
tests for C coda, cuddled elses and tabs to the default tests run by
`make test`.
* '[perl #40590] [PATCH] Reduce verbosity in t/codingstd/tabs.t
<http://xrl.us/susn>' (ticket [perl #40590] <http://xrl.us/suso>)
reduces the amount of output generated by `t/codingstd/tabs.t`.
* '[perl #40592] [PATCH] Update of t/codingstd/linelength.t
<http://xrl.us/susp>' (ticket [perl #40592] <http://xrl.us/susq>)
replaces pattern match operators to allow syntax highlighting in vim.
* '[perl #40599] [NEW] Coding standards test of
return statements <http://xrl.us/susr>' (ticket [perl #40599]
<http://xrl.us/suss>) looks for subs which return `return foo;` rather
than `return (foo);`.
Patches which generated discussion are listed individually.
[perl #40593] [CAGE] make t/codingstd/linelength.t output look like
other coding standard tests <http://xrl.us/sust>
In ticket [perl #40593] <http://xrl.us/susu>, Jerry Gay requested that
the format of the line length test output be changed to match other
tests. Will Coleda remarked that not all tests follow the style Jerry
outlined.
Jerry remarked that he had created a new ticket, '[perl #40596] [CAGE]
modify perl coding standard test format <http://xrl.us/susv>', which
covers reformatting in general.
[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.
Jonathan wondered if this should be postponed until the object and
namespace issues have been dealt with. Allison Randal summarized the
results of her last conversation with Chip Salzenberg on the topic.
Jonathan thanked her for the specifications and said he would work on
an implementation.
[perl #40523] [TODO] adjust string_append function and usage
<http://xrl.us/susw>
Earlier, Leopold Toetsch created a ticket ([perl #40523]
<http://xrl.us/r9zb>) asking for instances of `string_append` to be
removed. This week, Jonathan reported it done in r15025.
[perl #40596] [CAGE] modify perl coding standard test format
<http://xrl.us/susv>
In ticket [perl #40596] <http://xrl.us/susx>, Jerry Gay proposed
modifying the Perl coding standard test format to have one test per
standard, rather than one test per file. The reason for this was to
prevent inflation of test numbers, which could lead to a false
perception on test coverage.
Chris Dolan understood Jerry's reasoning, but argued that because
Test::Perl::Critic is designed to work on a per-file basis, so this
change would be difficult to implement unless output was reduced to
simply one test for everything. Jerry thought one perlcritic test was
fine, and also asked if the test could become quieter. Chris supplied
the syntax for reducing output.
This thread is related to '[perl #40593] [CAGE] make
t/codingstd/linelength.t output look like other coding standard tests
<http://xrl.us/sust>'.
[perl #40598] [PATCH] Make perlcritic.t barf more nicely when
Test::Perl::Critic not installed <http://xrl.us/susy>
In ticket [perl #40598] <http://xrl.us/susz>, Paul Cochrane submitted
a patch which makes testing skip `t/codingstd/perlcritic.t` if
Test::Perl::Critic isn't installed. Chris Dolan suggested an
alternative syntax, and Paul thanked him for the information.
[QUESTION] PMC Pre-allocation <http://xrl.us/so9a>
Previously, Karl Forner asked if there was a way to specify the
minimum allocation size for PMCs. Leopold Toetsch replied that the
issue had come up a number of times. He explained the history behind
it, and offered suggestions for resolving the legacy confusion.
This week, Allison Randal took a stab at answering the questions Karl
posed.
MMD function __add not found <http://xrl.us/sus2>
Fran??ois Perrad wondered if it was possible to mix `:method` and
`:multi` in order to write a method `__add` to support the opcode
`add` in a new `thread` class which subclasses Parrot::Coroutine. He
included example code and the error he had gotten.
Users
Embedded perl5 modules <http://xrl.us/so9m>
Last week, Richard Hainsworth asked about the syntax for embedding
Perl 5 modules in Perl 6 code, and Steffen Schwigon offered a
suggestion.
This week Steffen added that he had had more luck with other Perl 5
modules, but Wx appeared troublesome. After further discussion with
Richard, Steffen suggested trying an easier module to learn about Perl
5 integration, or waiting for further progress if Wx is required.
Steffen also requested a test for Pugs of Wx's style of indirect
package import/export. There were some further attempts at debugging,
with Richard including some Gtk2 code which did (partially) work.
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/>