develooper Front page | perl.perl5.porters | Postings from November 2008

This Week on perl5-porters - 3-9 November 2008

Thread Next
David Landgren
November 18, 2008 15:16
This Week on perl5-porters - 3-9 November 2008
Message ID:
This Week on perl5-porters - 3-9 November 2008

   "PS: Hi, guys. Been a while. How you been?" -- Chip Salzenberg, back
   on the chain gang.

Topics of Interest synopsis thoughts and an additional affordance

   David Golden made good on his promise to write a better synopsis for to help steer people out of trouble when dealing with
   version numbers and their comparisons.

   Michael G. Schwern pointed out a couple of places where things weren't
   locked down, but said that he thought David's take was much clearer.
   But as usual in matters of versioning, counter examples popped up to
   muddy the waters.

Should "[:upper:]" match title case?

   Karl Williamson read the documentation and saw that "[:upper:]" should
   match title case, except that it doesn't, and an undocumented
   "\p{IsTitle}" does. What to do?

   Tom Christiansen noted that there is still a lot of POSIXy stuff that
   Perl doesn't do, but that part of the reason for that is that it's
   full of subtlety and traps for the unwary. He would really like to see
   a decent collation infrastructure in Perl, but Jarkko Hietaniemi said
   that the issues are insanely difficult to resolve.

Perl 5.8.8 34711 on AIX 5.3

   Rainer Tammer sent in the information he had gleaned from building
   what will be 5.8.9 on AIX 5.3. He wondered whether it was worth the
   effort to continue to deal with 5.1 since it is no longer supported.
   H.Merijn Brand explained that the porters have a long traditional of
   continuing to support Perl on orphaned architectures; all that's
   really needed is shell access.

   H.Merijn and Andy Dougherty offered some suggestions and insights to
   help Rainer move forward.

   In a 64-bit build, Rainer had exactly one failure in

$Config{archname} on AMD64 Windows

   Sisyphus had trouble keeping track of the differences between 32-bit
   and 64-bit builds on his Vista box. Jan Dubois and Steve Hay provided
   the vital clues to help him figure out what he should be doing.

Future maintenance plans for 5.8.x

   Nicholas Clark added a paragraph to perl589delta explaining that this
   release (perl 5.8.9) was likely to be the last of the 5.8 series.

   Jan Dubois pointed out that 5.10.0 has a "testing" feel to it, to
   which Dave Mitchell stated that his plan was to have 5.10.1 out by the
   end of the year as well.

   Matt S. Trout mentioned that he had found that users of "DBIx::Class"
   do pay attention to EXPERIMENTAL labels, and don't mind as much when
   things break. But he'd love to figure out how to get them to take
   development snapshots for a spin on a regular basis.

     this is the end my friend

Change "PREFIX" to "INSTALL_BASE" in perlfaq8 and perlmodinstall

   Michael G. Schwern noticed a dead meme still doing the round, on So went through the documentation and excised
   "PREFIX" and replaced it with "INSTALL_BASE", which is the officially
   anointed new way of installing modules.

   That reminded John Siracusa about the problem of sequestered perl

Syntax for macros / function composition at compile time

   Erwan Lemonnier asked for some general syntax advice on implementing
   Python-style function decorators to Perl. Michael G. Schwern pointed
   him at "Method::Signatures" and subroutine attributes.

   Matt S. Trout mentioned a secret IRC channel and mailing list where
   meddling with syntax takes place.

Perl 5.10.x + Tk-804.028-501-12048

   The recent tweaks to constant/mutable SV pointers caused Tk to fail
   (Tk being the poster child for unexpected consequences from low-level
   changes). Marcus Holland-Moritz tweaked thing around to get Tk passing

Questions about regcomp.c

   Karl Williamson had some very detailed, precise questions to ask
   regarding regcomp.c, from which we can conclude that Karl already
   knows more about the regular expression than 94% of all Perl 5
   Porters. Yves Orton provided the answers and saw that there was a bug
   that he needed to fix.

#34775 causes run/cloexec.t to hang

   Marcus Holland-Moritz uncovered a smoke failure regarding the recent
   bug fixes for leaks in PerlIO layers.

   Steve Peters confirmed the failure and reverted the change. For Goro,
   it's back to the drawing board.

"Perl_newSVpvf("%lld")" is broken

   Hugo van der Sanden picked up the gauntlet thrown down by Michael G.
   Schwern regarding the weird results with printf formats, traced it
   down through a dense thicket of #ifdefs, and proposed a patch to tidy
   it up.

   A long discussion about printf format specifiers and error messages

Regular expression character classes and unicode.

   Yves Orton kicked of a request for comments regarding the
   rewrite/revamp of character classes and the breakage that has crept in
   since Unicode. He received many comments.

Add UPSTREAM flag to

   Dave Mitchell wanted to gauge the interest in adding some metadata for
   dual-lifed modules, to track whether changes to blead should be pushed
   upstream to the maintainer first, or whether they were happy to fold
   changes back at their own speed. Those who replied were in favour.

   Steffen Müller patched all that was necessary in order to implement
   the idea.

