This Week on perl5-porters - 23-29 March 2008

grinder on 2008-04-03T22:06:00

This Week on perl5-porters - 23-29 March 2008

"Anyway, a lot of these design changes work together to produce a smoother result. I confess I haven't thought much about whether they could be borrowed piecemeal; I have a hard enough time keeping one fantasy language in my head at a time." -- Larry Wall, on the differences in exception handling between Perl 5 and Perl 6.

Topics of Interest

Perl and CPAN distributors

The thread wound up this week with Gabor Szabo asking for someone to summarise the main points made in the discussion, for inclusion on the Perl5 wiki. The idea is to make life easier for people who package perl in operating system distributions, by explaining what they may, should and must do.

Nicholas Clark noted that starting from 5.11, the infrastructure is nearly all there for the perl5-porters to remove modules from the core while allowing distributors and local sites to continue to keep them, in a graceful manner.

  modular ecology
  http://xrl.us/biu9g 

Perl @ 33536

The 5.8.9 snapshot is having problems on Vista. Jan Dubois saw t/op/alarm.t failing but wasn't able to track down why. In the meantime, he released Win32 0.35 on CPAN. This will be folded into 5.8.9 to upgrade the Win32 therein from its current development status.

  http://xrl.us/biu9i 

local $@ has an unwanted side effect

Larry Wall gave the porters a run down on the current thinking regarding exception handling in Perl 6. Most of the pieces are in place, except for a hierarchy of exception object types, as @Larry are waiting to see the various implementations make of it all.

  there is no try
  http://xrl.us/biu9k
  http://xrl.us/biu9n 

pod wiki?

Reini Urban wanted to write in POD for the Perl 5 wiki (that uses SocialText as a back-end). Michael G. Schwern explained that the existing plug-in/markup-escape infrastructure was up to the job, and sketched out how one might go about doing it. Reini was sufficiently motivated to take a stab at setting it up.

Tels thought that it was silly to write Yet Another Pod-HTML convertor, and Michael thought that Pod::Simple::HTML should be close. Aristotle Pagaltzis thought that Pod::POM::View::HTML wasn't too bad either.

  http://xrl.us/biu9p 

left_shift problem

Reini has started to write a document about the guts of the op-tree. He started with the most trivial of op-codes, the one that performs a left bitshift (<<). Unfortunately he became side-tracked over the way signed and unsigned integers are used depending on whether the use integer pragma is in force. Yitzchak Scott-Thoennes explained the reason why things were why they are.

  hard left turn right
  http://xrl.us/biu9r 

Append "64" suffix to some of the installed files

Sérgio Durigan Júnior continued his quest to get 32- and 64-bit perls coexisting peacefully on his machine. Abigail showed how many different perls could live in the same directory tree, sharing common pure-Perl modules and keeping binary-incompatible files separate.

Dominic Dunlop remarked that Apple had managed to do just that already, but unfortunately no-one outside Apple had managed to replicate what they had done. Nicholas Clark mentioned that Edward Moy had some raw patch files to do just that, but didn't have the time to tidy them up (nor did Nicholas). Sounds like a nice self-contained task...

Other discussion in the thread talked about how perl is installed on HP-UX.

  more bits
  http://xrl.us/biu9t 

Too late for -Co

Alberto Simões wanted to know how he could make some old scripts work with 5.10, since they have -Co0 on the shebang line. Aristotle Pagaltzis recommended use open OUT => ':utf8', ':std' as a suitable replacement. Rafael Garcia-Suarez explained that -C had received this treatment as a consequence of a bug report, and that there was a TODO item recorded that explained what needed to be done to have the old behaviour reinstated (this time, without bugs).

  get it right
  http://rt.perl.org/rt3/Public/Bug/Display.html?id=34087
  http://xrl.us/biu9v 

Making pl2bat.pl more robust

Jan Dubois had been exploring approaches to make pl2bat.pl, since depending on whether an executable foo anything, as opposed to a specific foo.bat, exists in the current directory or not, you can wind up running something else that the program you thought you were going to run. Spaces in path names add to the fun.

With a series of four fall-through tests, Jan thought he had all the bases covered, and defied anyone to come up with a scenario that could get past the last case and hit the "Can't find full path" error message.

Jan also hoped that there were no longer any serious Perl users stuck on Win9X.

  going batty
  http://xrl.us/biu9x 


Patches of Interest

