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

grinder on 2006-07-02T12:38:00

"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
  http://xrl.us/nnuy 

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).

  http://xrl.us/nump 

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
  http://xrl.us/numq 

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

  A fair fight
  http://xrl.us/numr 

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
  http://xrl.us/nums 

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.

  http://xrl.us/numt 

Calling exit from a thread

  http://xrl.us/numu 

Can't suppress 'treads still running' warning

  http://xrl.us/numv 

threads 1.33

  http://xrl.us/numw 

threads 1.33 (revised)

  http://xrl.us/numx 

What about CPAN smoke?

Tom Horsley kicked off a thread about testing CPAN.

  http://xrl.us/numy 


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
  http://xrl.us/numz 

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
  http://xrl.us/num2 

perlhack.pod

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

  http://xrl.us/num3 


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)

  http://xrl.us/num4 

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

  http://xrl.us/num5 


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.

  http://xrl.us/num6 

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.

  http://xrl.us/num7 

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.

  http://xrl.us/num8 

*** 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.


  http://xrl.us/num9 

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.

  http://xrl.us/nuna 

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.

  http://xrl.us/nunb 

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.

  http://xrl.us/nunc 

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.

  http://xrl.us/nund 

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.

  http://xrl.us/nune 

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.

  http://xrl.us/nunf 

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
  http://xrl.us/nung 

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.

  http://xrl.us/nunh 

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.

  http://xrl.us/nuni 

Perl5 Bug Summary

  + 5 - 2 = 1493
  http://xrl.us/nunj 
  The List
  http://rt.perl.org/rt3/NoAuth/perl5/Overview.html 


New Core Modules

  • Sys-Syslog version 0.16 uploaded by Sébastien Aperghis-Tramoni, and Rafael updated blead with this version.

      http://xrl.us/nunk 

    This in turn allowed Sébastien to close a couple of old bugs:

      #20557
      http://xrl.us/nunm 
      #35406
      http://xrl.us/nunn 
  • CPANPLUS version 0.072 was uploaded to CPAN by Jos Boumans. No, it's not core, but may be one day. The fact that overall RAM usage has declined in this release (as per the release notes) is certainly a welcome step in this direction.

      http://xrl.us/nuno 
  • A sleeker Devel::PPPort version 3.08_06 was integrated into blead by Marcus Holland-Moritz. He shrunk the size of the tarball significantly, by generating PPPort.pm and PPPort.xs on the fly during the build. On the other hand, this cause Configure to come to grief, since as it didn't see a PPPort.xs at the beginning, it went ahead and built the non-XS version.

      http://xrl.us/nunp 


In Brief

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

  Full recovery
  http://xrl.us/nunq 

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
  http://xrl.us/nunr 

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

  ¡hola!
  http://xrl.us/nuns 

Tom also continued with a discussion of parenthetical perils.

  http://xrl.us/nunt 

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

  http://xrl.us/nunu 

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

  Need to know
  http://xrl.us/nunv 

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

  http://xrl.us/nunw 

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.

  http://xrl.us/nunx 

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

  http://xrl.us/nuny 


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

  http://xrl.us/nunz 

[PATCH] IO::Compress::Base

  http://xrl.us/nun2 

Configure -Aprepend

  http://xrl.us/nun3 

handling Unicode newlines

  http://xrl.us/nun4 

Devel::PPPort broken in latest blead on Win32

  http://xrl.us/nun5 

MEM_WRAP_CHECK has bogus logic on HP/UX

  http://xrl.us/nun6 

Thread Tutorial lock() scope

  http://xrl.us/nun7 

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:

  http://www.landgren.net/perl/ 

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.