This month on perl5-porters - August 2006

  "Insistent rumors claim that we used to have Perl compilable with C++
  -- I doubt it a bit, given the kind of problems I found when doing
  this latest cleanup work." -- Jarkko Hietaniemi, having now found a
  new wall against which to bang his head.

Topics of Interest

Perl 5.9.4 is out

  Rafael Garcia-Suarez posted the first draft of the delta that
  explained all the new goodies in the latest development release of
  Perl, 5.9.4.

    perl594delta
    http://xrl.us/rny2

  He made a number of changes based on feedback received.

    perl594delta (take two)
    http://xrl.us/rny3

  And after a second round of feedback, managed to push the tarball out
  the hatch.

    Perl 5.9.4 is out
    http://xrl.us/rny4

Define "PERL_NO_DEV_RANDOM" on Windows

  Alex Davies noticed that perl attempts to look for /dev/urandom on
  Win32 platforms, even though that file does not exist. And worse, you
  can create it, thereby subverting Perl's randomness. Steve Peters
  fixed that up.

    Have you in fact got any cheese here at all?
    http://xrl.us/rny5

IBM z/OS Unix source code fixes

  Jarkko Hietaniemi wrapped up his heroic endeavour to merge the code
  changes that IBM programmers made to a copy of Perl, *circa* 5.8.7, to
  "blead". He announced he was stepping down, having left a couple of
  parts of the patch unapplied, and explained why. He invited the IBM
  programmers to continue the good work, to have Perl running on z/OS.

    I hear the roar of a big machine
    http://xrl.us/rny6

ops needed for "[]" and "{}"

  Nicholas Clark discovered that a lot of work (lots of ops) are needed
  to build a single lousy anonymous hash or array, and wondered if there
  wasn't a more efficient way of of making one. He came up with a patch
  to change the behaviour (bonus JFDI points to Nicholas) that
  simultaneously slimmed down the op-tree, and doesn't break the test
  suite. And naturally enough, he wanted to know whether people thought
  this was a good idea.

  Jim Cromie ran a few benchmarks and found some measurable
  improvements.

    Special ops
    http://xrl.us/rny7

C99 is not compilable ... where?

  Dropping in from Parrot, Chip Salzenberg wanted to know if any porters
  knew of a platform far, far away that did not have a C99-capable
  compiler.

  Nicholas Clark mentioned "gcc", for starters. Andy Dougherty had some
  good advice. Tony Cook pointed out that Microsoft don't seem very
  interested in providing support for C99 features, unless they happen
  to also be C++-compatible. Chip said some naughty words.

    Just about everywhere else
    http://xrl.us/rny8

Ponie has been put out to pasture

  Jesse Vincent announced the end of the Ponie project, the migration of
  the Perl 5 core to use the Parrot VM. A number of other techniques are
  currently under development to have Perl 5 code running inside Perl 6,
  and much good came out of the project in terms of clean-ups to the
  code base.

    They shoot horses, don't they?
    http://xrl.us/rny9

Patches of Interest

  Numerous small patches that were applied quietly without fuss, or
  withdrawn by the author are not included in this section (it's big
  enough as it is).

Patching for g++

  Jarkko Hietaniemi checked in a large body of work to make the code
  base compile with g++, the GNU C++ compiler.

  First some g++ goodness for Tru64

    http://xrl.us/rnza

  And then a large patch for everyone, which nearly almost works, but
  significant smoking will be required, if only to get the kinks ironed
  out on some of the more common platforms.

    http://xrl.us/rnzb

  At this point, Jarkko rolled up a patch that succeeded as getting as
  far as completing "make perl", although "x2p" and a few extensions
  don't build. Steve Peters carried the baton and tidied up a few of the
  easier modules, although a couple needed more thought.

    http://xrl.us/rnzc

  Jarkko then puzzled for a bit over how to get C linkage back out again
  at the end of it, so that things would work as before. All this fuss
  made him suspect that the source probably never was compilable with a
  C++ compiler. Still, it might in the near future.

    http://xrl.us/rnzd

  He even managed to make "x2p" work.

    doubleplusgood
    http://xrl.us/rnze

Adding X<> tags to the documentation

  Gabor Szabo delivered some patches to add X<> tags (for indexing) to
  the core documentation and also snuck in a few stylistic changes while
  no-one was looking (although it warranted a comment from Rafael).

    File::Spec
    http://xrl.us/rnzf

    File::Basename
    http://xrl.us/rnzg

    perlvar
    http://xrl.us/rnzh