Too much sv.c consting

Nicholas Clark undid the final batch of consting from last week that Steven Schubiger had applied to sv.c. What is more, it was the second time he had had to roll back the same change.

Unfazed, Stephen delivered the fourteenth patch in the series. Andy Lester explained that he had considered doing what Steven is currently doing, when he was on his consting quest, but had considered that the added value wasn't worth the price.

  http://xrl.us/biu9z 

Borg parent.pm

Rafael Garcia-Suarez edited base.pm to recommend parent.pm in its place, and ask Max "Corion" Maischein to release a new version of parent to synchronise CPAN with blead. Some minor problems cropped up that Jerry D. Hedden tidied up.

  debased
  http://xrl.us/biu93 

configure.com and vms.c fixes

John E. Malmberg delivered some urgent patches to get VMS to build out of the box. H.Merijn Brand handled part of the patch through the brand new metaconfig infrastructure. Unfortunately this caused other platforms to complain unnecessarily. H.Merijn wasn't sure if he was doing something wrong, or whether the approach cannot work.


  http://xrl.us/biu95 

Documentation fix for perlfunc/shutdown

Paul Fenwick documented the return values of shutdown (whose existence I had so far managed to ignore). Nicholas Clark tried to improve Paul's prose and Paul came back with yet a better version. Unapplied.

  and turn the lights out
  http://xrl.us/biu97 

Solaris build warnings

Jerry D. Hedden found some warnings when building blead on Solaris. Andy Dougherty traced this to arrival of the PERL_BITFIELD16 typedef and proposed a minimal patch that cast things together correctly. Or at least silently. Unapplied.

  http://xrl.us/biu99 

Revising perlhack.pod

Leon Brocard updated the documentation to perlhack to take into account the changes to perlmain.c, and some notes on using valgrind. Applied after a resend.

  http://xrl.us/bivab 

Do not use SVTYPEMASK to prevent cleaning of PL_fdpid and PL_strtab

As part of his ongoing Kurila experiment (a fork of the perl5 codebase), Gerard Goossen traced down some problems that exist in the Perl array implementation.

Nicholas Clark used the information to provoke an assertion failure when running a make minitest. He applied Gerard's change, and suggested that there are still some things that need to be sorted out.

  http://xrl.us/bivad 


New and old bugs from RT

