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:
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/user/alias/list.cgi?2:mss:264 for more
information on the matter.
http://xrl.us/hkyk
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
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
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
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
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
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.
Sadahiro Tomoyuki found problems with transliterating Unicode characters. I can only offer my deepest sympathy.
http://xrl.us/hkyu
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.
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
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).
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: perl5-summary-subscribe@perl.org ). 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.