This Week on perl5-porters - 1-7 September 2008

"These [tests] are new and also fail in blead. The watchdog that is supposed to only kill a stuck process is definitely not waiting 120 seconds, and when it fires it takes out the process from which Perl was started. Maybe that's intentional, but it did surprise me the first time my telnet session disappeared." -- Craig A. Berry, bringing maint goodness to VMS


Topics of Interest

Request does_ok() as per isa_ok() in Test::More et al

Darren Duncan wanted to see a does_ok() appear in Test::More that would perform a does on its argument rather than an isa. This would be helpful in role-based programming.

Matt Trout noted that this is already implemented in Test::Moose and thought that this was the best place for it. Rafael Garcia-Suarez thought that he would have paid more attention to the matter had it been related to the new UNIVERSAL::DOES in 5.10.

chromatic wondered whether Moose (in 5.8) was doing something dramatically different from UNIVERSAL::DOES.

  does it indeed
  http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-09/msg00008.html

Perl-5.8.6 or Perl-5.8.5 Install/Build process on AIX 5.3

Over the space of about 30 hours, H.Merijn Brand, assisted by Andy Dougherty helped Mohammed Arshad get Perl 5.8.8 up and running on AIX 5.3. They nearly got DBD-Oracle running as well, but thankfully Nicholas put an end to the thread when he suggested that the dbi-users mailing list was a better venue for such matters.

  the doctor is [in]
  http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-09/msg00002.html

Smartmatch with regex in list context

Moritz Lenz forwarded a link to a Perlmonks discussion where it is shown that smartmatching against a regular expression doesn't behave the same way a regular match when in list context. That is, the following:

  my @a = 'aaa' =~ /./g; # match
  my @b = 'bbb' ~~ /./g; # smart-match

don't do the same thing. Aristotle Pagaltzis pointed out that changing this would introduce a difference in behaviour compared to using a string in list context. Moritz argued that changing things to his way of thinking would be more in line with Perl 6.

  smartest smart match
  http://perlmonks.org/?node_id=708150
  http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-09/msg00007.html

Forcing older perl to use an older version of cpan module?

Chia-liang Kao uploaded a shiny B::Utils to CPAN, only to discover that it fails to compile on 5.6.2, and wanted to know what was the best way to signal to people trapped in 5.6-land to not attempt to install this upgrade.

Nicholas Clark wanted to know why a use 5.008 would not suffice. Eric Wilhelm suggested that such a task (getting this new release to work on 5.6 -- the exact details are rather minor) is exactly the sort of thing one would pay a vendor to take care of. This amused Nicholas no end.

chromatic took the opportunity to ask a number of questions to try and understand why it's so hard to release a new version of Perl. To his way of thinking, it should be so simple that people could upgrade their perl (and not just a module or two), easily and without fuss.

Jesse Vincent, speaking with the hindsight of Parrot's monthly release schedule, wanted to know how one would go about doing something similar for Perl 5. chromatic responded with a nineteen point plan. A number of people volunteered to fill in the slots proposed in chromatic's Plan.

  just upgrade already
  http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-09/msg00021.html

TODO list for moving to git

Ricardo Signes wanted a TODO list for moving to git to see the light of day. The move was proposed in March, and six months later we're still in Perforce. Nicholas responded with six main points.

H.Merijn Brand requested a cheat-sheet for hardcore Perforce users to help them get up to gitspeed. Craig A. Berry pointed out that a major smoker issue is that smoking is carried out by keeping track a monotonical patch sequence. When the switch to git is made, that will be replaced by an opaque digest string, so it becomes difficult to figure out whether one is up to date.

Perlbrowse (the web viewer of the change history) is another major piece of work that will need to be taken care of.

Many of the popular platforms have working git implementations these days, VMS being the major exception to the rule.

  git along
  http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-09/msg00057.html

Hosting Perl's git

Yuval Kogman despaired at the waffling in the first git thread, and so he started a new JFDI git thread. While he was right in suggesting that the git migration doesn't have to occur all at once, Nicholas Clark reminded him that lots of commits are made to codebase each and every day, which means that the switch-over needs to be done with minimal down-time.

  fast flux changelogs
  http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-09/msg00127.html

maintperl-5.8.x's IPC::SysV fails tests on Mandriva

Shlomi Fish reported problems with 5.8.9-tobe building IPC::SysV, and this turned out to be a problem due to an rsync not removing files orphaned files from the build. This can be done with the --delete switch.

Nicholas Clark has always been reluctant to put that in the instructions, because if the rsync command is run from the wrong place, a lot of files can wind up being unexpectedly deleted. He thought that an improved recipe involving --dry-run might be called for.

  the kitchen rsync
  http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-09/msg00079.html

Perl with dtrace support built in

Edward Peschko, having read about Andy Armstrong's, Alan Burlison's and Seven Dowideit's efforts to build a dtraced perl, wondered if it was available yet in the standard or a vendor distribution.

Nicholas explained that it was in blead and the 5.10 track, so it will see the light of day first as 5.10.1. Steffen Müller announced that he updates his 5.10 installation directly from the source tree from time to time and uses it directly in production... and is very happy with the results.

Andy Armstrong posted a patch for people who want to dtrace 5.10.0 now, today.

  dtrace probity
  http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-09/msg00117.html

Helping with 5.8.9

After Nicholas Clark told Paul Fenwick that he would not be able to review Paul's autodie work before getting 5.8.9 out the door, Paul put that aside for the moment and promised, in between holding Perl training sessions dressed up as a pirate, that he would avail himself to writing the perl589delta document.

