This week, the P5P report features the Great Module Renaming ; the Second Great Module Renaming ; a Couple Of Bugs, old and new ; and, finally, Perl 5.8.0 RC 3 released to the world.
On monday morning,
the version of MIME::QuotedPrint
included with Perl still provided a few methods (namely PUSHED,
FILL,
WRITE and FLUSH) that added to it the ability to be used as a PerlIO layer.
Elizabeth Mattijsen,
hunting bloat,
submitted a patch to remove these methods.
Noticing that these were used in the test for PerlIO::Via
,
and in some documentation as code examples,
Jarkko decided to borgify Elizabeth CPAN's module,
PerlIO::Via::QuotedPrint
,
which is essentially the above PerlIO methods put in a separate namespace.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2002-07/msg00199.html
On the path of doing this namespace migration,
a PerlIO bug reappeared : open($fh,
"<:Via(foo)",
"file")
not returning false on failure.
It turned out that this was a bug in the :stdio
pseudo-layer.
It was promptly corrected by Nick Ing-Simmons.
Continuing on the PerlIO::Via
topic,
Elizabeth Mattijsen asked why the second part of PerlIO::encoding
was lowercase,
whereas PerlIO::Via
and PerlIO::Scalar
where uppercase.
This was obviously a good question.
A consensus was found quite rapidly : all core IO layers should have all-lowercase names.
Thus,
PerlIO::Via
(and its submodules PerlIO::Via::*
) moved to PerlIO::via
(note the lowercase 'v'),
and PerlIO::Scalar
to PerlIO::scalar
.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2002-07/msg00201.html
During the previous discussion,
Nick Ing-Simmons noticed that is was impossible to pop an IO layer from within Perl.
Thus he added a :pop
experimental pseudo-layer,
that does just that.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2002-07/msg00458.html
Ilya Martynov tried to backport RC1's Data::Dumper
to perl 5.6.1.
He found out that some tests were failing,
because the internal hashing algorithm used by perl has changed,
and thus hash keys were not returned in the same order.
The trick should be to have version-specific tests,
or to use some more clever way to verify the results.
Anyway,
Ilya is now with Gurusamy Sarathy co-maintainer of Data::Dumper
,
and will be able to upload new versions to CPAN.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2002-07/msg00317.html
Simon Cozens found that the DESTROY
method was not called when blessed code references go out of scope.
Nobody replied,
and it's still not clear whether this is a bug.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2002-07/msg00235.html
defined $$foo
Elizabeth Mattijsen noticed that
use strict 'refs'; our $foo = 'bar'; if (defined $$foo) { ... }
was valid perl code, and wondered whether this was an undocumented feature. After some discussion, it was decided that this was actually a bug, but the kind of bug that can wait until after 5.8.0 -- it's non-critical, and it's present in 5.6.x.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2002-07/msg00359.html
Abigail reported a couple of bugs. The first was a complaint about /(?{...})?/
not being allowed. This triggered a terse comment by Hugo about how he wants to enhance the regexp engine during the 5.9 development track.
The second bug was about local()-izing an $#array
variable not working correctly (for some value of "correctly"). (I think that this bug was already reported in the past, but I didn't find it.) Anyway, if we want to make this work, the semantics of this construct should be precisely defined. This goes in the to-do list for 5.9.
The first bug: http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2002-07/msg00482.html
The second bug: http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2002-07/msg00484.html
Elizabeth Mattijsen was also busy on the ithreads front. She uploaded to CPAN a thread-pool module. The first version of it was called threads::farm
(now it's Thread::Pool
). Johan Vromans noted the all-lowercase name, quite inappropriate for a module. It's worth noting that this triggered the Second Great Renaming of the week : the thread utility modules now live in the Thread::
namespace. The thread pragmatic modules (threads
and threads::shared
) keep their lowercase name, in conformance with the general naming conventions; but threads::shared::queue
and threads::shared::semaphore
now become respectively Thread::Queue
and Thread::Semaphore
.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2002-07/msg00570.html
Jarkko released RC3 to the world, but you already know that. He said also :
The post-RC3-plan is no damn code patches (or additions), the possible exceptions being firefighting by me (Unicode), NI-S (perlio), Arthur (ithreads), or Hugo (regexen).
and :
Timeframe for the 5.8.0 final: Thursday.
(this last word being of course subject to Murphy's law.) (It also means that you have to quickly download and test RC3 on your favorite platforms before it's too late...)