Clone fails to build with blead@34780

   Michael G. Schwern reported a failure with "Clone", that Marcus
   explained was due to the slightly naughty use of an lvalue macro. But
   he fixed things anyway.

TODO of the week

   Here's a biggie for the bored. This task needs C knowledge, and
   knowledge of how the interpreter works, or a willingness to learn.

optimize tail-calls

   Tail-calls present an opportunity for broadly applicable optimization;
   anywhere that "return foo(...)" is called, the outer return can be
   replaced by a goto, and foo will return directly to the outer caller,
   saving (conservatively) 25% of perl's call&return cost, which is
   relatively higher than in C. The scheme language is known to do this
   heavily. B::Concise provides good insight into where this optimization
   is possible, ie anywhere entersub,leavesub op-sequence occurs.

     perl -MO=Concise,-exec,a,b,-main -e 'sub a{ 1 }; sub b {a()}; b(2)'

   Bottom line on this is probably a new pp_tailcall function which
   combines the code in pp_entersub, pp_leavesub. This should probably be
   done 1st in XS, and using B::Generate to patch the new OP into the

Patches of Interest

v5.10.0 Pod/ Can't call method "pod2text" without a package or object

   Jari Aalto had a problem using "pod2text" in 5.10 and offered a patch
   to reinstate the previous behaviour.

   Michael G. Schwern had a closer look at what was going on and
   concluded that the real problem was the fact that "Pod::Text" was
   using "Pod::Simple" incorrectly. He also pointed out that "pod2text"
   as a function has been deprecated for nearly half of Perl 5's

Configure/NDBM_File Add prototype detection for NDBM header files

   Marcus Holland-Moritz offered a couple of patches to sort out the
   problems that have been observed recently with respect to determining
   the availability of NDBM. He and H.Merijn Brand had everything settled
   down by the end of the week.

threads Changes

   Nicholas Clark is busy wrapping up 5.8.9, and he noted the fact that
   5.8.8 shipped with "threads" 1.07, but 5.8.9 will ship with 1.71. An
   amazing amount of work was done, mostly by Jerry D. Hedden, and
   Nicholas wanted to know if it was possible to summarise the main
   changes in three or fours points.

   Jerry responded with a patch that contained what he thought were the
   most important improvements, which Nicholas applied with thanks.

New and old bugs from RT

