Ann Barcomb
Sun, 03 Sep 2006 11:50:50 -0700
This week on the Perl 6 mailing lists
"I once saw an overfilled waterbed that was almost as tall as I am. I
would have called it PHP, but it didn't explode and throw cold water
all over the house."
-- chromatic
Language
clarifying the spec for 'ref' <http://xrl.us/rav8>
Last week, Mark Stosberg wanted Perl 6 to retain the Perl 5 responses
to `ref` or justify the change in the documentation. Larry Wall
explained that `ref` will not exist in Perl 6; instead, it will be
something like `.what`, which will return the type itself, rather than
a string.
The thread then moved on to subclassing, after Luke Palmer suggested
that `Array` would be a subtype of `Array::Const`, after Larry had
stated the reverse. This led to a lengthy discussion on the subject.
This week, Richard Hainsworth tried to analyze situations involving
classes and roles using sets and subsets. He started a new thread for
the topic, Classes / roles as sets / subsets <http://xrl.us/rjmd>.
Same-named arguments <http://xrl.us/rjme>
In the previous week's summary, it was reported that Michael Snoyman
asked whether or not arguments of the same name but a different sigil,
e.g. `sub foo ( $foo, @foo )` will clash. Luke Palmer thought it was
going to be a compile time error, due the to the arguments do not have
the sigil as part of their long name. Mark J. Reed wondered whether or
not that is consistent with the rest of Perl 6. Audrey Tang then
explained the syntactic difference between pairs and named arguments
with regard to barewords and quoted strings.
On August 27th, Michael repeated a friend's suggestion of making the
sigil on the name optional for disambiguation. Mark Reed also made a
proposal, which included having the sigil be optional in some cases.
Implicit current-index variable, scoped inside for-loops
<http://xrl.us/rjmf>
Carl M??sak reported a conversation from #perl6. There was a suggestion
for a special variable which would carry the loop index. Ruud H.G. van
Tol thought that if the block had a label you could have multiple
indices attached to the name. Mark A. Biggar noted that it should also
work for grep and map. There were some further discussions of syntax.
Jonathan Scott Duff thought it would be too much sugar.
Classes / roles as sets / subsets <http://xrl.us/rjmd>
Continuing from his earlier message in thread clarifying the spec for
'ref' <http://xrl.us/rav8>, Richard Hainsworth continued his quest to
completely understand classes in Perl 6. Daniel Hulme made a
suggestion on the diagrams.
In Fwd: Classes / roles as sets / subsets <http://xrl.us/rjmg>,
Jonathan Lang responded to Richard's questions and tried to answer
them. chromatic brought up the question of the relationship between OO
and inheritance.
return Types: what are the enforcement details? <http://xrl.us/rjmh>
Mark Stosberg wanted to write tests for 'return types' but wanted
documentation on what cases (of a different type returned) should give
errors. He also wanted to know if they are declarations or contracts.
Yuval Kogman replied that `of` is the contractual form, while
`returns` is a constraint which is more like a cast. He also took a
guess at what results were appropriate.
named arguments: What's the signature? <http://xrl.us/rjmi>
Mark Stosberg felt that information on the signature to use to declare
an arbitrary number of named arguments is missing from S06. Trey
Harris thought that the description of slurpy parameters already
covered the subject. Stuart Cook suggested reading 'List parameters',
which he thought should be cross-referenced under 'Named parameters'.
A suggestion for a new closure trait. <http://xrl.us/rjmj>
Joe Gottman suggested a block closure trait `RESUME`, which would be
called at the beginning of each loop iteration other than the first.
Jonathan Lang asked if the relationship between `RESUME` and `FIRST`
would be the same as `NEXT` to `LAST`.
could 'given' blocks have a return value? <http://xrl.us/rjmk>
Mark Stosberg wanted to use `given` to populate with whatever value
was returned from `when {}` or `default {}`. He noted that Pugs allows
this when you wrap a block in an anonymous sub, but suggested that the
syntax could be cleaner.
Jonathan Lang thought that the last expression evaluated within a
closure is returned by the closure, and that `given` is just another
closure. Agent Zhang reported that S04 states `given {}` cannot be
used directly as an expression, but offered alternate syntax. It was
concluded that `do given` is probably the best way to do this, and it
should be documented.
Questions about statement modifiers <http://xrl.us/rjmm>
Agent Zhang wanted more information about statement modifiers than
appears in S04 and included some code snippets, asking if they were
valid Perl 6. Larry Wall clarified, and agreed to add the information
to S04.
derived class generators and introspection <http://xrl.us/rjmn>
Darren Duncan described his thoughts on the subject of implementing a
relational database in Perl 6. Nigel Hamilton had some questions on
disk access and data storage.
Naming the method form of s/// <http://xrl.us/rjmo>
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.
Uncaught exceptions <http://xrl.us/rjmp>
Andrew Suffield asked how an uncaught exception should react in
certain situations. He was unable to find anything in the synopses on
the subject.
Nested statement modifiers. <http://xrl.us/rjmq>
Paul Seamons wondered if there was a reason why Perl 6 would not allow
nested statement modifiers. Trey Harris reported that it was rejected
by Larry in 2002 and gave a link. Jerry Gay thought a sentence on the
subject should be added to S04. Trey noted that the synopses only
address changes from Perl 5, and Perl 5 only allows one statement
modifier.
Paul noted that the object syntax and the Perl 6 grammar have changed
since 2002 and wondered if the reasoning was still the same. Randal
Schwartz thought that Larry's reasoning was that he had seen this
feature abused in other languages. Paul agreed that there are few
instances where it would be useful but still wanted the opportunity to
abuse it.
Parrot Porters
PMC Methods, Inheritance, and User-visible Classes <http://xrl.us/rjmr>
Matt Diephouse plans to work on `AbstractPMCArray` PMC class which can
provide some default array vtable functions other PMCs can inherit. He
was not certain how to best handle sort methods, which could
potentially end up being visible to the user. He asked for opinions.
Joshua Juran suggested requiring array classes to implement `swap()`
and implementing sort algorithms in terms of that. Matt felt that this
would not handle the underlying problem of methods not available in a
given language becoming available to users.
Watson Ladd wondered if it was bad to add functionality to a language,
and chromatic responded. This led to a discussion on what exactly is
wrong with PHP.
#ParrotSketch Meeting 29AUG06 <http://xrl.us/rjms>
Will Coleda posted the URL of the 29 August #ParrotSketch log
<http://xrl.us/rjmt>.
[perl #40253] [PATCH] always cast printf("%p") to (void *)
<http://xrl.us/rjmu>
In [perl #40253] <http://xrl.us/rjmv>, Will Coleda supplied a patch to
change printfs arguments to avoid compiler warnings. However, the
patch caused some test failures. Joshua Hoblitt wanted to know what
compiler was generating the warnings. It was gcc 4.0.1.
Why does writing PMCs suck? <http://xrl.us/rjmw>
Matt Diephouse put out a call for comments on what people do not like
about writing PMCs. He started the list with two complaints. chromatic
added three.
Proposed patch <http://xrl.us/rjmx>
Mark J. Reed reported that compilation fails on OS X 10.3 with gcc 3.3
because `-bundle` is misinterpreted. He supplied a patch to change the
order of arguments which fixes the problem.
Error Recovery in Parrot <http://xrl.us/rjmy>
Alberto Sim??es tried to create an RT ticket but it was not added, so
he reported the problem to the newsgroup. He finds it problematic that
Parrot stops with the first error it encounters and doesn't report any
other errors which may exist. He offered a patch and gave people a few
days to object. Jerry Gay suggested applying it, and reported the RT
problem.
PGE bug? <http://xrl.us/rjmz>
Will Coleda posted his attempt at implementing a JSON parser in PGE.
He later found the bug that was causing him problems.
Users
multi subs with identical signatures: should be a warning ?
<http://xrl.us/rjm2>
Mark Stosberg wanted to know where he should read to learn how the
dispatching to the correct multi sub is resolved. Markus Laire
suggested looking at S12 and possibly S06.
re: Announcing the Perl 6 and Parrot wiki workspaces
<http://xrl.us/rjm3>
Conrad Schneiker announced that he had added some information to the
wiki. He felt that the interface was easy to use, and wondered what
other people's experiences were. There was some discussion on why the
connection was slow, and the reason seemed to be that it runs on Andy
Lester's home machine. Andy tried to adjust his connection, and Juerd
offered to host it on feather.
Writing modules <http://xrl.us/rjm4>
Michael Snoyman wondered how a to create a makefile and run tests for
a module which wouldn't exist in the Pugs source tree. Gaal Yahas
suggested not worrying about the makefile unless the module is
intended for distribution. He suggested that `Test.pm` should be used
for testing, and that the Pugs distribution has good examples of
functional tests.
Stubborn coworkers <http://xrl.us/rjm5>
Jeff Stampes wondered how he could interest his coworkers in Perl 6
topics, given some resistance to the syntax. Fagyal Csongor replied
that the syntax is indeed full, because Perl 6--like Perl 5--tries to
handle many different things. However, people need only learn a
relevant subset. Amir E. Aharoni offered a link to samples of Perl 5
and Perl 6 code, where the latter was much cleaner.
Jonathan Scott Duff agreed with Fagyal, noting that the default syntax
is clean. He suggested the fear may come from the possibility of
changing the rules. A. Pagaltzis disagreed that the coworker's
assertion that Perl 6 resembles Lisp and Forth. Steffen Schwigon
suggested comparing Perl 6 to Perl 5. Several other people also
contributed to the thread.
Help getting pugs working? <http://xrl.us/rjm6>
Jeff Stampes ran in to difficulties getting Pugs running on Red Hat
Enterprise 4. Steffen Schwigon wondered if Jeff had tried one of the
binaries. Later Jeff reported that he had it working.
Acknowlegements
This summary was prepared using Mail::Summary::Tools
<http://xrl.us/qvno>, now available on CPAN. A big thank-you to Yuval
Kogman.
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.perl.org/perl6>