This Week on perl5-porters - (3-9 July 2006)

[email protected] (David Landgren) Tue, 11 Jul 2006 23:58:37 +0200
Newsgroups perl.perl5.porters,perl.perl5.summary
Organization The Lusty Decadent Delights of Imperial Pompeii
Message-ID <[email protected]>
This Week on perl5-porters - 3-9 July 2006

   "CPAN is an unorganised anarchy. The checksum only guarantees that
   your downloaded file is identical to the one on CPAN, but there's no
   guarantee whatsoever that the file on CPAN is sane." -- Johan
   Vromans, reflecting upon the joys of open source software.

Topics of Interest

Is Perl an itch-free zone?

   Following on from the thread following on from the unfinished summary
   of a couple of weeks ago, Nicholas Clark wanted to know if the Perl
   engineering process was too good for itself. With a dedicated crew of
   smokers, a fanatical attention to backwards compatibility, there is
   very little that an average author of CPAN modules has to worry about.
   If you have a module that works on 5.6 and 5.8, it is just about
   certain that it will work just fine on 5.10 as well.

   This is not the case for other languages, like Java, PHP or Python,
   where things may change radically from release to release, and the
   hapless programmer just has to deal with it.

   Scott Walters offered a certain amount of conjecture as to why things
   are the way the are (hint: it's got something to do with money). He
   then put forward a few items that he thinks about from time to time:
   fast bytecode loading, better coroutine support in the core and a bit
   of syntactic sugar for object-oriented programming.

   Nicholas Clark thought that the lower bound of success for byte
   loading was to work with any Perl code you care to throw at it, and
   figuring out the upper bound of how long *that* would take seemed
   rather too high to be reasonable. Coroutine support in the core was
   reasonable: it requires adding more hooks in the interpreter that
   authors could grab hold of, and this can only be a good thing in terms
   of the innovation it might allow to spring forth.

   Scott came back later on with some interesting information on how
   Python works. In a nutshell, it's still pretty much Guido's baby.

   Jan Dubois chipped in to say that Tcl has a superb API to its
   internals, and you cannot sneak past it from extensions. This has
   permitted all Tcl extensions to be backwards and forwards compatible
   across the entire 8.x release series. This makes Jan very envious.

   [background info: on #p5p a few weeks ago there was a discussion about
   the fact that most of the core developers know the guts of perl so
   well that they unconsciously play to its strengths and skirt around
   its weaknesses to the extent that there do not appear to be a whole
   lot of itches left, in their eyes.]

     The state of play
 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00116.html

   In a similar thread, Nicholas pointed to the absence of feedback from
   Perl users to the core developers. If CPAN authors out there have
   wishlists of things that would make their lives easier, it's not being
   channelled back to "perl5-porters".

   Similarly, the release candidates leading up to a new minor release
   get next to no testing, about from the usual band of smokers. This
   means that anything truly *interesting* that changes in the
   interpreter remains unnoticed up until after a release, which is what
   we want to avoid in the first place.

   So, if *you* have an XS module, or an "Acme" module that does weird
   things, take a maintenance snapshot for a spin on your code and see
   how it fares. If you don't have any, try some of Damian's modules. Or
   those of the Phalanx.

     Nicholas Clark wants *you*
 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00041.html

CPAN-ifying "Math::Complex" and "Math::Trig"

   Jarkko Hietaniemi pondered dual-lifing "Math::Complex" and
   "Math::Trig" as CPAN packages, the idea being to be able to backport
   bug fixes and new functionality to previous Perl releases.

   Dan Kogai was very enthusiastic about the idea, and hinted that it
   would be wonderful if "Math::Complex" were a little more "bignum"
   aware.

     Playing the numbers
 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00077.html

CPAN and security

   There was a rather long thread about CPAN. It's apparently broken, so
   people are discussing how CPAN-for-Perl6 will make it better. The
   evil-author-uploads-rootkit was mentioned. (Summariser's note: I do
   not mean to disparage this thread, it's just I feel that p5p is not
   the best place to discuss it).

     Read the source
 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00087.html

Itanium warnings for "Compress::Zlib"

   H.Merijn Brand sent in a list of warnings when "Compress::Zlib" is
   compiled on the Itanium platform. Paul Marquess initially hoped to
   steal ideas from the new 2.0 codebase, but H.Merijn quashed that idea.

   So Paul had a closer look. One problem arose from the "MEM_WRAP_CHECK"
   macro, and Paul had next to no idea about what to do about that.
   Another warning was from the "zlib" source itself. The remaining
   warnings were from his own code, so Paul set about seeing what he do
   to silence them.

   At the same time, he mentioned that this would be close to last ever
   release of the 1.x series, and that 2.x could start to move out of
   beta.

   Paul then had a closer look at the "MEM_WRAP_CHECK" macro and isolated
   what he thought was the offending construct. It turns out that Yves
   Orton had already run into the problem last month:

     Compilers of very little brane
 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-06/msg00919.html

   and it had prompted Nicholas Clark to opine that what really needs to
   be done is for compiler writers to add a -STFU switch to their wares.
   Andy Lester mentioned that he had given it his best shot some time ago
   at silencing the warnings. Paul debated the idea of generating an
   ideal macro at configure-time, but the more he thought about, he
   couldn't see how to avoid a picky compiler moaning about "comparison
   always false".

     The ideal copy
 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00171.html

Itanium warnings for "Unicode::Normalize" 1.01

   And if the above wasn't enough, H.Merijn continued his quest to win
   friends and influence enemies by putting "Unicode::Normalize" through
   the Itanium wringer.

     It's all good
 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00164.html

Escapes in heredocs

   Curtis "Ovid" Poe wondered if he had misunderstood how backslashes
   behave in single-quoted heredocs, and wondered if he had misread the
   documentation, or whether the documentation was wrong, or unclear.

   Sadahiro Tomoyoki cited "perlop" chapter and verse, where it says that
   in single-quoted heredocs, no interpolation is performed, so the
   snippet Ovid posted was working as advertised. Yves had a shot at
   improving the documentation, but Tomoyuki poked a hole in it.

     Heredoc, there a doc
 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00241.html

Patches of Interest

Autogenerate all ppport.h files

   Marcus Holland-Moritz produced a patch to generate all ppport.h files
   automatically during the build process. He asked for some feedback
   from Win32 and VMS porters. Steve Hay reported that it seemed fine on
   Win32. Craig Berry filed a small tweak for VMS, and explained what the
   problem was regarding "Config_heavy.pl", which does not show up on
   other platforms. This prompted Marc to change the way "mkppport"
   behaves, since if it poses a problem for VMS, it may pose similar
   problems on other, more esoteric, platforms.

     It's a job for Perl!
 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00080.html

   After having received the above feedback, Marcus announced that all
   "ppport.h" files were now being generated automatically by "mkppport"
   on Linux, VMS, Win32 and cygwin, and that any remaining bugs should
   get smoked out on other platforms soon. The end result is 160Kb saved
   in the "bzip2" tarball, and/or 150Kb for the "gzip" tarball.

   Nicholas Clark pondered what else would look nice shaved. After toying
   with the idea of autogenerating some tests, it was decided that there
   are no more easy savings to be had.

     use less 'disk';
 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00246.html

   "Sys::Syslog" also acquired its own ppport.h.

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00247.html

Dual life for "Shell.pm"

   Adriano Ferreira discovered in horror that "Shell.pm" uses string
   "eval"s to achieve its nefarious ends, and worse, is indented with
   tabs. So he proposed a new version that uses closures, and changed the
   tabs to spaces.

   Rafael complained that the spaces/tabs change added a lot of noise to
   the "diff", so Adriano redid the work as two separate patches.

     The modern world
 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00145.html

"const"ing, End of Part I

   Andy Lester added some consting and localizing to universal.c

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00081.html

   and toke.c.

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00082.html

   Andy announced that he was going to scale back operations on Perl 5
   and move to Parrot. Mainly, because most of the low-hanging fruit on
   the Perl 5 source tree has been harvested, and also because Parrot
   could do with some help.

     Moving on
 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00197.html

"state" variables

   Rafael Garcia-Suarez filed a status report on the current situation of
   "state" variables. He mentioned one problem remaining was what happens
   with declarations of "state" variables in list assignments.

   Rick Delaney thought that about it and suggested what he thought the
   right thing to do was, but it turns out that Rafael spoke to Larry
   Wall, who suggested another alternative. David Nicol thought that
   Larry was wrong.

     A new state of affairs
 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00148.html

perl5db.pl: read full lines from remote socket

   Brendan O'Dea sent in a patch to help out the EPIC (Eclipse/Perl
   Integration) crowd, who were trying to run the debugger over a remote
   socket, and "sysread" was giving them grief.

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00232.html

