Ann Barcomb
Mon, 16 Oct 2006 05:05:45 -0700
Weekly Perl 6 mailing list summary
This week on the Perl 6 mailing lists
"The whole point of reserving these namespaces is not to prevent users
from misusing them, but to ensure that when we eventually get around
to using a particular block name, and those same users start screaming
about it, we can mournfully point to the passage in the original spec
and silently shake our heads. ;-)"
-- Damian Conway, on POD specifications
Language
"Don't tell me what I can't do!" <http://xrl.us/r5w3>
Last week, Jonathan Lang initiated a long discussion by objecting to
programming styles where a programmer can intentionally prevent
someone else from taking what is otherwise a legitimate action. Most
of the comments focused on lexically scoped pragmas and policy meta
models.
This week, Trey Harris clarified what he had said earlier, describing
how the documentation of some modules assumed that `use strict` and
`use warnings` were not enabled, which led to difficulty understanding
which part of strict/warnings were being ignored.
S5: perl5 regex flags <http://xrl.us/r9xn>
Jonathan Lang wanted to know how Perl 5 regexes containing modifiers
which are not present in Perl 6 could be ported. He proposed giving
the Perl 5 modifier an optional argument which would provide support
for the modifiers which can't be easily changed to Perl 6. Larry Wall
explained how the regexes could be ported.
Synopsis 26 - Documentation [alpha draft] <http://xrl.us/r9xo>
Damian Conway released a draft for S26 on documentation, noting that
he had almost completed a Perl 5 implementation of a parser for the
Perl 6 POD format.
Jonathan Lang requested a more flexible syntax for formatting codes,
and a wiki-style dialect. Damian replied that restricting delimiters
to angles was a deliberate decision. The wiki-type of markup would be
Kwid, which has been proposed as a standard Perldoc dialect.
Dave Whipp wanted to know if the reserved typenames would generate
errors. Damian replied that the standard parser will become extremely
unhappy when it encounters unknown block names.
Tim Bunce expressed his concern that this would cause problems when
people using older parsers encountered newer POD. Jonathan suggested
having POD declare a version. Damian thought it was best if the parser
always attempted to render the document, even if it didn't understand
all directives.
Brent 'Dax' Royal-Gordon asked if there could be a code to mark the
title of the document, which could be used for cross-referencing. He
had a few other comments. Damian asked if Brent had a letter in mind
for the citation code.
Comments in qw// or qqw// <http://xrl.us/r9xp>
Yves brought up the topic of comments within `qw//` or `qqw//`. Juerd
elaborated further, suggesting that `#` be used, since it can already
be escaped or quoted with `qqw`.
Recursing? hypers <http://xrl.us/r9xq>
Juerd suggested that S03 be modified to make standard hypers
non-recursive, and introduce a new operator which would recurse. He
offered a syntax suggestion. Larry Wall replied that he felt
conformancy was the real issue, and recommended reading the latest S03
changes.
[svn:perl6-synopsis] r12875 - doc/trunk/design/syn <http://xrl.us/r9xr>
Larry Wall committed r12875, which replaced Perl 5's `s[pat][repl]`
syntax with `s[pat] = "repl"` in S05.
This led Juerd to wonder why the `s` was being retained, and offer
some syntax suggestions. Larry answered that there had been a decision
to keep the intent obvious.
Aaron Sherman wanted to know how embedded closures would be handled.
He asked if `s:g[W] = qq{\{$/}};` would do what he expected, and asked
about how the Parser would define it. Larry Wall answered that the
example would work as expected: the right side is implicitly
closurized and evaluated repeatedly by the left side. He also
explained that 'quotelike forms' are situations where you can choose
your own quote characters.
In 's[pattern] = { doit } illegal, why? <http://xrl.us/r9xs>',
Jonathan Lang expressed concern over a limitation stemming from the
implicit curlies rule. He wanted to know if it could be changed so
that if you supply your own closure to the right, the substitution
algorithm accepts it as is. Larry Wall replied that it was possible,
but that outlawing it for the moment keeps people from converting Perl
5's `s{foo}{bar}` in to Perl 6's `s{foo}={bar}` without understanding
what they are doing.
[svn:perl6-synopsis] r12933 - doc/trunk/design/syn <http://xrl.us/r9xt>
In r12933, Larry Wall made a change to S02 which allows quote and
regex adverbs to take only parentheses as brackets.
Bytes make no sense on text strings <http://xrl.us/r9xu>
Juerd wondered how `:bytes` for things like `s///` useful. He
suggested that `:bytes` on a text string should cause an exception.
Larry Wall replied that a string object can present multiple
interfaces. Strings which don't support the `:bytes` abstraction will
throw exceptions.
Capturing subexpression numbering example <http://xrl.us/r9xw>
Aaron Sherman felt that the S05 example for subpattern numbering is
not adequate. He supplied a patch to give more information to the
reader.
signature subtyping and role merging <http://xrl.us/r9xy>
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.
[svn:perl6-synopsis] r13096 - doc/trunk/design/syn <http://xrl.us/r9xz>
With commit r13096, Larry Wall changed enforced backtracking from `+`
to `!`.
Related files were changed in '[perl #40524] [TODO] PGE - need tests
for greedy backtracking <http://xrl.us/r9x2>'.
Parrot Porters
[svn:parrot-pdd] r14784 - trunk/docs/pdds/clip <http://xrl.us/r5xd>
Previously, Jonathan Worthington committed a draft of the Bytecode PDD
and received comments. Karl Forner had suggested working around the
need to specify the absolute path by using the `env` command.
Jonathan replied that the suggestion was still *nix specific.
Heads up: Dynamic environment now captured in continuations
<http://xrl.us/r5xi>
Earlier, Bob Rogers announced that as of r14830, continuations capture
the dynamic environment in order to restore it properly on invocation.
He also noted that moving the `control_stack` slot broke coroutines,
but that he suspected this was due to problems with coroutines. This
led to a discussion on the problems of coroutines in Lua.
This week, Bob and Fran??ois Perrad continued the discussion. Fran??ois
noted two specific problems with Lua, and posted the error message.
Bob suggested a workaround, and noted that he has used this in Parrot.
He supplied the Parrot::Coroutine patch.
Bob also reported that he had moved the `control_stack` slot in
r14876. He noted that there could still be problems with coroutines,
and he is considering deprecating `Coroutine.pmc` until it can be
redesigned. Leopold Toetsch replied that he would like to see some
specifications first. Bob explained how it would be used, and Leopold
replied that he now saw the use for it, but still would like to see a
proposal.
[perl #40455] [PATCH] Bring dotnet back into unified languages testing
<http://xrl.us/r5xo>
Ticket [perl #40455] <http://xrl.us/r5xp>, by Bernhard Schmalhofer,
contained a patch to extend the library search path to fix failing
tests for `languages/dotnet`.
This week, Jonathan Worthington thanked everyone who had worked on
getting the dotnet translator back in to unified language testing. He
discussed what his needs were for working on the translator, and Will
Coleda also added his suggestion that languages become more
self-contained.
RFC: Reduce closure magic <http://xrl.us/r9x3>
Bob Rogers found a `ctx` member which is used for the `autoclose`
feature and doesn't appear to be documented. He suggested some
alternate syntax and included a patch. Leopold Toetsch reported that
Audrey Tang had wanted it, but agreed that it should be eliminated.
Bob suggested that in light of the effects the patch had on Lua, a
period of deprecation before removing `ctx` might be a good idea.
There was some additional discussion.
What does 'input in flex scanner failed' really mean?
<http://xrl.us/r9x4>
Bob Rogers reported an error he did not understand which came from
attempting to use `load_bytecode`. Leopold Toetsch replied that a test
was missing to check if the file is a directory. chromatic offered a
patch.
External PMCs and GC Implications <http://xrl.us/r9x5>
chromatic has been working on the embedding interface and wondered
what the implications are for garbage collection, given that some
Parrot functions may send and receive PMCs. Leopold Toetsch answered.
Unbitrot Minesweeper <http://xrl.us/r9x6>
chromatic submitted a patch which makes Minesweeper run again.
[perl #40472] APL test failures <http://xrl.us/r9x7>
Will Coleda reported that a number of tests in `languages/APL` are
failing. This was noted in ticket [perl #40472] <http://xrl.us/r9x8>.
Calling Methods on Class PMCs <http://xrl.us/r9x9>
chromatic posted some experimental OO code for the Class PMC. It did
not work, and he wondered if anyone could explain why. Leopold Toetsch
offered a suggestion.
C-coda and C standard patches, and other corrections <http://xrl.us/r9ya>
Paul Cochrane submitted a number of patches related to ensuring
quality C code:
* [perl #40475] <http://xrl.us/r9yb> makes Parrot::Distribution find
all `.pmc` files and add a check for the C coda test.
* [perl #40477] <http://xrl.us/r9yc> makes Perl scripts to output a
C coda when they create code.
* [perl #40479] <http://xrl.us/r9yd> correct the C coda for
autogenerated code.
* [perl #40480] <http://xrl.us/r9ye> ensures that the C coda isn't
included multiple times in generated files.
* [perl #40481] <http://xrl.us/r9yf> contains C coda for the amber PMC.
* [perl #40505] <http://xrl.us/r9yg> adds PMC files to the list of
files to test in the C-language coding standard tests.
Prolific Paul also submitted several other beauty patches this week:
* [perl #40476] <http://xrl.us/r9yh> corrects DOS line endings to UNIX
ones.
* [perl #40483] <http://xrl.us/r9yi> removed cuddled elses in several
files.
* [perl #40506] <http://xrl.us/r9yj> removes hard tabs from PMC files.
* [perl #40507] <http://xrl.us/r9yk> eliminated cuddled elses in PMC
files (applied as r14897).
* [perl #40508] <http://xrl.us/r9ym> changes `// comment` comments
in PMC files to `/* comment */` style comments.
* [perl #40509] <http://xrl.us/r9yn> is a test to check for DOS
line endings in C files.
* [perl #40510] <http://xrl.us/r9yo> corrects POD in C coda tests.
* [perl #40519] <http://xrl.us/r9yp> removes `t/tools` from the list
of directories searched for PMC files
[perl #40482] [PATCH] Perl::Critic policy for perl -w, and unix-specific
shebang lines <http://xrl.us/r9yq>
In ticket [perl #40482] <http://xrl.us/r9yr>, Paul Cochrane supplied a
patch to add a new Perl::Critic policy to check that the shebang line
does not use `perl -w` instead of `use warnings`, and that the shebang
itself is not *NIX-specific. He asked if all coding standards should
be grouped in a single directory.
Will Coleda replied that the coda should remain where it is, but other
coding standard tests should be grouped. He also requested a small
change to the patch, and pointed out where svn keywords are checked.
Chris Dolan cited an instance where the patch would give a false
negative. Paul and Chris discussed the example and solutions.
What are the final words on GMP, BigNums and *BooleanArrays
????????????? <http://xrl.us/r9ys>
Karl Forner noted that it can be difficult to contribute to Parrot
because the specifications and design documents do not always contain
enough information. He wanted to know what decisions had been reached
on the subjects of GMP, BigNums and *BooleanArrays. Jerry Gay tried to
clarify goals with regard to these topics, and apologized for slow
responses. Leopold Toetsch provided some answers on *BooleanArrays.
Parrot Configure error <http://xrl.us/r9yt>
Paul Cochrane reported an error with `Configure.pl` in r14862. Jerry
Gay fixed it in r14863.
[perl #40490] Flat/Slurpy Named Parameter Passing Errors
<http://xrl.us/r9yu>
chromatic noted some errors with named parameter passing, which he
documented in ticket [perl #40490] <http://xrl.us/r9yv>.
Null PMC access while parsing javascript <http://xrl.us/r9yw>
Mehmet Yavuz Selim Soyturk reported that `js.pg` gives a 'Null PMC
access' error when using the compiled .pir file. Kay-Uwe Hull
suggested that it might be a garbage collection bug, and offered a
workaround. Mehmet replied that it looked like an incomplete grammar.
Patrick R. Michaud offered a temporary solution, and stated that he
would examine the grammar soon.
MakeObject - an Object Instantiation Experiment <http://xrl.us/r9yx>
chromatic posted some experimental code to make creating objects
easier from PIR. Leopold Toetsch pointed out some related
documentation.
[perl #40503] [PATCH] Removal of .imc filename change paragraph
<http://xrl.us/r9yy>
Paul Cochrane asked some questions about .imc files in 'Questions
about DEPRECATED.pod <http://xrl.us/r9yz>'. Based upon Bernhard
Schmalhofer's answer, Paul submitted ticket [perl #40503]
<http://xrl.us/r9y2>, in which he proposed removing a paragraph in
`DEPRECATED.pod` which mentioned .imc files. Jerry Gay wasn't sure if
this should be done, because the most recent edition of 'Perl 6 and
Parrot Essentials' still refers to .imc files. He referred the matter
to Chip Salzenberg.
[perl #40511] [PATCH] Removal of deprecated fetchmethod opcode
<http://xrl.us/r9y3>
Paul Cochrane submitted a patch to remove the deprecated `fetchmethod`
opcode from several places. Ticket [perl #40511] <http://xrl.us/r9y4>
contains the patch.
[perl #40513] [CAGE] add flex/bison files to c coding standard tests
<http://xrl.us/r9y5>
In ticket [perl #40513] <http://xrl.us/r9y6>, Jerry Gay asked for the
cleaners to check Flex and Bison files against the C standards. Shawn
H. Corey commented on the relationship between Flex and C, and Bison
and C.
[svn:parrot-pdd] r14903 - in trunk: . docs/pdds/clip
<http://xrl.us/r9y7>
Allison Randal committed an update to the threads PDD. Leopold Toetsch
reminded her not to forget STM, which is implemented and solves many
PMC sharing problems.
Cage Cleaner Wrangler? <http://xrl.us/r9y8>
chromatic asked who was responsible for the cage cleaners. He noticed
a number of patches but wasn't sure who was monitoring the efforts.
Andy Lester replied that he was responsible, and asked for volunteers
for the position. Hal Wigoda asked for an overview of the job
description, and chromatic responded.
[perl #40219] [TODO] - Steal Perl5's sprintf tests <http://xrl.us/r9y9>
Patrick R. Michaud looked at why a number of sprintf tests were
failing. He added skips for tests containing Perl 5 features, Parrot
conversions, and modifiers the harness can't deal with. He noted the
remaining tests should be fixed or marked as todo. This was part of
ticket [perl #40219] <http://xrl.us/rawj>.
[perl #40523] [TODO] adjust string_append function and usage
<http://xrl.us/r9za>
Leopold Toetsch requested the removal of `string_append`, in ticket
[perl #40523] <http://xrl.us/r9zb>.
[perl #40524] [TODO] PGE - need tests for greedy backtracking
<http://xrl.us/r9x2>
Patrick R. Michaud requested some tests for the greedy backtracking
modifier. The related PGE was recently changed to reflect the change
described in '[svn:perl6-synopsis] r13096 - doc/trunk/design/syn
<http://xrl.us/r9xz>'.
Users
Runtime Role Issues <http://xrl.us/r9zc>
Ovid reported some problematic edge cases with runtime roles. He
wondered what would happen if there was an instance of a class in
another scope which did not want a runtime role applied, and how roles
could be removed from classes. Finally, he asked if there was an error
in the section on precomposed roles in S12.
Tim Bunce replied that he believed that when a role is applied at
runtime, it actually creates a new anonymous subclass, leaving the
original class unaffected. Audrey Tang agreed, and added an example.
Ovid asked if the Moose documentation was accurate for Perl 6. Audrey
answered that Moose is currently the metaobject layer when the VM
which runs Perl 6 is Perl 5.
The thread was also discussed in 'Runtime role issues
<http://xrl.us/r9xx>'. There, TSa suggested an intermediate class for
applying a role and questioned whether roles should be removed. Aaron
Sherman thought that typically the objects rather than the classes
needed to be changed. There were further comments.
Acknowlegements
This summary was prepared using Mail::Summary::Tools
<http://xrl.us/qvno>, now available on CPAN.
If you appreciate Perl, consider contributing to the Perl Foundation
<http://donate.perlfoundation.org> to help support the development of
Perl.
Thanks to Yuval Kogman for his help.
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/>