This (unfinished) Week on perl5-porters - 19-25 June 2006

This (unfinished) Week on perl5-porters - 19-25 June 2006

"I estimate that it would take approximately 2000 CPU years to smoke all of CPAN on a reasonable set of platforms." -- Adam Kennedy, 2000 light years from home.

Topics of Interest

[summariser's note: the week was too busy for me to spend the required time to bring the summary to a close, so here's the best I could do. Regretfully, I am unable to summarise Nicholas Clark's excellent follow-ups to the Perl 5 advocacy thread that was kicked off the week before. Interested readers are invited to dive back into the thread to chase them down.]

  Once upon a time

Bringing Win32API::File into the core

This was in some ways fall-out from the advocacy thread last week. By bringing this module into core, it would ease installing CPAN modules on the new non-ActiveState Windows-based Perl distributions that are coming to light (that is, distributions that don't use ActiveState's ppm installer but instead use source tarballs directly from CPAN).

Expressions of interest in regular expressions

Dave Mitchell reported that he reworked the TRIE regop to work with the new state stack mechanism, thereby removing more recursion from the regular expression engine. Yves Orton was impressed that Dave taken Yves's code in his stride, and announced that he was planning to introduce another regop in the future for other kinds of tries.

  Going cursive

Yves Orton followed up on a question Tels asked last week, about benchmarking regular expression performance

  A fair fight

warning at exit if detached threads still running

It used to be that if a thread was still running at exit time, a warning was generated. So a patch was written to suppress it. Jerry D. Hedden questioned the rationale, pointing out that someone, somewhere, might find this useful sometime.

He thought that a nicer way of dealing with this would be via no warnings 'threads', except that it doesn't work. Rafael Garcia-Suarez explained what hoops one would have to jump through in the C source to do so. Jerry noted that the different functions Rafael cite are not documented, and wanted to know what the differences were between them. Rafael explained the differences, and suggested looking through the source for a sample of uses.

  A fair warning

Thread hook not called on exit

In other threads news, Jerry also discovered how a small thread that does nothing but exit will not call the PL_threadhook handler and wondered what to do about it. Jan Dubois thought that the best thing to do would be to put the thread running code in a setjmp/longjmp-style wrapper.

Calling exit from a thread

Can't suppress 'treads still running' warning

threads 1.33

threads 1.33 (revised)

What about CPAN smoke?

Tom Horsley kicked off a thread about testing CPAN.

Patches of Interest

IO::Compress::* 2.000_13

First steps in implementing the zip64 algorithm in Perl. As there is no real reference implementation, and the specs are vague in places, Paul Marquess kicked this out the door to see whether it flies or smokes.

  The 64 bit question

Localizing temporary variables

Andy Lester pulled some variables down into tighter scopes in regexec.c, in an attempt to make it easier to read and follow.

  Bedtime reading


A sensible improvement to perlhack.pod from Dr. Ruud.

Watching the smoke signals

A couple of smokes drew some comments.

Smoke [5.9.4] 28402 FAIL(F) MSWin32 WinXP/.Net SP2 (x86/2 cpu)

Smoke [5.9.4] 28410 FAIL(Fm) MSWin32 WinXP/.Net SP2 (x86/2 cpu)

New and old bugs from RT

Memory leak occurs when an eval statement exits by a signal (#38854)

Dominic Dunlop followed up on this April bug with some cogent analysis that pinned the blame on calling die() within a signal handler, but lacked the time to dig more deeply into the problem.

Bug in toke.c (s//#/e) (#39365)

Rafael applied bcarter's patch to fix this problem, and added a regression test to make sure it never comes back.

Problem on installing DBI module (very Urgent) (#39527)

Dominic and Yves went the extra mile to help solve this problem, even though it had nothing to do with p5p's charter.

*** glibc detected *** free(): invalid pointer from Perl_mg_free (#39528)

Chris at financial was having a problem (like a segfault) with the CentOS packages of apache, mod_perl and perl and asked for help. Nicholas regretted to announce that he didn't have the faintest idea what was happening, and suggested either trying to reproduce the problem using only core modules, or asking CentOS for support.

printf: bad formatting of hexadecimal conversion of binary string using vector flag (#39530)

Sadahiro Tomoyuki and Dominic Dunlop raced each other to see who could develop the best patch for this bug in the shortest possible time (some issue with formatting v-strings). In the process, it appears that Ravi S. Kadali from IBM is able to run smoke tests against blead on the z/OS platform. This will do wonders for smoking out EBCDIC oddities.

Multiple threads + backticks + Win32 = intermittent hangs (#39531)

Keith Doyle found that multiple threads that backtick or popen kids will hang at random, which is admittedly less than ideal. Unfortunately he received no feedback on the issue.

make test fails with getppid in a Solaris 10 zone (#39536)

Jie Gao discovered a problem with op/getppid.t on maint. Dominic thought that the test from blead, which has been rewritten, would possibly do the tricked and asked Jie Gao to take it for a spin, to see if it resolved the failure.

Bug in system calls when %ENV is very large (#39547)

Alex Keim had a problem on the Win32 platform with environments approaching or exceeding 32K in size. Steve Hay was able to reproduce the problem and found that it only manifested itself in threaded builds. Jan Dubois and Dr. Ruud suggested some other workarounds (basically, use a file, memory-mapped or otherwise, rather than the environment to pass large slabs of data to kids).

Alex still found that an environment that gave cmd (the Win32 shell) no trouble caused Perl grief, pointing to a problem with perl's environment handling.

Text::Wrap: "This shouldn't happen" happens (#39548)

A "cannot happen" bug in Text::Wrap surfaced with this bug report. Dominic chose to punt the issue for a while, to see what the current maintainer of the module had to say.

Updating to 5.8.8 (#39572)

Laurent had a strange problem with a tarball for perl 5.8.8 that seemed to be lacking a couple of example files, according to the manifest. Dominic offered what advice he could.

Pattern Match fails for specific length string (#39583)

Erik R. Ogan discovered that 5.8.8 would fail to match a string that ought to have 32767 characters matched by (.*?).

  Funny about that

Problem with make test in perl-5.8.8 (#39613)

Ravi kumar Ravi had some problems with protocol name resolution causing a handful of tests to failed. No followups.

PerlProc_setjmp undefined under WIN32 (#39614)

Jerry D. Hedden's latest patch to the threads library makes use of a few functions (dJMPENV, JMPENV_PUSH and JMPENV_POP) that are not available when compiling ActiveState Perl from source.

Perl5 Bug Summary

  + 5 - 2 = 1493

  The List

New Core Modules

In Brief

Philippe M. Chiasson tracked down and reinstated the missing files from the APC archive.

  Full recovery

Nicholas Clark thought of a way of sidestepping the bogosity introduced by the Intel icc compiler pretending to be gcc.

  Almost but not quite more than we deserve

Tom Christiansen wrote about the legibility myth and it sparked off an interesting discussion about typography and the written word.


Tom also continued with a discussion of parenthetical perils.

Dr Ruud cooked up a tiny patch for toke.c to fix isALNUM(*s) && *s != '_'.

Paul Marquess solved a problem in make test with multiple Makefile.PLs.

  Need to know

Paul also wondered why -r and -w don't work as expected when applied to \*STDIN and \*STDOUT on Win32.

David Landgren ran a smoke at one point last week and reported a few failures in the maint snapshot. Hmm, maybe after I get the summary out the door I'll go and see what's happening with it now.

John E. Malmberg wanted to know if the rsync server was stuck at blead@28402.

Stuff I didn't have time to go through

Feel free to follow the links if the subject grabs your attention.

$^V ge "\5\x08\0" throws a warning

[PATCH] IO::Compress::Base

Configure -Aprepend

handling Unicode newlines

Devel::PPPort broken in latest blead on Win32

MEM_WRAP_CHECK has bogus logic on HP/UX

Thread Tutorial lock() scope

About this summary

This summary was written by David Landgren. The paragraph reformatter fmt(1) that comes with my OS is not 8-bit clean, and it ate the "é" in Sébastien Aperghis-Tramoni name in the previous summary. My apologies to Sébastien. I hear there's a text processing language that is good at doing this sort of stuff...

If you want a bookmarklet approach to viewing bugs and change reports, there are a couple of bookmarklets that you might find useful on my page of Perl stuff:

Weekly summaries are published on and posted on a mailing list, (subscription: The archive is at 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.