The new POSIX tests

   Jarkko Hietaniemi discovered that the POSIX tests were spewing a lot
   of black smoke on the Tru64 platform, perhaps because Tru64 POSIXes
   you harder. He patched the test suite to make allowances for this, and
   this was applied by H.Merijn Brand.

     POSIX is the new black
 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00218.html

   Yves Orton tweaked the POSIX tests to skip certain tests if the
   function in question is not implemented on the host platform.

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00230.html

Latest cut-and-paste findings for blead

   Jarkko also reported on the current state of play of his collaboration
   with the author of "cpd" (Cut-and-Paste-Detector) to get it to work
   with hairy C code, the sort which abounds in the perl codebase, due to
   the combination of heavily-nested macros and machine-generated source.

   Sadahiro Tomoyuki put forth a couple of suggestions based on the
   results which Rafael applied.

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00242.html

   Yves Orton found it too painful to try and deal with this stuff by
   hand, so he wrote a program in a popular text-manipulation language to
   do the job in his place. The result was some truly mammoth macros.

   Dr. Ruud suggested parenthesising macro arguments to diminish the
   chance of precedence errors creeping in.

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00264.html

"\N{...}" in regular expression

   Sadahiro Tomoyuki discovered that when "use charnames ':full'" is
   operative, "/a\N{PLUS SIGN}b/" will actually match "aaaaaab", but not
   "a+b", which is possibly the wrong way around, and proposed a patch to
   fix it. It turns out that that "\cX" has similar problems, and
   Sadahiro-san located the culprit.

     Nice obfu potential
 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00267.html

