This week on the Perl 6 mailing lists
"Q: Can February March? A: No, but April May..."
-- Larry Wall's r14313 log message for a date correction
Language
[svn:perl6-synopsis] r14308 - doc/trunk/design/syn
David Green asked if the reason behind Larry Wall's decision not to have ranges automatically go in either direction is to prevent subtle bugs from creeping in. Nevertheless, he thought it would be useful to have a way to travel in the 'natural' direction, whichever direction that might be.
Thomas Wittek recently encountered the Perl 5 module For::Else, which
allows if (@lar) { foreach my $moose (@lar) { ... } } else { ...}
to
be written as foreach my $moose (@lar) { ... } else { ... }
. He
wondered if something similar could be added to Perl 6. Rick Delaney
found the current syntax awkward, but wasn't certain that Thomas' solution
was ideal, and Paul Seamons was of the same mind. Jonathan Lang liked
the idea.
Steve Lukas was against the suggestion because he felt that idea
contradicted the common meaning of else
and would discourage people
who are used to other languages.
Luke Palmer noted that it would confuse Python programmers, as the
Python construct assumes that you are looping in order to find something.
Larry Wall suggested using a gather
to achieve this effect.
The discussion continued, for a total of 29 messages.
Jonathan Lang noted that S02, S03, and S04 contain references to the
deprecated concept statement_modifier
. Larry Wall was aware of the
problem, but was waiting for a few things to settle down before he
corrected them.
Jonathan also asked why statement modifiers are explicitly forbidden to 'do'
blocks, and if given
is considered conditional or looping when it is
used as a statement modifier. Larry replied that the ruling discourages
people from violating the endweight principle. In answer to the second
question, he said that given
is considered to be a loop, and when
is a conditional.
Jonathan Lang wondered how to define a statement or operator with syntax
like if ... else ...
or ... ?? ... :: ...
. Larry Wall suggested reading
the grammar POD.
resumable exceptions and LEAVE/KEEP/UNDO blocks
Daniel Hulme wanted to know what happens if a resumable exception is
propagated through a block with a LEAVE
, KEEP
or UNDO
block.
Larry Wall thought that perhaps Daniel had missed part of the documentation
which describes how a CATCH
block works, and quoted the relevant section.
Daniel agreed that he had overlooked it.
Coercion of non-numerics to numbers
Dave Whipp was curious about the semantics of coercion of non-numbers.
In his experiments, he wondered if it was correct for a x42
to become
0.0
instead of NaN
. Larry Wall felt that it should create a warning.
Allison Randal announced that the Parrot project manager role will now be distinct from the Perl 6 project manager role. Will Coleda will be responsible for Parrot, and Jesse Vincent will continue as the project manager for Perl 6. Meanwhile, Chip Salzenberg is officially on sabbatical for a while.
[svn:perl6-synopsis] r14317 - doc/trunk/design/syn
A commit from Larry Wall made module longnames specified in terms of identification plus adverbs.
Smylers questioned the decision to put a range operator in parenthesis to match more than one version number. He thought it would be better to specify a minimum version and assume that later versions will also have the feature or bug fix, because otherwise systems may break due from new library installations. Larry explained that this would not be a problem because Perl 6 would keep old versions of modules in the library unless the new versions claim to emulate the old version.
David Green asked how this emulation would be expressed. He also wanted to know what would happen if you were installing for the first time: would you get all versions of the module? Larry replied that the emulation syntax was not yet specified.
[svn:perl6-synopsis] r14319 - doc/trunk/design/syn
In this revision, Larry Wall defined the library version sorting order. Geoffrey Broadwell suggested using the versioning system of Debian to test, because it has an unusual design.
Parrot Porters
Re: [perl #41195] [BUG]: Change to Configure.pl causing 'make' to fail on Darwin
Some time ago, in ticket [perl #41195], James Keenan produced
a bug report. Will Coleda reported that he was unable to see the
bug, and asked if reverting Configure.pl
fixed the problem. James
reported that with r17419, there were still some problems. Will
remarked that he had reverted the order of the steps in Configure.pl
to fix the problem.
[perl #41364] [PATCH] Fixed object vtable method overrides in PIR
Earlier, in ticket [perl #41364], Patrick R. Michaud noted that the double-underscore method of overriding vtable methods cannot be deprecated until ticket [perl #40626] is resolved. Allison approved of the patch by Alek Storm and requested a regression test. She included a rough version.
Alek wondered if it could be committed now that 0.4.9 has been released. Jonathan Worthington noted some problems he had had with applying it.
This week, Jonathan Worthington made a few changes and committed it as r17514.
[perl #41455] [NEW] and [PATCH]: tools/build/ops2pm.pl refactored
In ticket [perl #41455], in February, James Keenan attached some new patches and files. Recently he decided to pull the patch from submission because some other changes have broken them.
[perl #41548] [Tcl] - internals tests failings
Earlier, Will Coleda created ticket [perl #41548] to report failing tests. Nuno Carvalho tested with r17365 and marked the ticket as closed because the issue appeared to be solved.
[perl #41583] Tail calls from within vtable methods broken
In ticket [perl #41583], Bram Geron reported a problem with tail calls in v-table methods. Recently, Alek Storm remarked that he had nearly completed a patch to fix it. Jonathan Worthington described the issue in more detail.
[perl #41602] [TODO] MS VS 2005 deprecates strdup
In ticket [perl #41602], Klaas-Jan Stol submitted a patch
which fixes the problem of strdup
being deprecated in Microsoft
Visual Studio 2005. It was applied as of r17281.
Klaas-Jan also wondered if strdup
should be used because of possible
memory issues. Jonathan Worthington clarified that it was not a problem.
There was some further discussion about the best solution for the original problem, with Kevin Tew, Philip Taylor and Jerry Gay adding their thoughts.
[PATCH]: tools for using Subversion branches; ops2c.pl refactored
James Keenan submitted a patch which includes a refactoring of
tools/build/ops2c.pl
and files which argue for using more subversion
branches. Sam Vilain wondered why the two changes were linked together
and felt that the tracking method for branches didn't follow the best
practices which have emerged through use.
James said that he had submitted the patches as one because he has been ill recently and wanted to complete the task quickly. He went into more detail about his reasons behind the subversion suggestions. Sam agreed with the goal of trying to get people to develop more in branches, but still disagreed with James. chromatic felt that experiments--such as James' ideas--are okay, because if they fail people will still learn something from it.
Later the patches were pulled from submission because some other changes in code meant that they were no longer passing tests.
Theodore Katseres reported success with building Parrot on AIX with GCC 4.0.0. Jerry Gay wanted to know if the test could be run more frequently, and reported in the smoke results.
[svn:parrot-pdd] r17322 - trunk/docs/pdds/draft
A commit from Jonathan Worthington described the new class and object layout for objects. Subsequent commits from Allison Randal modified the document.
Klaas-Jan Stol reported a problem with compiling Parrot on Cygwin.
[perl #41693] [PATCH] STM article reference corrected
Elizabeth Mattijsen pointed out a broken link and submitted a patch to correct it in [perl #41693]. It was committed.
Re: [perl #41695] [CAGE]: Refactor Parrot::Distribution
James Keenan created ticket [perl #41695] to log efforts to re-factor Parrot::Distribution. He included his notes from previous discussions on the topic.
[perl #41704] [BUG]: Test failures: t/pmc/object-mro.t t/pmc/timer.t
In ticket [perl #41704], James Keenan reported test failures with
make test
.
[perl #41707] [TODO] Tcl - relocate stub files
In ticket [perl #41707], Will Coleda described a task of moving some Tcl code to a new location. Nuno Carvalho made the changes in r17354.
[perl #41712] [TODO] deprecate CSub
Jerry Gay wanted CSub
deprecated before the 0.4.10 release. Allison
Randal agreed. This was handled in ticket [perl #41712].
[perl #41713] [PATCH] Updates for lang/PIR
In ticket [perl #41713], Klaas-Jan Stol attached a patch for
lang/PIR
which cleaned up the layout, changed some rules to tokens,
added tests, and added rules.
[perl #41724] [BUG] miniparrot fails to build on strawberry perl
Jerry Gay reported a platform-specific issue with miniparrot in ticket [perl #41724]. Aldo Calpini tried it but got different warnings. chromatic replied that the configuration process assumes a tight connection between the operating system and compiler.
[perl #41726] [PATCH] make lua fail more gracefully with an exception handler
Julian Fondren submitted a patch in ticket [perl #41726]. The
patch makes Lua generate .pir
files which push an exception handler
before evaluating code.
[perl #41732] [BUG] parrot objects segfault on improper invoke override
In ticket [perl #41732], Will Coleda reported a segmentation fault when invoke is improperly overridden.
Re: [perl #41733] invoke :vtable - execution stops
Richard reported a problem with the latest Parrot. He included some code demonstrating the issue in ticket [perl #41733]. Alek Storm pointed out that the invoke vtable method is meant to take one argument. He showed some example text.
Matt Diephouse saw a problem with Alek's approach and suggested an alternative. chromatic agreed with Matt, but then Matt came up with another solution, which was applied in r17385.
[perl #41738] languages/APL is broken
Bernhard Schmalhofer used ticket [perl #41738] to report that
languages/APL
fails smoke tests on all platforms. He suspected
it hadn't been updated to the HLL refactoring in r16974.
[perl #41739] [PATCH]: add "clone" method for iterators
Eric Hanchrow submitted a patch in [perl #41739] which added a
clone
method for iterators. It was applied in r17411.
Will Coleda created a placeholder ticket [perl #41581] to mark the upcoming release of Parrot 0.4.10, expected in less than two weeks.
[perl #41743] [PATCH] Make all but (perl5|pugs|t) have a MAINTAINER
In ticket [perl #41743], Julian Fondren submitted a patch which added
MAINTAINER
files for parts of the languages tree which didn't have them.
Klaas-Jan Stol remarked that he had started a PIR tutorial on the wiki, and invited people to help. Julian Fondren suggested several topics which hadn't yet been addressed. James E Keenan also offered a suggestion.
[perl #41746] [BUG] pdump doesn't build.
Will Coleda reported a bug with pdump
in ticket [perl #41746].
C pmclass - parrot object inheritance, interaction vtables/methods/object identities
Mehmet Yavuz Selim Soyturk is implementing ECMAscript and ran into
problems. The question was if get_pmc
is an appropriate solution
for the problem, or if there is a better way to handle it.
[perl #41749] [TODO] deprecate substr_r op
In ticket [perl #41749], Jerry Gay suggested deprecating
substr_r
. Leopold Toetsch asked if it could remain an experimental
operator until the string issues are resolved. Allison Randal said
to move it to experimental.ops
and note it in DEPRECATED.pod
.
[perl #41569] t/distro/file_metadata.t fails on win32
Ron Blaschke asked what result he could expect from t/distro/file_metadata.pl
as of r17389. In ticket [perl #41569] he showed what he was seeing on
a Windows system. Will Coleda thought that the second test should be
passing as of r17398, and that the first two ought to pass. Ron
submitted a patch to make the test work on Windows, which was applied
in r17406.
chromatic wondered if it would be better to use File::Spec, as the problem
involved /
versus \
. Ron elaborated that the problem is that the
MANIFEST
doesn't match the output from svn.
[perl #25253] [PATCH] Remove Parrot_INTERP
In ticket [perl #25253], Jerry Gay asked chromatic to look at
removing Parrot_INTERP
.
[perl #41750] [PATCH] Pynie updates
In ticket [perl #41750], Klaas-Jan Stol submitted a patch for Pynie, which was applied. This patch fixed the rule for floating points, among other things.
[perl #41753] [CAGE] better document and test PMETHOD and PMINVOKE
Jerry Gay wanted documentation for the C-level support for Parrot calling conventions which was recently added. He made this remark in ticket [perl #41753].
Glossary is missing from parrotcode.org
Will Coleda created ticket [perl #41768] to store Klaas-Jan Stol's comment that the glossary page should output to the website.
Q: Should Op names be allowed to be identifiers.
Klaas-Jan Stol noted that it is permitted to use ops as names for variables in PIR, but if you tried to increment the resulting variable, it will not compile. He suggested disallowing using opnames in this way.
[perl #41760] [PATCH] lang/pynie some bin.ops
In ticket [perl #41760], Klaas-Jan Stol submitted another Pynie patch. It was applied as r17407.
[perl #41762] [PATCH] Languages/Pynie functions!
The patch in ticket [perl #41762], by Klaas-Jan Stol, implements basic function calling in Pynie.
[perl #41763] [PATCH]: fix "clone" method for iterators
In ticket [perl #41763], Eric Hanchrow submitted a patch for iterator cloning. It was applied, with minor changes, in r17691.
[PATCH 0/6] A round of updates to Test::More
Sam Vilain submitted a patch to extend the Test/More.pir
library.
perl5-porters
H.Merijn Brand kicked off a very large thread (53 messages in total) by requesting lexical subroutines. Although the message was posted to the Perl 5 porter's list, it involved Perl 6 and appears to have been cross-posted.
Dr. Ruud was in favour of the idea, as was Paul Johnson. Tels didn't like having two subroutines of the same name, and suggested an anonymous subroutine with a variable referencing it. The concern was that it would be hard for a human to know which subroutine was called without checking the lexical scope. David Nicol also considered it unnecessary. Johan Vromans found it no more confusing than a lexical variable. Abigail agreed with Johan. Michael Schwern felt that it was in fact less confusing, as in his experience, Perl trainers are often faced with the question "how do I declare a lexical subroutine?"
Demerphq noted that it is difficult to do a recursive subroutine with lexically scoped references to anonymous subroutines and avoid memory leaks. Aaron Crane pointed out that a subroutine with a fully-lexical name wouldn't be mistaken for a method.
Mark Jason Dominus didn't care one way or the other about lexical subroutines, but wanted to add a number of test cases to define the feature if it is added. His example test case generated some discussion. Larry Wall invited anyone to translate the test cases to Perl 6 and install them in the Pugs test repository, as Pugs should already handle lexically scoped subroutines.
There was some question of whether lexical subroutines exist in Perl 5 bleed. Rafael Garcia-Suarez, Abigail, and Jan Dubois contributed information. It appears that they were in to the 'todo' list for 5.6.1, but haven't been implemented. Juerd Waalboer wanted Perl 6 to conform to Perl 5's implementation, or vice versa.
Meanwhile, Wolfgang Laun wondered if Perl would incorporate any sort of information hiding, which Rafael summed up as "a whole can of worms."
Acknowledgements
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