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

Reply via email to