New and old bugs from RT

Literal Whitespace in RegExps not properly parsed (#5051)

   Noted as fixed in 5.8.6 and "blead" by Yves Orton.

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00206.html

".pmc" logic: keep, delete, deprecate? (#8860)

   Steve Peters explained that the logic in question shall be neither
   deleted nor deprecated.

     Here to stay
 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00068.html

Segfault with complicated regex inside "map" (#24898)

   Steve also tried out a patch that Abigail offered to deal with a
   problem of the regexp state stack being reallocated during "pp_match".
   Unfortunately, "blead" doesn't like it at all.

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00070.html

panic: "magic_killbackrefs" during global destruction. (#27630)

   Steve thought that this was more likely due to the local patches that
   Red Hat added to their perl build at the time, since he was unable to
   produce it on more recent "blead"s.

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00067.html

Closing file seems to cause a seek operation (#29883)

   Steve offered a work-around, by way of "POSIX::_exit" to solve this
   one.

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00132.html

tests fail in 5.8.8 if $TMP is not writable (#38947)

   Steve added a check to bail out if the test being run was not able to
   write to the directory in question. Adriano Ferreira objected to the
   fact that no indication is given to the luckless programmer who may be
   watching the test results scroll past as to the reason why the test
   was skipped. Adriano thought a bit more explanation would be in order.

     Absence of evidence
 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00154.html

Do not recommend "Switch.pm" in "perlfaq" (#39170)

   Steve agreed that we shouldn't mention that the next release of Perl
   will have a switch statement, until we release the next release.

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00151.html

cygperl hangs on FIFO use (#39211)

   Alexandr Ciornii indicated that this has been fixed in the latest
   version of the Cygwin library (version 1.5.20).

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00238.html

"stat()" doesn't work on dirhandles (#39261)

   It does now, thanks to the efforts of Steve Peters. There is now a
   need to hoist out common code from "Perl_pp_stat" and "Perl_my_stat",
   and some more tests would not go astray.

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00076.html

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

   Christoph Maser solved this problem by installing a more recent
   version of "DBD::Mysql".

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00037.html

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

   Steve Peters took the change from "blead" to fix this issue and
   backported it to "maint".

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00064.html

nl_langinfo ==> Installation problems (#39625)

   Dave Mitchell explained that this problem (an undefined symbol) was
   more likely that the C run-time library or something else on the
   system dealing with shared libraries was messed up, and that it was
   unlikely that anything could be done from perlspace to fix it.

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00036.html

Segmentation faults with "*@" (#39709)

   David Serrano found a new way to do evil, by assigning to the "*@"
   typeglob. Apparently, since nobody had thought of doing this before,
   it doesn't work as best it might.

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00097.html

$AUTOLOAD is never tainted (#39733)

   Rick Delaney discovered this, and showed how a program could misbehave
   without giving an error. He then followed up with a patch to make it
   so. Hugo van der Sanden recommended that this be flagged as a
   significant change to keep in mind when upgrading.

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00156.html

"Exporter::Heavy" ignores custom $SIG{__WARN__} handlers (#39739)

   "evanspa" reported that "Exporter::Heavy" pays no attention to warn
   handlers. This is unfortunate, as FastCGI needs this functionality,
   and so it was patched. Dave Mitchell commented that in "blead",
   "__WARN__" is no longer overridden (so the problem no longer arises).

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00172.html

crash in "unpack" (#39747)

   Lukas Mai noticed a nasty problem with the "Z" specifier and null
   characters, but Yves Orton noted that it was already fixed in "blead".

     Packed up
 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00176.html

perl -d bug with 5.8.8 (#39758)

   Shlomi Fish reported a problem with disappearing text in the debugger.

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00185.html

Perl5 Bug Summary

   Gah! Back over the 1500 threshold.

     1501, to be precise
 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00066.html

     All here
     http://rt.perl.org/rt3/NoAuth/perl5/Overview.html

New Core Modules

   *   "Test::Builder/More/Simple" version 0.63 was released by Michael
       Schwern.

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00268.html

In Brief

   Craig A. Berry wanted to know how to interpret some "threads" 1.33
   results on VMS.

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00120.html

   Jerry D. Hedden asked Craig to take some code for a spin. This did the
   trick, and so Craig applied it to "blead".

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00123.html

   Dave Mitchell pointed out a certain category of the last remaining
   "eval"s leaks, when Fatal upgrades warnings to death, may prove to be
   intractable in terms of leak proofability.

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00117.html

   Shlomi Fish began a wikipedia entry about Tom Christiansen and asked
   for contributions.

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00193.html

   Jarkko Hietaniemi provided a very useful addition to "perlhack",
   listing some tricks and traps for C programmers to remember.

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00249.html

   Gabor Szabo added some examples in the core documentation to explain
   some of the finer points of "substr". Rafael applied the patch. It
   remains to be seen whether other functions lack similar, concise
   examples. Gabor mentioned he may send some more in.

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00261.html

   Paul Johnson mentioned, in the Did you know this worked? thread that a
   variant of this trick is how he gets "Devel::Cover" to weave its
   magic.

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00347.html

About this summary

   This summary was written by David Landgren.

   Last week's thread:

 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-07/msg00203.html

   received a comment from Jan Dubois clarifying the status of
   "DBD::Oracle" on ActiveState. Executive summary: it's good for 5.8
   too. (And thus my evil plan for writing these summaries is unmasked:
   it's all an elaborate plot to get my own bugs and problems fixed --
   and as bonus icing on the cake, Philippe M. Chiasson reported that a
   new version had been uploaded, which slices off about 50b of stuff
   that isn't required).

   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: [email protected]). 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.
-- 
"It's overkill of course, but you can never have too much overkill."