This Week on perl5-porters - 26 December 2005 - 1 January 2006

  A happy new year for Perl 5 porters and everybody. The holiday seemed
  to bring a lot of spare time for Perl 5 porters and they made good use
  of it. Hey, what those funny people are doing around in this mailing
  list?

Perl on z/OS

  In the last weeks, Rajarshi Das and others raised some interest for
  the Perl port to z/OS, an EBCDIC platform, and started some threads on
  related issues.

  * iso-2022-jp encoding * Rajarshi Das asked for help to understand why
  iso-2022-jp encoding is unknown on z/OS. Sadahiro Tomoyuki showed some
  evidence that "Encode" is not ready to support "Encode::JP" (the
  module which supports iso-2002-jp and other Japanese encodings) on
  EBCDIC. Nick Ing-Simmons also had some comments about the weirdness of
  scripts starting with an EBCDIC dialect and then switching to an
  ASCII-oid escape encoding like iso-2002-jp is. Rajarshi Das tried some
  changes against "Encode" sources and his doubts remained. Sadahiro
  Tomoyuki tried to help Rajarshi understand the involved subtleties.
  This thread has not reached a conclusion (unless I missed something)
  and Rajarshi opened ticket #16663.

      http://xrl.us/jgcu

  *Configuration Error for p59x26223* Rajarshi was having fun
  configuring and building p59x26223 (whatever that is) on z/OS v1.7,
  but some show-stopping errors were popping and he called for help.
  Jarkko Hietaniemi analyzed the situation which is due to a silly
  warning of a compiler who wants to know too much. Jarkko posted
  something to Rajarshi to try, which worked, until it hit an error in
  building "Compress::Zlib". Paul Marquess wondered about a fix of a
  couple of weeks ago, which then made possible to Rajarshi to build
  Perl. (This fix is going to be officially introduced to
  "Compress::Zlib".) Jarkko asked for more details on a failure around
  "Time::HiRes", which went unanswered.

      http://xrl.us/jgcv

  * Fixing t/uni/class.t on EBCDIC * Rajarshi Das brought a patch to
  t/uni/class.t on perl-5.8.7 which fixes the test on EBCDIC (z/OS 1.4).
  The test case changes worked fine with Sadahiro Tomoyuki's patch for
  utf8.c but, to Steve Peters, they seemed too heavy for a test.
  Sadahiro Tomoyuki followed up with a lighter change, untried yet on
  EBCDIC, until Rajarshi tried it successfully, but he had a few
  comments on why things were done that way in the first patch. Last
  week, Steve Peters pinged about what changes were needed and the
  current state of tests outcome.

      http://xrl.us/jgcw

  * "Expect", Anyone? * Robert Zielazinski wondered if someone had
  played with porting the "Expect" module to z/OS. He tried once with no
  luck on previous releases. No one answered, maybe because "Expect",
  which is not a core module, and z/OS are not in the current agenda of
  porters.

      http://xrl.us/jgcx

  * About ext/B/t/optree_specials.t * Back in October 5, Mohammad Yaseen
  commented on the output of running the ext/B/t/optree_specials.t test
  on EBCDIC platform z/OS. At Christmas' eve, Nicholas Clark guessed it
  probably had to do with different representation of the same string on
  non-ASCII systems, leading to different numeric hash values.

      http://xrl.us/jgcy

"runperl" and @INC

  Yitzchak Scott-Thoennes delved into a long-standing test failure he
  had been seeing on Cygwin, and diagnosed two separate problems. One
  about test data in the real lib directory (lib/charnames.t). The
  second about "runperl()" using real @INC directories. Yitzchak
  proposed a patch with "runperl()" using "TestInit.pm" and saw only a
  failure at op/stash.t which had to do with a yet unfixed bug. With no
  immediate solution, Yitzchak opened for others to try it out, before
  sweeping the problem to under the carpet as a paliative measure. After
  a long silence, Rafael Garcia-Suarez saw op/stash.t to succeed and
  t/run/switchd.t to fail. Nicholas Clark noticed failures with threaded
  perls which he tracked down and corrected with some changes.

      http://xrl.us/jgcz

