Perl 6 summary, 4-10 Mar, 2007

kudra on 2007-03-31T14:27:00

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.

for ... else

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.

statement modifiers

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.

Compound grammar

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.

new Parrot project manager

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.

AIX 5.3

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.

Parrot won't build on cygwin

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.

Parrot 0.4.10 (Coming Soon)

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.

PIR Tutorial

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

lexical subs

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