Perl 6 summary, 22-28 October, 2006

kudra on 2006-10-29T13:45:00

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')

Language

Synopsis 26 - Documentation [alpha draft]

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

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

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?

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

Referring to an earlier thread 'class interface of roles' (which also spawned thread 'set operations for roles', 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

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

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

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

Previously, In ticket [perl #40544], 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!

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'.

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

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?

Kevin Tew asked how he could instantiate a ParrotObject from a ParrotClass. Leopold Toetsch asked to see Kevin's attempt.

Patches from Paul

This week, Paul Cochrane submitted a number of patches:

Patches which generated discussion are listed individually.

[perl #40593] [CAGE] make t/codingstd/linelength.t output look like other coding standard tests

In ticket [perl #40593], 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 ', which covers reformatting in general.

[perl #40443] Separate vtable functions from methods (using :vtable)

In ticket [perl #40443], 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

Earlier, Leopold Toetsch created a ticket ([perl #40523]) 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

In ticket [perl #40596], 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 '.

[perl #40598] [PATCH] Make perlcritic.t barf more nicely when Test::Perl::Critic not installed

In ticket [perl #40598], 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

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

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

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, available on CPAN.

If you appreciate Perl, consider contributing to the Perl Foundation 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:

See Also