This Week on perl5-porters - 15-21 September 2008

  "This is sort of like one of those useless Windows alert boxes that
  pop up to tell you something perfectly normal has happened and you
  should do nothing. "A USB device was safely removed!" Yes, thank you,
  I just removed it. It's this sort of hand-wringing user interface
  design ("but the user might not have expected that USB device to be
  removed, they should be told so they can maybe, possibly do
  something!") that I'd like Perl to avoid." -- Michael G. Schwern,
  wanting numeric upgrades to JFDI.

Topics of Interest

Y2038 branch

  Michael G. Schwern's work (in a git branch) on Y2038+ dates continued
  apace, with H.Merijn Brand adding some configuration hooks for minimum
  and maximum date values, and discussions of how to set up tests to
  check for sane values in the year 803619167319 or so, especially if
  daylight savings is still in place.

    fresh dates
    http://xrl.us/oscvv

Blead on OpenSUSE 11.0/64

  H.Merijn Brand reported that the only failure on this platform for
  5.8.9-to-be was one test in "CGI". On the other hand, "ODBM_File" was
  collapsing in a heap on blead, but H.Merijn was puzzled as to why,
  since he was using the same configuration settings, and there has been
  no changes under ext/ODBM_File between 5.8.x and blead.

  Andy Dougherty thought that 5.8.x's "Configure" was missing ODBM_File
  altogether, but blead's was a little more aggressive and found a
  header that led it to conclude it could try and build the extension,
  and this revealed that SUSE's dbm compatibility is not up to par.

    not ODBC
    http://xrl.us/oscvx

"autodie" behaviour with "flock()"

  Paul Fenwick asked what "autodie" should do in the light of blocking
  and non-blocking file lock acquisitions, reasoning that calling
  flock() in blocking mode means "I need this lock", whereas calling it
  in non-blocking mode is a question: "Can I get this lock right now?".
  From this, he could come up with sensible behaviour for "autodie".

  The main sticking point was the possibility that a "flock" call
  returns the "EWOULDBLOCK" error, which is not really an error, or at
  least, not something worth dying for.

  There was a long discussion about exceptions, errors and opportunistic
  code, but the main point to take home is when Zefram pointed out that
  if autodie's behaviour for flock is unsuitable, one is always free to
  use a "no autodie 'flock'" to switch it off and handle it manually.

    blocked on flock
    http://xrl.us/oscvz

  One may assume that Paul had been pulling his hair out over the issue
  and that the documentation wasn't much help. So he improved
  documentation for "flock()" in perlfunc.pod and tidied up the code
  examples for by using lexical filehandles rather than globs, checking
  for errors, and using constants rather than magic numbers.

    aiding the cargo cult
    http://xrl.us/oscv3

Is the prototype for "CORE::truncate" wrong?

  Paul then looked at "truncate" in trying to figure out how to override
  it for "autodie". His version could not take a typeglob as a
  parameter, as the parser thought it was a bareword, due to
  "truncate"'s prototype.

  He missed the fact that "truncate" can also work with the name of a
  file, not just a file handle, which is why the prototype had to fudge
  matters slightly.

  This reminded Jan Dubois of a subtlety he encountered with "unlink" a
  while ago: "unlink()" will remove the file named by $_, but
  "unlink(())" does nothing. The reason for this oddity is to prevent
  "unlink(@stuff)" from unlinking whatever $_ points to, should @stuff
  happen to be empty.

  Jan gave up trying to implement the same semantics in pure Perl,
  instead concluding that there are some core functions that are
  impossible to duplicate. And perl 5.10's "_" prototype doesn't help
  either, given that it imposes scalar context.

  Rafaël wondered what would happen (what would break) if he tweaked
  opcode.pl to change the prototype to something more suitable for
  Paul's need. Paul wondered too.

    trunk call
    http://xrl.us/oscv5

Practical considerations in changing the integer upgrade path?

  Michael G. Schwern asked for people's considered opinions on how
  painful it would really be to change the integer upgrade path from
  signed -> unsigned -> double -> "Inf" to signed -> long long (or
  whatever) -> arbitrary precision.

  Specifically, he wondered how one creates a new SV type, what impact
  would this have on the code base, and whether it would break XS code.

  Yuval Kogman answered all three questions quite clearly. And there
  ended the thread.

    and python does it right
    http://xrl.us/oscv7

Change 30638 introduces regression

  Following on from a change for bug #59168 reported by Father
  Chrysostomos and an error in the test suite for "XML::LibXML::Simple",
  Nicholas Clark backed the regressing change out and added some tests
  to identify the problem so that that future attempts don't cause the
  same breakage. Dave Mitchell said he had a cold, and was thus unlikely
  to look at things for a while.

    get well soon
    http://xrl.us/oscv9

$* is no longer supported

  Rory Kingan was worried about some code that crawled out of the
  woodwork complaining about $* no longer implemented in 5.10. Aristotle
  Pagaltzis looked at the regular expressions Rory posted and concluded
  that it was just cargo cult code that could be safely deleted.

    night of the living regexp
    http://xrl.us/oscwb

Milestone: metaconfig now under GIT

  H.Merijn Brand thanked Sam Vilain and Abhijit Menon-Sen for helping
  him get "metaconfig" hosted entirely in git (at
  <http://perl5.git.perl.org/?p=metaconfig.git>), and declared its
  Perforce branches officially closed.

    it's dead, jim
    http://xrl.us/oscwd

Syntax incompatibility (5.8.8 vs 5.10)

  Edward Peschko wrote about a problem with "Readonly::XS" that was
  complaining about a use of "Carp::croak". This can be traced to a
  decision taken over three years ago to remove the loading of "Carp"
  from "warnings".

  Since the author of the module sees no reason to release a new version
  of the module just to fix this problem, it is unlikely that it will be
  fixed in the near future. Certainly there is no desire to put "Carp"
  back into "warnings", and "Perl::Critic::StricterSubs" can be used by
  authors to find such problems (where client code loads module X, which
  in turn loads module Y, and then the client code calls routines in Y
  without having loaded it explicitly).

    EWONTFIX
    http://xrl.us/oscwf

TODO of the week

  Here's a simple task that requires no C knowledge.

Fix tainting bugs

  Fix the bugs revealed by running the test suite with the "-t" switch
  (via "make test.taintwarn").

  (In fact, you don't even have to fix all of them, or most of them.
  Just updating perltodo.pod (patches welcome!) with the list of
  problematic files would be a start).

Patches of Interest

"icc" wants "-fPIC" on x86_64

  Vincent Pit offered a patch to get Intel's "icc" compiling XS modules
  correctly. Apparently this went nowhere.

    http://xrl.us/oscwh

Pod/Text.pm Can't call method "pod2text" without a package or object reference

  Jari Aalto uncovered a problem in 5.10 with an undefined file
  descriptor in "Pod::Text". He supplied a patch for it, which appears
  to be stuck in limbo.

    http://xrl.us/oscwj

Don't reuse temp files in tests

  Jerry D. Hedden found some more tests that had problems with names of
  temporary file names being reused, so he changed them to use genuine
  temporary file names. Jan Dubois pointed out that this was likely to
  be a win for Windows systems that have on-access virus scanning, which
  can interfere with files that are rapidly deleted and recreated.

    do not use a random method to generate random filenames
    http://xrl.us/oscwm

Show using "waitpid" in "IPC::Open[23]" SYNOPSIS

  brian d foy noted that the documentation recommends using "waitpid" to
  clean up, but the supplied examples don't. So he amended them to
  provide baseline best practices for people to use.

    do as i say not as i do
    http://xrl.us/oscwo

New and old bugs from RT

Volunteer for fixing the "Unicode" bug (#58182)

  Back in August, when I was on my summ(?:ary|er) break, Karl Williamson
  filed a bug report relating to the inconsistent handling of 8-bit
  characters in strings during case mapping when no locale has been
  specified.

  For instance, "uc("\x{e0}")" returns itself (à, or lowercase a grave)
  rather than À (uppercase A grave). And this, regardless of whether
  there are any multi-byte characters.

  As a consequence, ""\x{e0}" =~ /\x{c0}/i" fails to match. Moritz Lenz
  explained that this was a known bug but unfortunately was not fixable
  because too much code relies on the current behaviour (which Karl
  summarises quite nicely in the original bug report). Moritz showed how
  one could make things work, at the expense of a little make-work code
  involving "utf8::upgrade".

  Juerd Waalboer mentioned that it is fixable and scheduled for
  implementation in perl 5.12, and that such backwards compatibility
  issues have been noted in "perl510delta".

  Dave Mitchell sketched out how one might go about producing an
  implementation for this, which would involve breaking out the
  semantically overloaded "SVf_UTF8" flag from "SvFLAGS" and hanging it
  out in an auxilliary structure, which could be used to store
  additional bits of information such as character set, encoding,
  locales, UTF-8 caches and more, since there's no space for such
  extravagances in a standard SV.

  Juerd and Glenn Linderman weren't sure it this would end up being a
  win. Glenn in particular thought that locale and encoding metadata
  should probably be associated with file handles and the like.

    prologue
    http://xrl.us/oscwq

  Fast-forward to this week, when Karl reported back to the list,
  explaining that he'd implemented the change in behaviour in a copy of
  5.10 source that seemed to do the trick, and asked the list where to
  go from here. In a nutshell, his patch extends ASCII semantics to the
  characters in the 128..255 Latin1 characters.

  Glenn Linderman explained that Karl should use a pragma to introduce
  this new change for code that wants to use it.

  Rafaël amended this suggestion by saying that the Unicode situation as
  it stands at the moment is such a mess that no pragma would be
  required for 5.12: it would just Do The Right Thing and backwards
  compatibility be damned. If the change was back-ported to the 5.10
  track, then a pragma would be required in order to switch to the new
  behaviour.

  Andreas König pointed out that Karl should base his patches on blead,
  rather than 5.10. Rafaël said that starting a branch from
  "git://perl5.git.perl.org/perl.git" would be as good a place as any
  from which to start.

  Juerd thought that Karl should have no qualms about breaking code with
  his changes, since a certain amount of reverse breakage would may
  occur, whereby existing buggy code suddenly begins to work
  correctly...

    famous last words "I just have to fix this bug"
    http://xrl.us/oscws

Building Perl 5.10.0 in AIX 5.3 using "-Duseshrplib" option gives "ERROR: Undefined symbol: boot_DynaLoader" (#58858)

  Tippa found a problem that (s)he was able to fix by a minor tweak to
  Makefile.SH and so filed a bug report. Jan Dubois repackaged the fix
  as a patch to makedef.pl. H.Merijn Brand confirmed the problem and the
  fix, and committed it as change #34379.

    AIX en provence
    http://xrl.us/oscwu

3-arg re-open drops IO layers (#58920)

  Frank Meisschaert discovered that if STDOUT is redirected to a UTF-8
  file using the 3-argument form of "open", the UTF-8 layer does not get
  set. The work-around is to close STDOUT explicitly beforehand.

  Michael G. Schwern confirmed that the problem exists from 5.8.8 to
  5.10.0 to blead on OS/X .

    not a team (p)layer
    http://xrl.us/oscww

"grep unpack a/(a)" loops and eats all memory (#58942)

  Ambrus Zsbán discovered a nifty way to have perl eat all available
  memory. Nicholas Clark reported that the problem had already been
  identified and fixed in blead. The correction will be backported to
  5.10.1 and 5.8.9, which Nicholas said should be out within a month.

    that's not a feature!
    http://xrl.us/oscwy

Typo in CGI(3perl) man page (#59132)

  Reuben Thomas identified two typos (in bug reports #59128 and #59130)
  which were either already fixed in blead, or fixed thanks to his
  report. Reuben found another typo in "CGI", for which Renée Bäcker
  produced a small patch, although this will have to be pushed upstream
  to Lincoln Stein, "CGI"'s maintainer.

    meanwhile back at the CSHL
    http://xrl.us/oscw2

  He also found a typo in "File::stat" (filed in bug #59134).

    the proof is in the reading
    http://xrl.us/oscw4

Perl5 Bug Summary

  Heading north. 268 new + 1032 open = 1300 (+6 -2)

    http://xrl.us/oscw6
    http://rt.perl.org/rt3/NoAuth/perl5/Overview.html

New Core Modules

  constant 1.16
      Sébastien Aperghis-Tramoni uploaded what is essentially a
      documentation fix. Applied to blead by H.Merijn Brand.

        http://xrl.us/oscw8

  podlators 2.1.4
      Russ Allbery fixed up the test suite to skip Unicode tests below
      5.8, since "Pod::Simple" doesn't support UTF-8 encoding with those
      versions, and rearranged things to deal with Red Hat "ispell"
      idiosyncracies.

        http://xrl.us/oscxa

      This followed 2.1.3, which was Russ's first attempt at addressing
      error handling (emitting to STDERR instead of creating a POD
      ERRORS section), along with the errors that H.Merijn brought up
      recently, where an otherwise flawless smoke run was choking on
      UTF-8 locales.

        http://xrl.us/oscxc

In Brief

  Gábor Szabó chose "Debug::Client" as the name for his client for the
  built-in debugger.

    now available on CPAN
    http://xrl.us/oscxe

  Alexandr Ciornii set up dual life for "Text::ParseWords". The previous
  module on CPAN is 9.5 years old.

    now available on CPAN
    http://xrl.us/oscxg

  Paul Marquess was worried about the complexities and potential for
  breakage if he created a composite distribution that contains all his
  "Compress::Zlib" / "IO::Compress::Gzip" / "IO::Compress::Bzip2"
  goodness. Fortunately the solution is simple and robust.

    now available on CPAN
    http://xrl.us/oscxk

  Michael G. Schwern reported on "Method::Signatures" and the "[EMAIL 
PROTECTED]"
  prototype, and how nice it all was.

    now available on CPAN
    http://xrl.us/oscxn

Last week's summary

    http://xrl.us/oru8q

About this summary

  This summary was written by David Landgren.

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

--
stubborn tiny lights vs. clustering darkness forever ok?

Reply via email to