Ann Barcomb
Sat, 16 Sep 2006 14:00:42 -0700
This week on the Perl 6 mailing lists
This summary has been posted early because I will be going to OSCON
Europe on Sunday. Next week's summary will include any threads which
were not included this week.
Language
multi method dispatching of optional arguments <http://xrl.us/roai>
Last week, Mark Stosberg wanted the specifications to address what
should happen in MMD when optional arguments are present (S12). He
patched `mmd-draft.txt` and sent the text to the newsgroup. Luke
Palmer offered a suggestion.
Ph. Marek wondered if there will be MMD based on the value of
parameters, as in Haskell. Audrey Tang confirmed this and pointed to
S06. Trey Harris updated it with a reference to S12. Ruud H.G. van Tol
also offered an example of syntax.
This week, Larry Wall clarified further, noting that every scalar
value is a one-element subset of its type.
Inf appears to be unspec'ed <http://xrl.us/rq9p>
Mark Stosberg was unable to find the formal definitions for `Inf`,
`not` and `true`. Later he found them, and was able to add smart
links.
Reduced assignment operator? <http://xrl.us/rq9q>
Audrey Tang noted that S03 was inconsistent about the treatment of
assignment operators in the reduction operator. Audrey further
commented that she doesn't see a problem with supporting assignment
reductions as a syntactic exception. Larry Wall replied that it was
worth supporting.
Outlaw to declare a lexical twice in the same scope <http://xrl.us/rq9r>
Steve Lukas quoted S04: "If you declare a lexical twice in the same
scope, it is the same lexical." He felt that declaring the same
lexical should give an error, because when he does this, he's made a
mistake. Rick Delaney disagreed; for development or debugging he will
often add a second declaration line to temporarily override the first.
Juerd agreed with Steve. He appreciates that `my $foo` always gives a
new variable, so he does not need to know anything about the
surrounding code. Carl M??sak also wanted the compiler to catch
second declarations.
Naming the method form of s/// <http://xrl.us/rjmo>
Earlier, Mark J. Reed noted that according to S05, the string method
equivalent of `s///` is `subst`. He felt it might be easily confused
with `substr` and suggested `replace`.
A long discussion on how the method would actually work followed.
Recently, Larry Wall noted that he should clarify the role of `=` with
regard to preceding declarators. They control how often the expression
is evaluated.
META vs meta <http://xrl.us/rq9s>
David Brunton noted that S12 specifies `$obj.META`, but in Pugs it is
implemented as `$obj.meta`. He wanted to know if he could change
`meta` to `META`. Larry Wall replied that he was considering renaming
the method to use interrogative pronouns. David Green commented on
Larry's proposed names, and Larry responded.
Sam Vilain wondered if upper case was needed. Jonathan Scott Duff
thought that it fit in with Perl's culture. Aaron Sherman had some
other suggestions for avoiding namespace pollution.
David Brunton wanted to know if there was some reason that the meta
methods could not be part of a default function package. Aaron Sherman
gave two reasons why this was not desirable.
single named param <http://xrl.us/rq9t>
Gaal Yahas wondered if `:(:$x)` was a single named parameter called $x
or a default invocant and a single required positional named $x.
Audrey Tang replied that a default invocant would not make sense
because there is nothing to default to. Gaal then wondered what
invocant is constructed for `method foo ($just_a_named_param)`. Larry
Wall replied, and Mark Stosberg also commented. Audrey answered too.
[svn:perl6-synopsis] r11965 - doc/trunk/design/syn <http://xrl.us/rq9v>
Larry Wall made a commit to S03, which led Ruud H.G. van Tol to ask if
`[=] $x, @y` was equivalent to `$x = @y[0] = @y[1] = @y[2] ... @y[-2]
= y[-1]`. Larry replied that they were. Ruud asked for additional
clarification.
Unpacking tree node parameters <http://xrl.us/roak>
Earlier, Gaal Yahas asked for some clarification on the intent in
S06's "Unpacking tree node parameters" so that he could introduce the
optional use of the colon more gradually.
This week, Audrey Tang replied with answers to Gaal's questions.
[svn:perl6-synopsis] r11969 - doc/trunk/design/syn <http://xrl.us/rq9w>
Several threads grew from Larry Wall's commits on the `X` operator.
Darren Duncan expressed his appreciation for it. Miroslav Silovic
asked if it would be possible to extend `next` to pass arguments to
the 'nexted' iterator.
In thread [svn:perl6-synopsis] r11971 - doc/trunk/design/syn
<http://xrl.us/rq9x>, Daniel Hulme requested a variant which does the
diagonal order.
[svn:perl6-synopsis] r11975 - doc/trunk/design/syn
<http://xrl.us/rq9z> led to additional comments. Carl M??sak wanted to
know why `X-X` is needed if `X` already concatenates strings. Daniel
Hulme thought it was an incomplete change which should have read `XX`.
Carl agreed, but thought `X,X` would be nicer.
assigning to named parameters <http://xrl.us/rq96>
Aaron Sherman wondered if it would be possible to treat named
parameters as lvalues, so that `foo(:a<1>, :b<2>)` could become
`foo(:a=1, :b=2)`.
-X file test operators
<http://tinyurl.com/eqtw2>
Aaron Sherman raised ambiguity issues between identifiers with dashes
in their names, like the file test operators, and unary minus (-4).
Juerd replied with proposals for phasing out `-e` and friends in
favour of some more flexible/modern approaches. Larry Wall cleared up
the syntax for calling prefix operators as methods, and other funny
method names.
Acording to S05, due to the longest token rule `-e` will be parsed as
the prefix op `-e`, and not as prefix unary minus and call to `e`.
However, this is only the case if the prefix operator `-e` is actually
defined.
A discussion on identifiers with funny characters in them also started
under this thread.
Parrot Porters
JSON compiler <http://xrl.us/rraf>
Will Coleda announced that he had added a JSON compiler with help from
Jerry Gay and Nuno Carvalho.
[svn ci] apps/p3 <http://xrl.us/rrag>
Leopold Toetsch announced that he'd created a Parrot-based slide
presentation program. He requested improvements and suggestions.
[perl #40316] [NEW] opcodes not tested script
<http://tinyurl.com/km7yl>
Fonseka created ticket [perl #40316]
<http://rt.perl.org/rt3/Ticket/Display.html?id=40316> to include a
patch for a script which outputs the opcodes not covered by tests.
Currently all but 7% of the opcodes are used in real tests.
The thread continued in Re: [perl #40316] [NEW] opcodes not tested
script <http://xrl.us/rrah>, after the code was committed as r14594.
Leopold Toetsch commented on how disassemble was largely untested, and
Fonseka replied.
[perl #40319] [PATCH] PGE test file written in PIR revisited
<http://xrl.us/rraj>
In ticket [perl #40319]
<http://rt.perl.org/rt3/Ticket/Display.html?id=40319>, Nuno Carvalho
reported that he had cleaned `t/compilers/pge/06-grammar.t` and
included a patch. Patrick R. Michaud noted that test 10 was marked
'todo' but passed, and wanted to know why it was marked 'todo'.
Patrick applied it as r14606 and r14607.
The Interp structure <http://xrl.us/rrak>
Alberto Sim??es has been trying to improve `compilers/imcc` to make it
reentrant by removing globals and creating an object with the
variables which is relevant to the parser. He noted that an Interp
structure is being passed, but believes this does not duplicate the
functionality he is creating, and asked for a confirmation.
Libraries, dynpmc and Visual C++ <http://xrl.us/rram>
Ron Blaschke reported a fatal error when linking `gdbmhash.dll` on
Windows XP with Visual C++. Will Coleda applied the patch as r14586
and asked for someone using GCC on Win32 to confirm that the code
still worked.
Accelerating Method Dispatch <http://xrl.us/rran>
chromatic posted a link to thoughts on method dispatch by Piers Cawley
<http://tinyurl.com/gsckr> and Avi Bryant
<http://smallthought.com/avi/?p=16>. He wondered if it was similar
to PIC. Andy Armstrong replied that the articles describe branch
prediction for method dispatch, which he felt was different from
PIC. Leopold Toetsch thought there were some similarities, and
that further optimization was possible.
[TODO] fill Parrot_register_move() with code : new implementation
<http://xrl.us/rrao>
Karl Forner included a patch to revise `Parrot_register_move()` to
address some bugs and improve speed. The algorithm was explained in
detail. It was applied as r14621. Leopold Toetsch commented on the
implementation.
HOWTO give options to parrot in tests <http://xrl.us/rrap>
Karl Forner is working on [perl #40064] <http://xrl.us/qvjs>. He is
wondering how he can run the script with options, and wanted to know
if `TEST_PROG_ARGS` would be an appropriate choice. Leopold Toetsch
suggested subclassing Parrot::Test.
Global Variables Hunting <http://xrl.us/rraq>
Alberto Sim??es requested that anyone who found a global variable under
`IMCC/PIR` parser add a 'HITME!' comment near it and alert him.
cur_namespace under imcc.y <http://xrl.us/rrar>
Alberto Sim??es wanted to know if `cur_namespace` in `imcc.y` had the
same meaning as the one in `imc.h`. He wanted to merge them.
Version PMC <http://tinyurl.com/kgogr>
Leopold Toetsch noted that GMP 4.1.1 segfaulted during multiplication.
He corrected the problem by compiling and installing a new GMP, but he
would like to create a diagnostic to warn about the bad GMP version.
Users
the CGI.pm in Perl 6 <http://xrl.us/rras>
Darren Duncan made the suggestion that CGI.pm be improved for Perl 6
rather than simply ported. He listed a few ways in which it could be
improved. Mark Stosberg replied and mentioned some of the points he
considered most important. These suggestions in particular received
further discussion: removing HTML generation methods, renaming the
module, and incorporating session management.
Trey Harris agreed with Mark's sentiment about excluding HTML methods
from CGI.pm, but felt this could lead to limited Perl 6 adoption.
Thomas Wittek suggested `use perl5:CGI` for legacy support and
allowing CGI.pm to develop. Amir E. Aharoni was also in favor of the
backwards-compatibility module, and an improved default. David
Cantrell wondered if anyone was actually using HTML-generation. In
Andy Dougherty's opinion, there are probably many people using it that
way, because it features heavily in the documentation. Leon Timmermans
admitted to using them a few times, and wanted a modern equivalent,
but in a separate module. There were a number of other comments. The
general gist seemed to be that HTML-generation functionality is used
and should still be available, but optional.
The discussion of HTML methods led to Steffen Schwigon's observation
that CGI.pm could use a name change to make it appear more modern.
Darren Duncan and Juerd also disliked the current name. David Cantrell
and Darren discussed whether 'CGI' implies an implementation or a
standard interface.
In CGI Session management (was Re: the CGI.pm in Perl 6)
<http://xrl.us/rrax>, Michael Snoyman suggested making session
management easier, and perhaps integrating it. Yuval Kogman requested
that session handling be left to a plugin, and offered to share what
he had learned from redesigning the Catalyst session handling.
Trying to use Perl5 modules <http://xrl.us/rraw>
Richard Hainsworth has been trying to discover how to use Perl 5
modules in Perl 6. He included some code which worked in Perl 5, and
asked how he could use them in Pugs. Trey Harris replied that imports
currently don't work, and showed a workaround. Audrey Tang answered
that imports were implemented a few weeks ago, but implicit imports
aren't supported yet.
Richard also wanted to know where `.can` is documented.
Google "Welcome to the home page for Perl 6" (Perl 6 Wiki)
<http://tinyurl.com/zjr9u>
Conrad Schneiker noticed that Google had indexed the Perl 6 Wiki
<http://rakudo.org/perl6> but that it hasn't yet reached the top
search results.
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.
Yuval Kogman assisted with this summary.
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.perl.org/perl6>