Andy Plays Santa

  Andy Lester was one of the guys that spent a little more time with
  Perl at the end of the year.

      Ho! Ho! Ho! consting and NULLing
      http://xrl.us/jgc2
      Faster Perl_sv_derived_from
      http://xrl.us/jgc3
      Andy speeds (rn|n)?instr
      http://xrl.us/jgc4
      Before LIKELY() stuff
      http://xrl.us/jgc5
      Getting SVREFCNT right
      http://xrl.us/jgc6
      More cleanup and tight prototypes with NN
      http://xrl.us/jgc7
      Constant pointer parms
      http://xrl.us/jgc8
      Making 0 pointers to NULLs
      http://xrl.us/jgc9

  Some of this work by Andy was inspired by analysis of the coverage
  stats which Sébastien "maddingue" Aperghis-Tramoni made available.
  Graham Barr pointed there might some catches for the optimization of
  "(rn|n)?instr" with respect to modern CPUs. And Rafael Garcia-Suarez
  supposed the "SVREFCNT" fix comes with no impact on performance. At
  last, Andy launched the support for GCC builtins "__builtin_expect"
  and "__builtin_choose_expr" in source code, which later may be applied
  to hot spots detected in maddingue's reports. Rafael Garcia-Suarez
  preferred to defer the introduction of these features and the
  corresponding Configure patch after 5.9.3 and H. Merijn Brand will
  have everything ready by this time.

      Coverages stats by maddingue
      http://www.maddingue.net/perlcover/
      Support for two GCC builtins
      http://xrl.us/jgda

Longdoubles on Linux 2.6 with gcc-4

  H.Merijn Brand perceived some 'M' failures in smokes with longdoubles
  on Linux 2.6.12 and up with gcc-4.0.2 and up. Merijn wondered if
  others were having similar issues. Rafael Garcia-Suarez reported on
  successful builds with similar settings. Later, Merijn found the
  problem to be the gcc he had been using, a prerelease 4.0.2, and
  confirmed perl configures and builds fine with 4.0.2 release and 4.0.3
  prerelease. There remained some problems Jim Cromie had seen which
  cast some doubts on the use of long doubles in current Perl sources.

      http://xrl.us/jgdb

On "B::Lint" with Plugins

  Yves Orton pinched a sneaky issue on Win32 on ext/b/t/lint.t. And,
  while we're on "B::Lint", let me remind the comments of Joshua ben
  Jore on the last summary. With respect to "B::Lint" plugins, Joshua
  made clear that (1) benchmarking is needed to establish the cost of
  plugins against the embedded existing checks, (2) he doesn't see the
  value of fussing around just to make examples for people, as he'll be
  publishing more plugins that may serve this end, (3) he may as well
  make available some material (presentation slides) on doing lint-like
  checks after some updating.

      Yves' deed on Win32's sake
      http://xrl.us/jgdc
      Joshua explains stuff
      http://xrl.us/jgdd

"CPANPLUS" in Core?

  Yitzchak Scott-Thoennes remembered that, in June, Rafael announced the
  addition of "Archive::Tar" to the core, as the last addition before
  "CPANPLUS" and asked what next. A long discusssion ensued, with lots
  of pros and cons. To make it short, among the drawbacks, there are:
  core is big enough; CPAN.pm is stable and "CPANPLUS" caused much pain
  so far; "CPANPLUS" is a little too generous with memory requirements;
  some say it is too Linux centric; some issues on requisites may
  remain, like "IPC::Run". Andreas Koenig also reminded us of the new
  goodness added to the last versions of CPAN. On the side of the
  advantages, "CPANPLUS" provides an API which "is a real pleasure";
  "CPAN" is not really light, but according to Jos "kane" Bouman,
  "CPANPLUS" by design trades memory for speed. Believe me, many things
  have been said. If you want real details, follow the thread.

      http://xrl.us/jgde