More portability pitfalls for "perlhack"

  Jarkko jotted down some more nuggets of wisdom acquired over the years
  of doing battle with unfriendly compilers.

    Here be dragons
    http://xrl.us/rnzi

Silence format and comparison warnings in perlio.c, pp.c and  regcomp.c

  Robin Barker sent in a patch to silence many warnings of
  signed/unsigned mismatches. Hooray! Applied.

    ttys everywhere rejoiced
    http://xrl.us/rnzj

Detecting bad /dev/nulls in "Configure"

  Michael Cummings, from Gentoo, proposed a patch to make "Configure"
  smarter about /dev/null, which may not always be configured correctly,
  especially in chrooted environments, and by the time this causes a
  problem, the build may already be quite some way down the track (and
  thus the original cause of the error may be hard to diagnose. "Missing
  Separator" errors may not seem crystal clear. Alexey Toptygin proposed
  a tweak. A new patch was proposed. Unapplied.

    Go directly to jail
    http://xrl.us/rnzk

Watching the smoke signals

Smoke [5.9.4] 28730 FAIL(F) OSF1 V5.1 (EV6/4 cpu)

  Things in lib/strict.t, lib/subs.t and t/run/fresh_perl.t seemed to be
  going pear-shaped, but appeared to be a Heisenbug, since Jarkko wasn't
  able to reproduce the errors manually.

    http://xrl.us/rnzm

Smoke [5.9.4] 28736 FAIL(F) OSF1 V5.1 (EV6/4 cpu)

  The pain persisted, so in the morning, Jarkko went to the ice-rink to
  see if Dave Mitchell was around. Nicholas Clark made the connection to
  the work on plugging leaks on unevaluable code, realising that that
  may be causing problems here. Dave professed to not having many tuits
  at the moment.

    http://xrl.us/rnzn

New and old bugs from RT

*FILE{IO} does not behave like *FILE for "stat()" and "-X()" operators (#8244)

  Andy Dougherty revived an old bug that rose to the surface after a
  Coverity scan. Rafael applied a quick fix.

    http://xrl.us/rnzo

isa cache leaks into and out of "Safe" compartments (#39887)

  Rafael asked for some test cases to draw the bug out into the open,
  where it may more easily be stamped out.

    Here buggy buggy
    http://xrl.us/rnzp

"B::Deparse" double "do" (#40055)

  Nicholas Clark wondered why "do{}" was deparsed as "do[ do{} }". Rick
  Delaney provided the fix.

    Deep do do
    http://xrl.us/rnzq

UTF-8 keys in a tied hash cause warning (#40067)

  Apparently not so much a bug as an unsupported feature.

    It's always done that
    http://xrl.us/rnzr

Memory leak in "Perl_newPMOP()" under "USE_ITHREADS" (#40077)

  A discussion at Perlmonks revealed a ref-counting memory leak. No
  takers.

    http://xrl.us/rnzs

"perlfaq6" example is wrong: pull out lines between two patterns (#40084)

  Max Maischein saw a flaw in a perlfaq example (where the two patterns
  appear on different lines). The only fix he could think of involved
  the arcane "m??". Rick Delaney offered a suggestion.

    This question frequently asked?
    http://xrl.us/rnzt

"Data::Dumper" with "Sortkeys" performs incomplete hash traversal (#40088)

  Peter S. Shenkin provided a short snippet showing how a hash would be
  not be completely traversed when the "Sortkeys" setting was active
  (but the example *was* using "each" too). And it appears fixed in
  5.8.8 anyway.

    ENOTABUG, I assume
    http://xrl.us/rnzu

File::Spec->case_tolerant() should return true on Cygwin (#40103)

  G. Paulissen explained why this should be so. No takers.

    http://xrl.us/rnzv

Using wrong case on module should warn (#40131)

  Ben Tilly suggested that a warning should be issued if a module is
  specified with incorrect capitalisation (on a filesystem with
  case-insensitive semantics), reasoning that while "use Strict" might
  work Here, it certainly won't work There.

  Rafael noted that it turns out that there used to be such a warning,
  but it was removed because of false positives.

    Can't please everyone, all the time
    http://xrl.us/rnzw

Perl 5 Errors on Windows 2003 (#40134)

  Steve Hay awarded Subba Valisetty a golden crown for have filed the
  most utterly useless bug report ever[TM]. Nicholas Clark was gentler,
  and offered a pointer to a tutorial on how to file good bug reports.

    Gong!
    http://xrl.us/rnzx

Problem compiling perl 5.9.3 (#40141)

  Pierre posted an excerpt of a failing compilation (pp_sys.c dying an
  agonising death). Steve Hay asked for the output of the myconfig
  script.

    http://xrl.us/rnzy

"warnings::warnif" is sometimes ignored (#40144)

  Wiles showed how to make "warnings::warnif" misbehave. No takers.

    http://xrl.us/rnzz

"make" fails for perl 5.8.8 build on AIX5.3 (#40155)

  Graham Stokes was having compiling 5.8.8 for AIX 5.3. Fortunately, he
  was smart enough to supply myconfig. Steve Hay suggested using "ld"
  (linker) from the GNU "binutils" package, rather than AIX's "ld". Andy
  Dougherty also provided some advice on fixing locale warnings.

    http://xrl.us/rnz3

"ccversion" fix for HP/UX (#40161)

  An anonymous porter, possibly using the HP testdrive facility, filed a
  fix for the HP/UX hints file. Applied.

    http://xrl.us/rnz4

Problem "join()"ing threads (#40168)

  Jonathan Geisler had a problem with threads, that Jerry D. Hedden
  thought was probably fixed in the latest versions of "threads"
  available on CPAN, and made a couple of suggestions to the code as
  posted. Johnathon thanked him for the courtesy, and pointed out that
  one of the snippets in question was lifted directly from "perlthrtut".

    So that's the bug
    http://xrl.us/rnz5

Unable to use "DProf" with threads (#40170)

  Jonathan also joined the long list of people who had found limitations
  with "Devel::DProf" in its current incarnation. Any takers?

    A call to tuits
    http://xrl.us/rnz6

  Solaris: BEGIN and "exec", "fork", "system" or "open(|-,-|)" (#40190)

  Gary Vollink discovered some Solaris wackiness, involving "use
  warnings FATAL => 'all'", systems and/or backticks failing, and code
  blocks then being evaluated and executed twice (when once would be
  ample).

  Nicholas Clark remembered this emergent behaviour cropping up in other
  contexts, and thought that it was something to do with the Unix file
  descriptor being diddled in the parent when the child dies.

    Solaris: you are awful, but I like you
    http://xrl.us/rnz7

"grep" autovivifies hash elements (#40194)

  Marc Lehmann wondered why grepping a value against a hash key causes
  the hash key to spring into existence. David Nicol thought that Marc
  should have been using "exists". chromatic supplied a much clearer
  pair of snippets to show what Marc was trying to get at. And yes, it's
  quite counter-intuitive, broken, and nearly impossible to fix. David
  still had trouble understanding, and Benjamin Carter (who writes from
  a domain with a most excellent name) explained in more detail about
  aliasing of $_ and the creation or not of hash keys.

    Weird science
    http://xrl.us/rnz8

Small typo in "perlxstut" man page (#40197)

  Ville Koskinen explained the difference between ensure and insure.
  Applied.

    http://xrl.us/rnz9

UTF-16 and regular expressions causes compilation failure (#40203)

  Ian Goodacre had a problem with regular expressions trying to match
  characters coming out of a UTF-16-encoded file, specifically, an
  unrecognised BOM 7061. No takers.

    http://xrl.us/rn2a

"<>" as glob in scalar context and interpolated variables (#40213)

  Dakkar filed a report about using "<>" as a glob in scalar context and
  interpolated variables and how iterators were not reset and even added
  a test case. No takers. Perhaps the fact that the test was tarred and
  bzipped scared away potential fixers.

    http://xrl.us/rn2b

"SelfLoader::croak" doesn't protect $@ from being clobbered by "require" (#40216)

  Bo Lindbergh filed a bug report so clear that Adriano Ferreira felt
  that he could fix it. So he did. Applied.

    http://xrl.us/rn2c

'reserved' warning not working (#40227)

  Jerry D. Hedden discovered a problem with "use warnings 'reserved'"
  not working correctly. Rafael made an oblique explanation as to why,
  but I was not able to determine whether he was pointing out that the
  error was in Jerry's test case or in Perl.

    http://xrl.us/rn2d

  They both seemed to understand each other, for an additional patch
  later on got things sorted out.

    http://xrl.us/rn2e

New hints file for MidnightBSD (#40239)

  Lucas Holt tweaked the FreeBSD hints file, to derive a new hints file
  that allows perl 5.8.8 to build successfully on MidnightBSD.
  Unapplied.

    Another platform added to the roster
    http://xrl.us/rn2f

"PerlIO::scalar" doesn't know how to truncate (#40241)

  Bo Lindbergh wanted "truncate" to work on strings. Rafael looked at
  the implementation and saw that it only works for file handles at the
  moment. Any takers?

    Your chance for fame and glory
    http://xrl.us/rn2g

"Math::BigInt" silently drops lib argument if not available (#40242)

  You can import "Math::Bigint" and tell it to use an underlying library
  to do the biginty calculations. But if you type the name incorrectly,
  it silently loads a couple of default libraries and never complains
  that anything is wrong. Andreas König thought this behaviour less than
  desirable. He felt that the script should die, so that the programmer
  could fix the error.

  The problem is that if this was changed now, it might break programs
  of people who were living happily in ignorance that their BigInt
  calculations were not in fact using GMP or Pari as they had thought,
  but rather the default Calc and Fastcalc libraries, simply because
  they had accidently typed "Gimp" or "Paris".

  Allen Smith felt that since this was the first time in four years that
  someone had questioned the existing behaviour, it maybe wasn't so bad
  after all. Tels offered a snippet of sanity checking boilerplate to do
  what Andreas wanted.

    You might find you get what you need
    http://xrl.us/rn2h

Interesting variation on 'Out of memory' (#40243)

  Andreas also posted a bug on rampant memory usage, that can be slimmed
  down by using temporaries, which in turn allows the garbage collector
  to fire off more readily, keeping consumption to a minimum.

    http://xrl.us/rn2i

Perl5 Bug Summary

  Around 21 new tickets were created this month, and alas, only 8 were
  closed, bringing the current total to 1519. Hopefully after the summer
  lull Steve will be able to get that figure down under 1500 again. And
  if a couple of people pitched in to help, we could bring it down
  lower, and faster.

    Over to you
    http://rt.perl.org/rt3/NoAuth/perl5/Overview.html

New Core Modules

  *   John Peacock uploaded version 0.67 of "version" to correct the
      problem that Ovid spotted of version 0.000001 not being
      understood.

        http://xrl.us/rn2j

  *   Dave Rolsky synced "blead" with "Time::Local" version 1.13 from
      CPAN.

        http://xrl.us/rn2k

  *   "Module::Load" became part of the core distribution.

        http://xrl.us/rn2m

  *   "Package::Constants" also became part of the core distribution.

        http://xrl.us/rn2n

  *   A proposal was made to add "Locale::Maketext::Simple" to the core,
      however, as far as I can see, it was not added. The fact that the
      module is not licensed under the Artistic or GPL licenses (rather,
      the MIT license), may have something to do with it.

        http://xrl.us/rn2o

  *   "Module::Loaded" also made it into the core, but sparked off a
      certain amount of debate as to whether it offered *enough*
      functionality.

        http://xrl.us/rn2p

  *   After having too much fun compiling perl with g++, Jarkko still
      found time to release "Time::HiRes" version 1.88 to CPAN.

        http://xrl.us/rn2q

In Brief

  Rich Rauenzahn suggested a tweak to determining the HP-UX compiler
  version in the Policy file.

    http://xrl.us/rn2r

  Nicholas Clark posted a long reply about the difference between
  Python's and Perl's threads, and why Perl's threads are unlikely to
  mesh nicely with a CORBA implementation.

    http://xrl.us/rn2s

  Brendan O'Dea, from the world of debian, wondered whether what was
  wrong with "setlocale()" was an implementation or a documentation
  problem.

    http://xrl.us/rn2t

  Alexandre Jousset wrote in to explain how to cross compile Perl for
  the TomTom GO 910. Rafael updated a config file to take account of the
  information.

    Is that a telephone or an MP3 player?
    http://xrl.us/rn2u

  Even though he's left us, we are not forgotten. Andy Lester CC'ed the
  list on his essay about why consting is good.

    http://xrl.us/rn2v

  Ben Morrow suggested adding all keywords to "perlfunc". And rather
  just moaning about how nice it would be, actually sent in the patch
  that documented a slew of things, like "can", "DESTROY" and so forth.
  Unapplied, but it has certain merits.

    http://xrl.us/rn2w

  Marc Lehmann uncovered a way to make perl with
  "-DPERL_DONT_CREATE_GVSV" dump core. Nicholas wasn't sure of the
  reason.

    http://xrl.us/rn2x

  Gerard Goossen came up with a test case for a "substr" with lvalue
  refcount increment bug, but no-one was sure what to do about it. At
  least, Dave Mitchell didn't know.

    http://xrl.us/rn2y

About this summary

  This summary was written by David Landgren.

  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