This Week on perl5-porters (5-11 September 2005)

The Return of the perl5-porters Summaries

  Sébastien Aperghis-Tramoni, Adriano Ferreira and David Landgren have
  stepped up to the plate to bring you the weekly p5p summaries. We make
  no promises as to how long we can keep this up, but we'll give it a go
  for as long as we can.

  There has been a lot of action happening in Perl 5 land, and we hope
  that these messages will help people keep abreast of the latest
  developments.

  Onto last week's traffic:

sub _ { ... } and -X _

  Peter Dintelmann pondered over the meaning of "-X _" when "sub _ { ...
  }" defined, as it can lead to some surprising behaviour. Mark-Jason
  Dominus pointed to http://hop.perl.plover.com/errata/byid.cgi/131 and
  http://hop.perl.plover.com/~alias/list.cgi?2:mss:264 for more
  information on the matter.

    http://xrl.us/hkyk

VMS Issues

  John E. Malmberg asked for advice on how to deal with File::Copy on
  VMS. The library test fails because the copied file ends up with a
  timestamp of 'now', which is consistent with the way things are done
  in the DCL command shell. Part of the problem was that the test suite
  failure message was misleading. John fixed things up as best he could.

    http://xrl.us/hkym

  He also landed a patch for ExtUtils::CBuilder. After a bit of work, he
  and Ken Williams got it working correctly.

    http://xrl.us/hkyn

  In other VMS news, the current bleadperl is testing fairly well. The
  main show-stopper being problems with Compress::Zlib.

    http://xrl.us/hkyo

Eliminating arenaroots

  Internally, perl uses arenas of memory to allocate fixed-length
  objects quickly and efficiently. The current plan is the shrink the
  number of roots down to one. Jim Cromie supplied a patch. The test
  smokes produced a number of odd results that had people scratching
  their heads, until it was realised that the problem was a single
  statement "if" that lost its braces.

    http://xrl.us/hkyp

Dying in a grep

  Chris Heath noted the following:

    $ perl -e 'for ("foo") { grep(die, "bar") }'
    Died at -e line 1.
    Attempt to free unreferenced scalar: SV 0x96c61dc, Perl interpreter:
    0x96ae008.

  Normally, the third line shouldn't appear. And "map" will do the same
  thing. Salvador Fandiño noted that this had already been recorded as
  bug #24254.

    http://xrl.us/hkyq

eg should be e.g. in the documentation

  David Landgren was peeved that *exempli gratia* is often abbreviated
  to "eg" in the documentation, rather than "e.g.". Mark-Jason Dominus
  wondered why it was not abbreviated to "for example". Michael Schwern
  brought the discussion to a close by performing a simple cost/benefit
  analysis.

    http://xrl.us/hkyr

Math::Complex atan2 bug

  Steffen Müller observed the following

    [...] in the complex plane, we get:
    perl -MMath::Complex -e "print atan2(0,i)"
    i/0: Division by zero.
    Died at c:/perl/perl58/lib/Math/Complex.pm line 1284.

    This is not correct.
    Obviously, 0/i is the same as 0/1 which is 0.
    Thus atan2(0,i) == atan2(0,1) == atan(0) == 0

  Jarkko Hietaniemi said that he'd cook up a patch, but that he had
  other outstanding things to do with Math::Complex and Math::Trig.

    http://xrl.us/hkys

undefing *foo{CODE}

  Ben Tilly reported that undef'ing the CODE slot of a typeglob doesn't
  quite work well enough to be useful, and supplied a short snippet of
  code showing the problem.

    http://xrl.us/hkyt

  Dave Mitchell shed some light on what was going on under the covers
  "the thing continues to exist, but has no useful 'value'", and Rafael
  Garcia-Suarez noted that

     delete &mysub

  is on the TODO list, but getting it right in all cases is extremely
  tricky.

tr// on EBCDIC platforms

  Sadahiro Tomoyuki found problems with transliterating Unicode
  characters. I can only offer my deepest sympathy.

    http://xrl.us/hkyu

New core module releases

  Graham Barr released IO version 1.22. There was concern about what the
  impact would be on the 5.6 series.

    http://search.cpan.org/dist/IO/

  Dan Kogai released Encode 2.12...

    http://search.cpan.org/dist/Encode/

  ... and Ruslan U. Zakirov spotted a problem with an example in the
  documentation.

The return value of SvUTF8()

  In December 2004, Ton Hospel raised bug #32884. The internal perl API
  defines SvUTF8() as taking a pointer to an SV, and returning a boolean
  value indicating whether the SV contains utf-8 encoded data.
  Compilers, casting between chars and ints, can arrive at the situation
  whereby...

    if (SvUTF8(sv)) { ... }

  ... and ...

    bool utf8 = SvUTF8(sv);
    if (utf8) { ... }

  ... don't behave in the same way. Steve Peters revived interest in the
  bug, by asking whether returning a U32 value instead of a bool would
  fix matters.

    http://xrl.us/hmtr

In Brief

  Rajarshi Das found a problem with Encode on EBCDIC. Dan Kogai noted
  that the code is not well tested on EBCDIC. There was another thread
  on the matter:

    http://xrl.us/hkyv

  Robert Spier released the latest version of the Perl5 bug summary

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

  Summary of the summary: there are 1500 open tickets.

  "brucer" filed a bug report for "my $var if 0". Michael Schwern
  demonstrated that this now produces a warning in bleadperl.

    $ bleadperl -wle 'my $v if 0;'
    Deprecated use of my() in false conditional at -e line 1.

  Ikegami reported bug #37076, a snippet involving threads and 'require
  IO'. Using 'use IO' makes the bug go away. Nicholas Clark suggested
  that this is caused by threads scribbling over memory that doesn't
  belong to them.

  "sgromoll" reported #37133, a crash related to threads and lock().
  Nicholas thought this was could be a deadlock in the threads
  implementation.

  Michael Schwern noted that #7615 "if (local $a = 1){ ... }" is still a
  problem:

    $ bleadperl -wle '$a = 10;  if( local $a = 1 ) {}  print $a'
    Found = in conditional, should be == at -e line 1.
    1
    $ bleadperl -wle '$a = 10;  if( my $a = 1 ) {}  print $a'
    Found = in conditional, should be == at -e line 1.
    10

  Michael Schwern also followed up on the test suite of PathTools 3.10,
  which was released some time ago.

    http://xrl.us/hkyw

  In bug #36075, Nicholas Clark wants to get "malloc_size" and
  "malloc_good_size" into "Configure", because this would help perl on
  Darwin. Steve Peters and H.Merijn Brand discussed various schemes for
  doing this

  Garry reported a memory leak with threads in #37134. Dave Mitchell
  managed to come up with some remarkably concise code that demonstrates
  the bug:

    use threads;
    sub ThreadRoutine {}
    while (1) {
      $thread = threads->new(\&ThreadRoutine);
      $thread->join;
    }

  Brendan O'Dea supplied a few tweaks for "a2p", thereby closing a
  couple of Debian bugs, and wondered if anyone still uses it ("a2p",
  that is).

About this summary

  This summary was written by David Landgren.

  Information concerning bugs referenced in this summary (as #nnnnn) may
  be viewed at http://rt.perl.org/rt3/Ticket/Display.html?id=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