make -j2 disttest Fails

  Nicholas noticed a parallel make of the disttest target ("make -j2
  disttest") was failing. Steve Peters came to the rescue: the problem
  was apparently related solely to BSD-based makes and not GNU make.
  "make -j2 -B disttest" works for BSD make - the man page says -j turns
  compatibility off, and -B restores it. The issue: cd's in GNU make
  works for the current command and returns to the start directory after
  completed.

      http://xrl.us/jgdf

"Module::Build" 0.27_04

  The candidate for core, "Module::Build", reached release 0.27_04,
  announced by Ken Williams.

      http://xrl.us/jgdg

"CPAN" 1.80_58

  Andreas Koenig brought CPAN in blead to 1.80_58.

Doc Patches

  Who said programmers don't like to write documentation? If that's
  true, they at least enjoy fixing POD.

  * "UNIVERSAL": Don't Use Methods as Functions * chromatic proposed a
  patch against lib/UNIVERSAL.pm to remove the recommendation to use
  "isa()", "can()", and "VERSION()" as functions, responsible for too
  much damage in his view. The suggestion might seem a natural followup
  of chromatic's contribution as one of the authors of the controversial
  "UNIVERSAL::can" and the not so rebellious "UNIVERSAL::isa". Yves
  Orton proposed instead a fix with basically the same rationale of the
  the mentioned modules, which Rafael thought to be a pretty big change,
  making "UNIVERSAL::isa" inaccessible to those which override "isa". In
  such grounds, Rafael declined the patch as it undocumented existing
  functionality and asked for a perspective change. Rafael also reminded
  that "Scalar::Util::reftype" can be used in place of "UNIVERSAL::isa".
  And chromatic brought a new patch "that moves the broken code to the
  end, where people will hopefully not see it." The patch pleased Yves
  and Rafael and got applied as change #26466.

      chromatic's first attack
      http://xrl.us/jgdh
      chromatic's coup de grâce
      http://xrl.us/jgdi

  * Bad Example in perlop * Ben Okopnik, in ticket #38008, pointed the
  misleading example on the flipflop operator in pod/perlop.pod, which
  included a label called 'line'. Rafael Garcia-Suarez made it right
  with change #26468.

      next line if (1 .. /^$/);  # skip header lines

      http://xrl.us/jgdj

  * "rindex" clarification * Yitzchak Scott-Thoennes posted a mini-patch
  to make clear the "rindex" description at pod/perlfunc.pod.

      http://xrl.us/jgdk

  * Differences from Perl6 * Robin Houston posted a doc patch against
  pod/perlsyn.pod explaining the differences between the recently
  introduced "given"/"when" and the corresponding Perl 6 constructs.
  Applied as change #26537.

      http://xrl.us/jgdm

  *Bug in "File::Temp" Docs* In RT ticket #38127, pm noticed an
  imprecision in "File::Temp" documentation, namely, when using the
  object interface one must use "new File::Temp(TEMPLATE => $template)"
  to constrain the generated filenames. Rafael Garcia-Suarez agreed and
  applied a corresponding patch as change 26753.

      http://xrl.us/jgdn

  * perlmodlib missing "Pod::Perldoc"? * Yitzchak Scott-Thoennes missed
  "Pod::Perldoc" not being listed in perlmodlib, even though most
  "Pod::Perldoc::*" were there. Rafael Garcia-Suarez noted it was
  because Perldoc.pm had no POD. How ironic, repeating Yitzchak's words.

      http://xrl.us/jgdo

Robust "Pod::Simple::Search"

  "Pod::Simple::Search" assumed that case-preserved package and pod
  names could be constructed from filenames, which is not always true,
  on OSes with non-case-preserving filesystems like VMS. To remedy this
  situation, Craig A. Berry wrote a patch to make it work.

      http://xrl.us/jgdp

Tels and "gv_*" Issues

  Tels had been quite busy this end of year and started some long
  threads. You have to read them if "gv_*" issues are your plate.

      What's up with C<$a = \$a>?
      http://xrl.us/jgdq
      Stack usage
      http://xrl.us/jgdr
      Perl_gv_fetchpv vs. gv_fetchpvn
      http://xrl.us/jgds
      gv_stashpvn() vs gv_stashpv()
      http://xrl.us/jgdt

"Configure" Patches

  H.Merijn Brand applied a patch by Jarkko Hietaniemi for making
  Configure smarter with respect to char (un)signedness in Tru64. While
  on this, Jarkko made a wish for Configure in 5.9.3: scan for
  "snprintf()" and "vsnprintf()" in behalf of people doing XS work, and
  for who "sv_*pvf*()" may be an overkill. Steve Peters implemented it
  minus the necessary changes to Porting/Glossary.

      Merijn notes Jarkko's patch
      http://xrl.us/jgdu
      Jarkko's tiny wish
      http://xrl.us/jgdv

Teaching "B::Concise"

  Last week, Nicholas Clark slimmed down constants, and taught
  "Devel::Peek" to understand the new representation, giving sensible
  information to the user. This week, Jim Cromie taught the new trick to
  "B::Concise". In the meantime, Nicholas remembered how missing
  constants are now prototyped with "()" so that the parsing of programs
  doesn't change platform by platform based on what macros are present
  locally.

      Summary of the thread on optimized constants
      http://xrl.us/jgdw
      Jim tames B::Concise
      http://xrl.us/jgdx

Perl5 Bug Summary

  Perl RT had a count of 1510 open tickets at the last Monday of 2005
  and the year started with 1514 bugs waiting to be squashed.

      Robert Spier's summaries
      http://xrl.us/jgdy
      http://xrl.us/jgdz

      Perl RT just now
      http://rt.perl.org/rt3/NoAuth/perl5/Overview.html

In Brief

  *The Year in Perl 2005* chromatic wrote a very nice summary of the
  activity in Perl during 2005. It didn't go through the p5p mailing
  list, but it was too good not to be mentioned.

      http://www.oreillynet.com/pub/wlg/8894

  * "timelocal" not reverse of "localtime" * Rafael Garcia-Suarez found
  some time to take a look at the fix applied by Dave Rolsky to assure
  the behavior of "timelocal" as reverse of "localtime": but it fails
  now. I believe this went unnoticed.

      Previous thread summary
      http://xrl.us/jgd2
      Rafael says oops!
      http://xrl.us/jgd3

  * "lc()" Failures with Latin-1 Chars * Daniel Richard G., in ticket
  #37999, reported how certain accented letters in a word (using Latin-1
  chars) were not being lowercased by "lc()", with some curiosities
  involving "chop" and "chomp". Rafael Garcia-Suarez fixed it by
  harmonizing code of "do_chomp()" and "do_chop()" (change #26431).
  Daniel noticed that, if the string isn't modified via chomp/chop/etc.,
  the accented letters stay as-is. To Rafael, it's just the documented
  behavior if you don't use "locale".

      http://xrl.us/jgd4

  *Perl on Win64* Jan Dubois brought a patch to fix a bogus setting in
  win32/config.vc64 which allowed (together other previous changes) to
  get 100% success running the regression tests on Windows 2003 Server
  64bit on AMD64. Hurray for Jan!

      http://xrl.us/jgd5

  * spare flag bits on "rv2cv" * Nicholas Clark wonders: any spare flag
  bits left on the op "rv2cv"? And he answers himself: here is the
  lowest bit of "op_private".

      http://xrl.us/jgd6

  * "Compress::Zlib" on VMS * Paul Marquess brought a patch to sort out
  building on MVS, applied as change #26468.

      http://xrl.us/jgd7

  *Goodness propagated into eval* I know this has been mentioned in the
  last summary, but Robin's work to guarantee propagation of
  compile-hints ("%^H") and constant overloading into eval is awesome,
  to steal Rafael's words. Try the following in perls pre-Robin and
  blead to see the difference:

      $ perl -Mbigint -e 'print eval "1+2"'

      http://xrl.us/jgd8

  *A Dependency Loop* Tom Horsley has a rite to install all the latest
  stable perl stuff when year begins. Good habit! While doing this, he
  found "libwww-perl-5.805" depends on "HTML-Parser-3.48" which turned
  out to depend on "HTTP::Headers" which lives in "libwww-perl". As far
  as I know, these are not core modules, but Gisle Aas, the author of
  both, is always around. (This is RT ticket #38097.)

      http://xrl.us/jgd9

  *How not to Report a Problem* namit opened ticket #38122 to say he was
  having problems with local settings. Yitzchak Scott-Thoennes guessed
  the messages namit was seeing and pointed to *LOCALE PROBLEMS* in
  perllocale manpage. Show us the code, said Steve Peters.

      http://xrl.us/jgea

  *False Matches with Bad utf-8* Sadahiro Tomoyuki announced the RT
  ticket #37836 had been resolved by the change 26258 and generously
  offered a further investigation.

      http://xrl.us/jgeb

  *Effects of Patch 26370* Andreas Koenig was biten by the weird state
  of things after change 26370 where there can be files that one can
  "use" but that perl cannot compile. Andreas mentioned as examples the
  "Acme::Meta" distro and "Devel-Symdump-2.04" based on the former.
  Rafael Garcia-Suarez reduced the problem to a shorter test case and
  fixed the issue with change 26574, which made Andreas very happy,
  releasing "Devel::Symdump" 2.05 out to the world.

      http://xrl.us/jgec

  *Beware Floating Point* stassats opened ticket #38120 to say about
  oddities of perl printing numbers like '2.23999999999999' instead of
  the prettier '2.24' equivalents. chromatic remembered floating point
  math is subject to rounding error, in Perl and every other programming
  language, and Ronald J. Kimball found the answer to be a FAQ which can
  be found with perldoc -q 9999.

      http://xrl.us/jged

  * Parser Bug with '; sub f' * Lukas Mai, in RT ticket #38121, found
  what he thinks to be a parser bug. Yet to be commented.

      $ perl -c -e '; sub f'
      syntax error at -e line 1, at EOF
      -e had compilation errors.

      http://xrl.us/jgee

About this summary

  At last, after untying my Gordian knot, here's the first p5p summary
  of 2006, written by Adriano Rodrigues Ferreira. When you least expect
  it, the next one by David will be here as well for your enjoyment.

  Information concerning bugs referenced in this summary (as #nnnnn) may
  be viewed at http://rt.perl.org/rt3/Ticket/Display.html?id=nnnnn

  Information concerning patches to maint or blead referenced in this
  summary (as #nnnnn) may be viewed at
  http://public.activestate.com/cgi-bin/perlbrowse?patch=nnnnn

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

Reply via email to