POSIX::SigSet double free with threads (#36653)

Steve Peters took another look at this problem from 2005, and discovered that while 5.8.8 ran without error, blead panicked with a free from wrong pool.

  ungood
  http://xrl.us/bivaf 

Segfault on @ISA push after symbol table delete (#52074)

Peter Scott posted a one-liner to make blead dump core. Nicholas Clark noted that since 5.8.8 is immune, it must be a problem in the new MRO code.

  nice self-contained task
  http://xrl.us/bivah 

Text::Wrap::wrap() generates a segfault with Cyrillic characters when the utf8 flag is turned on (#52104)

Frédéric Buclin filed a ticket that was turned arose in the development of Bugzilla (heh). Nicholas reduced it to a simple matter of a regexp using pos() inside a substitution, and tracing back, realised that the bug had been lying in wait, ever since it checked in, back in 2000.

It was then a simple matter to fix it in change #33580. As a bonus, this should make it into 5.8.9-to-be. Frédéric wondered what he could do in the meantime. Nicholas suggested one approach and Robin Barker another. Aristotle Pagaltzis, who wrote the current implementation of Text::Wrap::wrap (and built it for speed), suggested downgrading to a previous version.

  that wraps it up
  http://xrl.us/bivaj 

POSIX::strftime hangs on %Z under cygwin (#52126)

Eric Roode reported a bug in 5.8.8 that had previously been reported, and fixed, with change #29350. Nicholas Clark announced that said change was included in 5.8.9. Steve Peters showed how changing the final argument to strftime prevented the process from hanging in the meantime.

  tis a matter of time
  http://xrl.us/bivam 

Build error on AIX (#52188)

Shanthi Muthu Srinivasan was unable to build 5.8.8 on AIX, the process blowing up when trying to link miniperl. Dominic Dunlop suggested that it could be due to running out of disk space, and that Activestate have an Activeperl distribution for AIX that may be worth a try. H.Merijn Brand suggested a special incantation for 64-bit AIX.

No further information was forthcoming.

  http://xrl.us/bivao 

XS error in Win32::Console::_WriteConsoleInput (#52216)

Ed Sanman traced down a problem of console misbehaviour to what is probably a case of bad cut'n'paste. Not confirmed.

  watch your stack
  http://xrl.us/bivaq 

Perl5 Bug Summary

  294 new + 1509 open = 1803 (+8)
  http://xrl.us/bivas
  http://rt.perl.org/rt3/NoAuth/perl5/Overview.html 


New Core Modules

DB_File 1.817

Paul Marquess synchronised blead and CPAN.

  http://xrl.us/bivau 


This is the BBC

Regexp-Optimizer 0.15

Andreas König discovered, somewhat belatedly, that change #28868 broke Dan Kogai's Regexp::Optimizer package.


  http://xrl.us/bivaw 


In Brief

Nicholas Clark applied Dominic Dunlop's patches to tidy up failing tests on PPC64.

  http://xrl.us/bivay 

Vincent Pit spotted an apidoc mismatch for Perl_magic_clearhint and offered a patch, so Rafael applied it.

  wild cut'n'paste
  http://xrl.us/biva2 

Niko Tyni spotted a nasty typo in IO::Socket::INET where a hash key was named "upd" instead of "udp", and also offered a patch. H.Merijn applied the patch. I wonder if we could have tested for that.

  nice catch
  http://xrl.us/biva4 

chromatic tweaked the usage documentation for utils/dprofpp.PL . Applied.

  being consistent
  http://xrl.us/biva6 

Gerard Goossen also rejigged the MAD dump XML escape regexp, thus fixing a pile of tests that used to fail when run madly.

  http://xrl.us/bivbc 

Yitzchak Scott-Thoennes thinks that Devel::Cover in the core would be a marvellous idea.

  http://xrl.us/bivbe 

Nicholas Clark wrote some code to detect Configure test goofs and H.Merijn Brand folded it into the configuration infrastructure.

  http://xrl.us/bivbg 

David Cantrell hopes that Dave Mitchell's perl 5.10.1 plan includes Jarkko Hietaniemi's patch for Encode::Alias.

  20 houses down from the beast
  http://xrl.us/bivbi 

The bug tracking system thread attracted more discussion this week.

  http://xrl.us/bivbk 

Sérgio Durigan Júnior pinged the list about his problems when setting the libraries' installation path.

  http://xrl.us/bivbn 

Jim Cromie had a small interesting task to do, something about separate debug info.

  didn't set the world on fire
  http://xrl.us/bivbp 

Lincoln Stein absorbed a CGI::Carp typo difference between blead and CPAN.

  http://xrl.us/bivbr 

Peter Scott took a bash at glob in scalar context, offering a patch to reset the iterator in certain circumstances. Yitzchak showed how such a change would lead to even harder to debug problems.

  an oldie but a goodie
  http://xrl.us/bivbt 

It would appear that change #26980, regarding an improvement to PERL_DONT_CREATE_GVSV, would be the reason for test failures in Math-Pari.

  http://xrl.us/bivbv 


TODO of the week

A task that need a little C knowledge

Weed out needless PERL_UNUSED_ARG

The C code uses the macro PERL_UNUSED_ARG to stop compilers warning about unused arguments. Often the arguments can't be removed, as there is an external constraint that determines the prototype of the function, so this approach is valid. However, there are some cases where PERL_UNUSED_ARG could be removed. Specifically

  • The prototypes of (nearly all) static functions can be changed

  • Unused arguments generated by short cut macros are wasteful - the short cut macro used can be changed.

Last week's summary

Actually, two weeks ago. Sam Vilain explained how one could go about cherry-picking patches with git and promised to create a new version of the repository in UTF-8, so that people with non-Latin-1 names may be represented faithfully. (Hi Slaven!)

In mail to the list, I had complained about "foo" being rendered as ``foo'' in the summaries. It turns out that this is because at some point I switched my POD-to-HTML conversion from blead's pod2html to that of maint.

It turns out that lots of bugfixes went into the 5.10 release of Pod::Html, but as the module is not dual-lifed, it is difficult to upgrade older perls. So I volunteered to take care of dual-lifing it. Look for 1.09_01 on a CPAN mirror near you soon.

  This Week on perl5-porters - 9-15 March 2008
  http://xrl.us/bik5f 
  This Week on perl5-porters - 16-22 March 2008
  http://xrl.us/bivbx 

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 to help support the development of Perl.