This Week on perl5-porters - 9-15 January 2006

This Week on perl5-porters - 9-15 January 2006

Now 5.8.8 is closer and porters give the final touches and wait on smoke signs. Issues in blead are being worked out, preparing for 5.9.3 as well.

Cygwin Configure Fix

H. Merijn Brand applied one between two candidate patches by Yitzchak Scott-Thoennes to fix Configure on Cygwin.

Dual-life threads::shared

The last summary mentioned how Dave Mitchell's work on threads and shared variables improved speed while also closing RT ticket #37946. Nicholas Clark suggested the changes were packaged into a CPAN module, allowing people to try it without the need to hastily release the changes with 5.8.8.

Less code to warn

Nicholas Clark did (in change #26787) a refactoring on S_vdie_common so that Perl_vwarn can use it too.

Locating/Fixing Regex Engine Bugs

About ticket #38133 on a bug with quantified groups, Hugo van der Sanden layed out the process to fix a bug in the scary regex engine, followed by the conclusion that it must be a while until someone skilled find the time to initiate the process.

One List for All Arenas

In response to Jim Cromie reposting the patch to unify all arenas, Nicholas Clark suggested to wait until after 5.9.3 but Rafael Garcia-Suarez has the ultimate word.

perl593delta Review Continued

For perl593delta review, Nicholas Clark reminded the Sadahiro Tomoyuki's XS-assisted swashget and Steve Hay followed with a list of the stuff he was involved in.

Towards 5.9.3

Yitzchak Scott-Thoennes made a little change to t/TEST to get rid of some 'FAILED--unexpected ouput'.

    relaxing TEST restrictions

Gisle Aas, Rafael Garcia-Suarez, Yitzchak and Jim Cromie went on discussing how to identify compiled snapshots versus releases.

Squashing Format Warnings

Jarkko Hietaniemi posted a patch to silence some format warnings in blead seen in Tru64 and due to certain assumptions about types and appropriate formats. Gisle Aas and Robin Barker had some comments about it.

mod_perl 2 broken

Philip M. Gollucci wrote to say building mod_perl 2 against blead on FreeBSD does not work since August. Prodded by Stas Bekman, Philip produced a small program to reproduce the issue, which Stas thought Philip could reduce even more using his familiarity with mod_perl code.

Philip M. Gollucci forwarded a workaround to build MP2 on alpha platform from the modperl dev list.

Syncing Pod::Simple

Allison Randal called for a diff of all the changes that made into the core version of Pod::Simple and this week she sync'ed the CPAN version, reaching release 3.04.

3-argument open and IO Layers

Answering ticket #38181, Sadahiro Tomoyuki noticed the issue with default IO layers ignored in 3-argument open calls was recently resolved in blead and sent a patch to assure the -C switch was mentioned in related docs.

More about embed.fnc

Jim Cromie added a few more lines to improve info about embed.fnc in pod/perlguts.pod. Applied as change #26756.

POSIX vs Fcntl

Andreas Koenig reported what he thought to be unexpected warnings when requiring Nicholas Clark answered that the "redefined" warnings were correct, as constant subroutines were redefined indeed. But it was not due to Expect but rather to POSIX and Fcntl exporting subroutines with the same name. Nicholas proposed a patch so that POSIX use Fcntl to get the common values. Rafael Garcia-Suarez thought it looked good as it ended an error that puzzled many developers, even though it adds to POSIX a dependency, which appears to be harmless.

maint on VMS

Abe Timmerman brought the results of tests againts maint@26746 on VMS, which succeeds in 98.79% of test scripts.

threads + require IO

Dave Mitchell commented on ticket #37076 about segfaults by mixing threads and require IO. The guilty part is newCONSTSUB() which isn't threadsafe.

Stalled perlcc

Glancing at tickets #37488 and #37491 about bugs in perlcc, Dave Mitchel advised that this is no longer actively maintained, which means bugs are unlikely to be fixed.

Empty Strings as select Bitmasks

Nicholas Clark confirmed the patch by Gisle Aas to allow "" as select bitmasks is in perl-5.8.8.

Where is Digest/

Jim Cromie noticed a failure to locate Digest/ after resync'ing, which suggested problems in change 26704 which added SHA-256 support for CPAN. It turned out to be fixed by running Configure again, but Yitzchak Scott-Thoennes reminded new extensions need to be manually added to the win32 makefiles for distclean to work right. Rafael Garcia-Suarez committed change #26758 to solve this case.

Agnostic Compress::Zlib

Paul Marquess brought in a major patch of Compresss::Zlib against blead, with the previously announced rewrite to support other compression formats. Porters agreed that, as 5.9.3 will wait until 5.8.8 and blead issues are worked out, C::Z would probably get enough days of smoke.

maint snapshot

Nicholas Clark did a lot more patch integration stuff and made a maint snapshot perl@26746.

perlhack.pod and POPSTACK

Jan Dubois noted the little bit about POPSTACK in perlhack.pod is wrong and called for someone qualified to write a description about the "stack of stacks" concept.

Sys::Syslog 0.12 and 0.13

After Sébastien Aperghis-Tramoni announced Sys::Sylog reached release 0.12, Alan Burlison noticed it was broken on Solaris and other platforms. Alan, Rafael Garcia-Suarez, Nicholas Clark and Gisle Aas investigated and patched the issues. Sébastien merged the changes back to CPAN version and released 0.13

Andy Lester's Stuff

As a compliment to his daughter's purple Barbie bus, Andy Lester coined a name for his last patch on his continued effort to improve code with regard to correctness and cleanliness.

Andy also inquired why this kind of code is used throughout

    if (ckWARN(WARN_MISC))
        Perl_warner(aTHX_ packWARN(WARN_MISC), WARNING_MESSAGE);

instead of something like

     Perl_warn_maybe( aTHX_ WARN_MISC, WARNING_MESSAGE );

Who wants setlocale(LC_ALL,"")?

Andrew Dunstan opened RT ticket #38193 to tell how an embedded perl interpreter always starts by calling setlocale(LC_ALL,""). But that's not an all-satisfying solution for every application and he called for a way to give more flexibility to avoid unintented effects on character data.

$0 Assignment when Embedding

Gisle Aas noticed that, when embedding perl, the default behaviour of $0 assignments writing to the memory of argv[0] and calling setproctitle() is hardly the expected action. It can cause segfaults and hide the host application from ps for example. Gisle posted a patch to allow disabling such behavior and is still waiting for comments.

A Constant Challenge

Dave Mitchell pointed consting work waiting to be done is changing C?OP* usage to const C?OP*, to prevent code which messes with the fields of an OP. OPs are shared between threads which makes a bad idea to fuss around with them.

Perl on HP-UX 11.23

H. Merijn Brand spent some time preparing a rx1620 dual Itanium to see what Perl builds are looking like in such architecture. Merijn discovered that, to use HP C-ANSI-C compiler, one needs to drop optimizing to -O1 for a range of this compiler family on HP-UX 11.23. All tests passed on both perl-5.8.x-dor:26763 and perl-current:26768, 32 and 64bit, but not threads. Next step is smokes on this box.

coderefs in regexes

Yves Orton wanted to know how to get access to code refs embedded in regexes, so he could teach Data::Dump::Streamer to dump them out correctly. Dave Mitchell revealed coderefs in regexes are some sort of abomination more like evals than proper closures. There is a plan to get them right, but not yet.

version 0.53

John Peacock uploaded version 0.53 to CPAN and brought the corresponding patch to bleed.

Bad Locales on Mac OS X

Dominic Dunlop found that the release of Mac OS X 10.4.4 still has broken Catalan locales, which defeated the optimistical assumption that the problem would be fixed by now, and posted a patch to skip the bad locales once again.

    Bad locales in Sep 2005
    Bad locales in Nov 2005
    Bad locales enter 2006

Fix for :crlf

Xavier Noria noticed the :crlf layer in PerlIO was not portable as suggested in its documentation when it comes to support Mac text files conventions and proposed a patch to fix this (applied as change 26796).

One less Typo in perlfaq8

On bug #38205, erik noticed a typo at perlfaq8, promptly patched as change #26802 in blead.

cloning and foo_dup functions

Looking at the cloning code at perlio.c, Yitzchak Scott-Thoennes found a spot in *_dup functions which was probably wrong and suggested a fix, seconded by Gisle Aas and Rafael Garcia-Suarez which applied it as change #26799.


While building Digest::SHA, Yitzchak Scott-Thoennes noticed a warning about redefining PERL_UNUSED_DECL. It was fixed by copying a newer ppport.h (any of the 3 others under ext/), which remembered Rafael Garcia-Suarez of an old idea to compile Devel::PPPort first and use its ppport.h everywhere.

Broken local($[) = 0

In RT ticket #38207, David Dyck reported a "Useless localization of constant" in local($[) = 0;, that led Rafael Garcia-Suarez to the conclusion that something changed in blead that broke the special case handling of local $[ supported for perl 4 compatibility.

Compress::Zlib Fights Smokes

And Paul Marquess brought another fix to Compress::Zlib trying to shut up an intermittent failure which keeps showing up on the smokes. Applied as change #26800.

DB_File and Berkeley DB 4.4

Jeff Earickson opened ticket #38213 to say about a failure testing DB_File against Berkeley DB 4.4.16. Paul Marquess explained 5.8.8 already allows DB_File to build with db 4.4 and the the most recent CPAN version had this support.

pack/unpack for struct flock

Brendan O'Dea noticed how tricky is to portably use Fcntl locking and proposed a patch with a function to pack/unpack flock structures. Warnocked so far.

David Landgren Fights Indirect Notation

This week, David Landgren started a crusade to remove indirect notation examples from POD all over the core modules. He started with IO::File and IO::?? While on this, Jim Cromie had suggestions for some improvements/additions to docs, which were absorbed. chromatic welcomed David's campaign. And then, David went on to apply this to IO::Pipe and IO::Handle together with some sundry cleanups.

The no-indirect-notation campaign boils down to this: instead of writing

    $fh = new IO::File;

which is considered bad practice in some circles, the following is preferrable:

    $fh = IO::File->new;

    David Landgren tidies up IO::* modules

saving the regexp state

Nicholas Clark wondered about a piece code in Perl_save_re_context and brainstormed on how to make saving/restoring regexp states with less computational effort. Hugo van der Sanden and Abhijit Menon-Sen essayed some clues.

Dual life module versions

Nicholas Clark did a check to find dual-life modules which differ between maint and 5.8.7, but have the same version. This prompted Marcus Holland-Moritz to explain about Devel::PPPort releases, which led Nicholas to integrate 3.06_01 to blead. Jan Dubois also explained about the status of Win32 and some plans for future releases.

Perl on MPE/iX

Ken Hirsch brought some patches which only affect MPE/iX platform.

B::Deparse Chokes in 5.8.0

Lionel Cons, in bug #38214, showed how perl 5.8.0 dislikes a simple assignment with split via B::Deparse.

    $ perl -MO=Deparse -e '@ARGV = split(//, "");'
    Can't call method "isa" without a package ...

Joshua ben Jore and Paul Johnson helped Lionel to find this is a bug with 5.8.0-threads and that upgrading is the key.

Linux Issue about ioctl

Charles Howes opened ticket #38223 to tell of a memory corruption error on a formerly valid code using ioctl after a Linux core upgrade. Gisle Aas tracked it down to change #25852 and a probable glibc issue with _IOC_SIZE, which called for a fix anyway.

    Trusting _IOC_SIZE (Oct 2005)
    Suspecting _IOC_SIZE

Threads and PIDs on Linux

Nicholas Clark tried to remember some binary compatibility issues with threads and PIDs on Linux due to a change made some time ago. Jason Vas Dias and Elizabeth Mattijsen know what it was about. Rafael Garcia-Suarez said the CPAN module Linux::PID had the necessary workarounds.

Deprecated my $v if 0

And "fany" opened yet another ticket, #38224, about the weird deprecated usage of my $foo if 0. Not that he should have known, but this is almost a FAQ by now.$v_if_0
    Ticket #38224

Perl 5.8.8's perldelta

The list of significant changes in Perl 5.8.8, perldelta evolved since its first draft posted by Nicholas through lots of feedback.

CPAN 1.83_55

CPAN reached 1.83_55 and Andreas Koenig resynced it into bleadperl, as change #26858.

Updated README.macosx

A bunch of MacOSX-wise people contributed for the update of README.macosx.

Encode 2.14

Dan Kogai brought Encode release 2.14 into blead.

size of perl

Nicholas Clark compared the size of perl binaries between 5.9.2 and blead, with the late being the actual winner. Despite several new features, the space optimizing efforts of porters, especially Nicholas, Dave Mitchell, Steve Peters and Andy Lester, outdid them. The same outcome is expected with respect to 5.8.8 against 5.8.7.

Perl5 Bug Summary

Perl RT had a count of 1510 open tickets at January 16.

    Robert Spier's summaries

    Perl RT just now

About this summary

I am terribly sorry about how late this summary is. I was currently trapped at $job and personal affairs which demanded my attention. This summary was written by Adriano Rodrigues Ferreira.

Information concerning bugs referenced in this summary (as #nnnnn) may be viewed at

Information concerning patches to maint or blead referenced in this summary (as #nnnnn) may be viewed at

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 or enjoyable, please consider contributing to the Perl Foundation to help support the development of Perl.