After examining the size of the Changes file, he announced that he was going to chop it up month by month, and farm them out to willing victim^Wvolunteers to try and get some parallel processing happening.

  it's alive
  http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-09/msg00121.html

After starting to knock some sense into the document, Paul issued a wider call for assistance.

  now for the paperwork
  http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-09/msg00147.html

Git for perforce users

Yuval also took a crack at writing a cheat-sheet for git, which was reviewed by Rafaël Garcia-Suarez and Aristotle Pagaltszis.

  git crit(?:ic|ter)s apply within
  http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-09/msg00128.html

maint-5.8@34289 on VMS

Craig A. Berry gave an update on the current problems that maint has on VMS. A couple of VMSperlers piped up with suggestions, and at the end of the thread there was a solution for taking out the perl process rather than its controlling terminal, and a solution to a sleep waking up too early and causing a watchdog to bark too soon.

  more songs about building and VMS
  http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-09/msg00170.html

perl@34300

Nicholas Clark released a snapshot of what 5.8.9 is likely to look like. Robin Barker found a problem with IPC::SysV and suggested a solution. Nicholas thanked him for the feedback.

If you download the snapshot and find a problem, Nicholas will thank you, too.

  still smoking
  http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-09/msg00176.html

PathTools CPAN vs. blead

Nicholas asked about a problem that arose last year concerning %ENV traversal on VMS, in that the contents can change more or less asynchronously. John E. Malmberg explained that that's how things work on VMS: the environment table is mapped to VMS's logical names infrastructure, which is system-wide in scope and thus may be in a permanent state of flux.

  not quite Unix
  http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-09/msg00182.html


TODO of the week

Smoke maint-5.8. Seriously. On any weird platform and/or compiler you can lay your hands on.


Patches of Interest

AutoLoader 0.67

Steffen Müller offered a patch that synchronised the CPAN version of AutoLoader with bleadperl and said that it would be safe to apply it to the 5.8 and 5.10 tracks as well. Nicholas Clark applied it to blead.

  http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-09/msg00158.html


New and old bugs from RT

Unicode::UCD::charinfo() does not work on 21 Han codepoints (#58428)

Karl Williamson set in a patch to fix this up for UCD 4.1 and beyond and suggested it may work for earlier versions. Un-looked-at.

  http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-09/msg00141.html

Unicode::UCD::casefold() does not work as documented, nor probably as intended (#58430)

Karl also spent more time on this related bug by plumbing the depths of the text file that stores the case folding information. While the file is poorly documented, he was able to draw some reasonable conclusions by empirical observation.

From his analysis, he concluded that the casefold() function doesn't follow the ideal case folding algorithm. In which case, it needs work.

  raise you an lc()
  http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-09/msg00149.html

Bus error with constant + overload + stash manipulation + bless (#58530)

Father Chrysostomos showed how a particularly twisted blend of code can make the interpreter throw up its hands in a panic.

  bless my soul
  http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-09/msg00083.html

Compiling PERL 5.8.8 on AS/400 PASE environment. (#58566)

Wayne Johnson was trying to compile on an AS/400 environment, received a weird error from Configure regarding the impossibility of finding a Bourne shell on the system, and then Wayne referred to AIX.

This left H.Merijn Brand confused as to which environment Wayne was really using.

  http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-09/msg00126.html

Data::Dumper and slashes within qr (#58608)

Tina posted a short, sweet snippet showing how Data::Dumper gets confused over a string that is defined as q( \/ ) and then used as a regular expression via qr(). Data::Dumper makes a mess of escaping things and as a result its output cannot be eval'ed back again to recover the pattern.

Bram was able to produce a number of variations on the theme, but was at a loss as to how to fix it. He saw how the code in Data::Dumper blindly tried to escape / slashes so that it could emit the pattern as qr/$whatever/. Data::Dump goes to a lot more effort to try and find some reasonable delimiters, but Bram suspects that even there the code doesn't really solve the problem, just reduces the possibility of failure down into a smaller range.

David Nicol suggested returning a do block that would eval the pattern back into existence correctly.

  no-one evals Data::Dumper output, right?
  http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-09/msg00163.html

foreach @foo (@bar) causes segfault with namespace::clean (#58614)

Yuval Kogman wanted to iterate with an array variable over an array. When namespace::clean is near by, one has a choice between a segfault or a bus error. Yuval thought the problem with the parse error (hint: you cannot iterate with an @array) was causing %^H to be cleaned up poorly and thus creating a cascade of garbage collection problems.

Dave Mitchell was of course able to boil the problem down to a pair of simple files that used no other modules. This allowed him to figure out what was probably going on underneath the hood, but admitted not having much time to investigate any further.

  http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-09/msg00169.html

Perl5 Bug Summary

  263 new + 1030 open = 1293 (+5 -2)
  http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-09/msg00016.html
  http://rt.perl.org/rt3/NoAuth/perl5/Overview.html


New Core Modules

Test::More 0.81_01

Michael G. Schwern announced a development snapshot of Test::More replete with shiny goodness and a solution for a 4 year old bug report. Andreas König announced that it caused a failure in Sub::Uplevel's test suite.

  http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-09/msg00175.html


In Brief

Nicholas Clark recalled that things were simpler in the old days. The original test harness had about 6 lines of useful code. These days it contains quite a lot more...

  http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2008-09/msg00171.html

About this summary

This summary was written by David Landgren.

Weekly summaries are published on http://use.perl.org/ and posted on a mailing list, (subscription: perl5-summary-subscribe@perl.org). The archive is at http://dev.perl.org/perl5/list-summaries/. Corrections and comments are welcome.

If you found this summary useful, please consider contributing to the Perl Foundation or attending a YAPC to help support the development of Perl.