"B::Xref" seems to be broken (#18306)

   Steve Peters applied a patch from Renée Bäcker, thus closing the
   oldest bug closed this week.

     ding dong the bug is dead

Need to change Cygwin built-in "Cwd::cwd" (#38628)

   Steve was able to close this ticket as well, since Jerry D. Hedden
   confirmed that its patches have been applied to blead, 5.10 and 5.8.

     second verse same as the first

filetests sometimes do not set _ (#46463)

   Steve said this bug was resolved as well, but Mark Overmeer thought
   that documenting sub-optimal behaviour was not the same improving the

map leaks memory (#53038)

   Marcus Holland-Moritz suggests that this has been fixed by change
   #34776 and that bug #48004 is something else altogether (a question of
   maps within maps not freeing intermediate temporaries and thus
   consuming 300Mb when 9Mb should suffice).

perlio.c has a problem (both 5.8 and 5.10) (#54828)

   Steve Peters cleared up the question of not all parts of a patch being

h2xs does not handle properly enum constants (#55896)

   Back in June, Steve Peters said that he thought fixes applied to
   "h2xs" in the meantime should have resolved the problems encountered
   in the bug report. Jeremy Ratcliffe replied this week, saying that
   only one bug had been fixed in 5.10, all the others remained.

Unary minus on 'numeric' inputs like '-1' (#57706)

   Renée Bäcker suggested a change to how strings with a leading minus
   character are interpreted in the presence of a unary minus.

     but the patch has whitespace issues

Permission denied when building as non-root user on FreeBSD 6.2+ (#58180)

   On FreeBSD (and possibly other Unix variants), you cannot build Perl
   if the directory containing your home directory does not have the read
   bit set (in order to prevent you from snooping the names of the other
   accounts in a shared environment -- which seems pretty dumb if
   /etc/passwd is readable, but who am I to argue with an ISP?)

"PerlIO::via" leaks memory at a high rate (#59268)

   Marcus Holland-Moritz resolved this problem to his satisfaction. If it
   summons no black smoke, then a CPAN release of "PerlIO::via" will fix
   older Perls as well.

In regular expressions, "\N{U+...}" doesn't match for ... > 256 (#59328)

   Karl Williamson dashed off a quick patch for this, and Yves Orton
   applied it.

PATCH chr(0400) =~ /\400/ fails for >= 400 (#59342)

   Rafaël Garcia-Suarez replied to Yves Orton's comment from last week
   where he suggested that octal escapes in regular expression be
   outlawed. He agreed that they should be put on board the deprecation
   train, but could be retained inside character classes. He also noted
   some marvellous inconsistencies in error messages.

   Glenn Linderman suggested stealing Python's OoNNN octal notation.

   It will take considerable effort on the part of the porters to
   convince Tom Christiansen of the need to deprecate octal in regular
   expressions. His main argument is that today, the "\g" escape can be
   used to disambiguate backreferences from octal. Chip Salzenberg
   waltzed in to say that he threw his lot in with Tom.

   Undaunted, Glenn replied that there is a definite problem in that
   certain octal numbers may not be expressed in a pattern, depending on
   the number of backreferences. And when patterns are created by "qr//"
   composition, which was Yves Orton's point, this may not even be
   evident by casual inspection).

   Tom subsequently posed to Andrew Hume, one of the original authors
   along with Ken Thompson and Dennis Ritchie, of C, Unix and regular
   expression, the question of how they dealt with the octal notation
   backreference ambiguity at the very beginning. And provided a whole
   pile of links for people who want to know more about the history of
   the matter.

Inconsistent math with large numbers (#60318)

   Andreas König reported on a number of 64-bit perls out in the wild
   that consider some ferociously large numbers that end in 89.2 being
   larger than the same number ending in 90. Appending a .0 to the latter
   makes things work, but is considered distasteful.

utf8+locale substitution cause the Perl interpreter to hang. (#60326)

   Shlomi Fish showed how an "s///" expression containing a particular
   UTF-8 character could fall into an endless loop.

Regexp lookbehind failure after an (if)then|else in perl 5.10 (#60344)

   Someone named Adam reported a bug that was introduced at around the
   time that Dave Mitchell derecursified the regular expression engine.
   Yves Orton took a crack at fixing it and Dave thought his solution was

"local $SIG{FOO} = sub {...}" sets signal handler to SIG_DFL (#60360)

   Ian Goodacre posted a problem about localising signal handlers, and
   the fact that the default handler is loaded transiently in the switch
   from the old handler to the new.

   Chip Salzenberg brought the house down with an awesome patch to solve
   the problem, which he thought would probably fix up some sub-optimal
   behaviour that has probably been around ever since 5.000.

   Amid the general applause, Marcus Holland-Moritz expressed concern
   Chip's patch alters the signature of a public API. Chip took Marcus's
   concerns on board and wanted to know what the current policy was
   regarding the modification of a public call.

   In a side note, Chip noted why companies like IBM et al invest on
   Linux but not FreeBSD, in a sub-thread relating to how difficult it is
   to get companies interested in supporting Perl.

   Chip came back afterwards with a second iteration of the patch that
   Marcus applied with a minor tweak or two. sort {} bug with "-Dusethreads" (#60374)

   Alex Hunsaker filed a bug regarding a problem with custom sort
   routines in a Safe compartment on a threaded perl. He mentioned that
   Andrew Gierth had tracked the problem down to a difference in the
   implementation of stashes. In a non-threaded perl, a cop points to the
   stash, but in a threaded-perl a level of indirection is introduced and
   it points to the name of the stash.

"pos()" does not get stored for tainted variables (#60378)

   Renée Bäcker, who appears to have memorised the entire set of
   unresolved bugs in the RT queue, was quick to point out that the
   person submitting this bug submitted the same bug about four years ago
   as bug #27344.

     but it's still a bug

Perl5 Bug Summary

     1332 (+7 -20)

New Core Modules

   "Test::More/Builder/Simple" 0.86

   "Attribute-Handlers" 0.81

In Brief

   Tom Christiansen wondered about "strange permissions" on files, such
   as executable bits of files that would never be executed.

   He'd also like to see a useful "ctags" target in Makefile, which would
   probably require some Configure probes.

   Joshua Hobbit wondered whether replacing "Time::Local" by
   "Time::Y2038" (that is, a notorious bug) was particularly wise in
   terms of names.

   Jerry D. Hedden saw that change #34653 breaks DBM functionality, but
   Marcus was quick to make a change that he thought would repair it.

   Yves Orton added some files to .gitignore.

   PerlIO resource leaks on "open()" and then :pop in :unix and :stdio
   (bug #56644). Leaks no longer, thanks to GFUJI's patches, applied by
   Steve Peters.

   And another: "ungetc()" to :scalar might cause problems (bug #57322).
   I suspect Steve went through Renée Bäcker's list of bug reports
   containing patches.

   John E. Malmberg began to get POSIX exit mode working/tested on VMS.
   Applied by Craig A. Berry.

   Karl Williamson wanted to use charnames in "Test::More" "like" tests,
   and was told to use "qr//" to minimise the pain.

   And "File::Find" (bug #57926)

Last week's summary

     This Week on perl5-porters - 20-26 October 2008

About this summary

   This summary was written by David Landgren.

   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 or attending a YAPC to help support the development of

stubborn tiny lights vs. clustering darkness forever ok?

Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About