A happy new year for Perl 5 porters and everybody. The holiday seemed to bring a lot of spare time for Perl 5 porters and they made good use of it. Hey, what those funny people are doing around in this mailing list?
In the last weeks, Rajarshi Das and others raised some interest for the Perl port to z/OS, an EBCDIC platform, and started some threads on related issues.
iso-2022-jp encoding Rajarshi Das asked for help to understand why iso-2022-jp encoding is unknown on z/OS.
Sadahiro Tomoyuki showed some evidence that Encode
is not ready to support Encode::JP
(the module which supports iso-2002-jp and other Japanese encodings) on EBCDIC.
Nick Ing-Simmons also had some comments about the weirdness of scripts starting with an EBCDIC dialect and then switching to an ASCII-oid escape encoding like iso-2002-jp is.
Rajarshi Das tried some changes against Encode
sources and his doubts remained.
Sadahiro Tomoyuki tried to help Rajarshi understand the involved subtleties.
This thread has not reached a conclusion (unless I missed something) and Rajarshi opened ticket #16663.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00436.html
Configuration Error for p59x26223 Rajarshi was having fun configuring and building p59x26223 (whatever that is) on z/OS v1.7, but some show-stopping errors were popping and he called for help. Jarkko Hietaniemi analyzed the situation which is due to a silly warning of a compiler who wants to know too much. Jarkko posted something to Rajarshi to try, which worked, until it hit an error in building Compress::Zlib
. Paul Marquess wondered about a fix of a couple of weeks ago, which then made possible to Rajarshi to build Perl. (This fix is going to be officially introduced to Compress::Zlib
.) Jarkko asked for more details on a failure around Time::HiRes
, which went unanswered.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00656.html
Fixing t/uni/class.t on EBCDIC Rajarshi Das brought a patch to t/uni/class.t on perl-5.8.7 which fixes the test on EBCDIC (z/OS 1.4). The test case changes worked fine with Sadahiro Tomoyuki's patch for utf8.c but, to Steve Peters, they seemed too heavy for a test. Sadahiro Tomoyuki followed up with a lighter change, untried yet on EBCDIC, until Rajarshi tried it successfully, but he had a few comments on why things were done that way in the first patch. Last week, Steve Peters pinged about what changes were needed and the current state of tests outcome.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00717.html
Expect
, Anyone? Robert Zielazinski wondered if someone had played with porting the Expect
module to z/OS. He tried once with no luck on previous releases. No one answered, maybe because Expect
, which is not a core module, and z/OS are not in the current agenda of porters.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00803.html
About ext/B/t/optree_specials.t Back in October 5, Mohammad Yaseen commented on the output of running the ext/B/t/optree_specials.t test on EBCDIC platform z/OS. At Christmas' eve, Nicholas Clark guessed it probably had to do with different representation of the same string on non-ASCII systems, leading to different numeric hash values.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00848.html
runperl
and @INC
Yitzchak Scott-Thoennes delved into a long-standing test failure he had been seeing on Cygwin, and diagnosed two separate problems. One about test data in the real lib directory (lib/charnames.t). The second about runperl()
using real @INC
directories. Yitzchak proposed a patch with runperl()
using TestInit.pm
and saw only a failure at op/stash.t which had to do with a yet unfixed bug. With no immediate solution, Yitzchak opened for others to try it out, before sweeping the problem to under the carpet as a paliative measure. After a long silence, Rafael Garcia-Suarez saw op/stash.t to succeed and t/run/switchd.t to fail. Nicholas Clark noticed failures with threaded perls which he tracked down and corrected with some changes.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00718.html
Andy Lester was one of the guys that spent a little more time with Perl at the end of the year.
Ho! Ho! Ho! consting and NULLing http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00796.html Faster Perl_sv_derived_from http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00808.html Andy speeds (rn|n)?instr http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00809.html Before LIKELY() stuff http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00902.html Getting SVREFCNT right http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00926.html More cleanup and tight prototypes with NN http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00929.html Constant pointer parms http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00933.html Making 0 pointers to NULLs http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg01011.html
Some of this work by Andy was inspired by analysis of the coverage stats which Sébastien "maddingue" Aperghis-Tramoni made available. Graham Barr pointed there might some catches for the optimization of (rn|n)?instr
with respect to modern CPUs. And Rafael Garcia-Suarez supposed the SVREFCNT
fix comes with no impact on performance. At last, Andy launched the support for GCC builtins __builtin_expect
and __builtin_choose_expr
in source code, which later may be applied to hot spots detected in maddingue's reports. Rafael Garcia-Suarez preferred to defer the introduction of these features and the corresponding Configure patch after 5.9.3 and H. Merijn Brand will have everything ready by this time.
Coverages stats by maddingue http://www.maddingue.net/perlcover/ Support for two GCC builtins http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00928.html
H.Merijn Brand perceived some 'M' failures in smokes with longdoubles on Linux 2.6.12 and up with gcc-4.0.2 and up. Merijn wondered if others were having similar issues. Rafael Garcia-Suarez reported on successful builds with similar settings. Later, Merijn found the problem to be the gcc he had been using, a prerelease 4.0.2, and confirmed perl configures and builds fine with 4.0.2 release and 4.0.3 prerelease. There remained some problems Jim Cromie had seen which cast some doubts on the use of long doubles in current Perl sources.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00819.html
B::Lint
with PluginsYves Orton pinched a sneaky issue on Win32 on ext/b/t/lint.t. And, while we're on B::Lint
, let me remind the comments of Joshua ben Jore on the last summary. With respect to B::Lint
plugins, Joshua made clear that (1) benchmarking is needed to establish the cost of plugins against the embedded existing checks, (2) he doesn't see the value of fussing around just to make examples for people, as he'll be publishing more plugins that may serve this end, (3) he may as well make available some material (presentation slides) on doing lint-like checks after some updating.
Yves' deed on Win32's sake http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00837.html Joshua explains stuff http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00850.html
CPANPLUS
in Core?Yitzchak Scott-Thoennes remembered that, in June, Rafael announced the addition of Archive::Tar
to the core, as the last addition before CPANPLUS
and asked what next. A long discusssion ensued, with lots of pros and cons. To make it short, among the drawbacks, there are: core is big enough; CPAN.pm is stable and CPANPLUS
caused much pain so far; CPANPLUS
is a little too generous with memory requirements; some say it is too Linux centric; some issues on requisites may remain, like IPC::Run
. Andreas Koenig also reminded us of the new goodness added to the last versions of CPAN. On the side of the advantages, CPANPLUS
provides an API which "is a real pleasure"; CPAN
is not really light, but according to Jos "kane" Bouman, CPANPLUS
by design trades memory for speed. Believe me, many things have been said. If you want real details, follow the thread.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00852.html
Nicholas noticed a parallel make of the disttest target (make -j2 disttest
) was failing. Steve Peters came to the rescue: the problem was apparently related solely to BSD-based makes and not GNU make. make -j2 -B disttest
works for BSD make - the man page says -j turns compatibility off, and -B restores it. The issue: cd's in GNU make works for the current command and returns to the start directory after completed.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00861.html
Module::Build
0.27_04The candidate for core, Module::Build
, reached release 0.27_04, announced by Ken Williams.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00871.html
CPAN
1.80_58Andreas Koenig brought CPAN in blead to 1.80_58.
Who said programmers don't like to write documentation? If that's true, they at least enjoy fixing POD.
UNIVERSAL
: Don't Use Methods as Functions chromatic proposed a patch against lib/UNIVERSAL.pm to remove the recommendation to use isa()
, can()
, and VERSION()
as functions, responsible for too much damage in his view. The suggestion might seem a natural followup of chromatic's contribution as one of the authors of the controversial UNIVERSAL::can
and the not so rebellious UNIVERSAL::isa
. Yves Orton proposed instead a fix with basically the same rationale of the the mentioned modules, which Rafael thought to be a pretty big change, making UNIVERSAL::isa
inaccessible to those which override isa
. In such grounds, Rafael declined the patch as it undocumented existing functionality and asked for a perspective change. Rafael also reminded that Scalar::Util::reftype
can be used in place of UNIVERSAL::isa
. And chromatic brought a new patch "that moves the broken code to the end, where people will hopefully not see it." The patch pleased Yves and Rafael and got applied as change #26466.
chromatic's first attack http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00773.html chromatic's coup de grâce http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00805.html
Bad Example in perlop Ben Okopnik, in ticket #38008, pointed the misleading example on the flipflop operator in pod/perlop.pod, which included a label called 'line'
. Rafael Garcia-Suarez made it right with change #26468.
next line if (1 .. /^$/); # skip header lines http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00825.html
rindex
clarification Yitzchak Scott-Thoennes posted a mini-patch to make clear the rindex
description at pod/perlfunc.pod.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00881.html
Differences from Perl6 Robin Houston posted a doc patch against pod/perlsyn.pod explaining the differences between the recently introduced given
/when
and the corresponding Perl 6 constructs. Applied as change #26537.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00994.html
Bug in File::Temp
Docs In RT ticket #38127, pm noticed an imprecision in File::Temp
documentation, namely, when using the object interface one must use new File::Temp(TEMPLATE => $template)
to constrain the generated filenames. Rafael Garcia-Suarez agreed and applied a corresponding patch as change 26753.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-01/msg00037.html
perlmodlib missing Pod::Perldoc
? Yitzchak Scott-Thoennes missed Pod::Perldoc
not being listed in perlmodlib, even though most Pod::Perldoc::*
were there. Rafael Garcia-Suarez noted it was because Perldoc.pm had no POD. How ironic, repeating Yitzchak's words.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00799.html
Pod::Simple::Search
Pod::Simple::Search
assumed that case-preserved package and pod names could be constructed from filenames, which is not always true, on OSes with non-case-preserving filesystems like VMS. To remedy this situation, Craig A. Berry wrote a patch to make it work.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00915.html
gv_*
IssuesTels had been quite busy this end of year and started some long threads. You have to read them if gv_*
issues are your plate.
What's up with C<$a = \$a>? http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00950.html Stack usage http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00954.html Perl_gv_fetchpv vs. gv_fetchpvn http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00955.html gv_stashpvn() vs gv_stashpv() http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00960.html
Configure
PatchesH.Merijn Brand applied a patch by Jarkko Hietaniemi for making Configure smarter with respect to char (un)signedness in Tru64. While on this, Jarkko made a wish for Configure in 5.9.3: scan for snprintf()
and vsnprintf()
in behalf of people doing XS work, and for who sv_*pvf*()
may be an overkill. Steve Peters implemented it minus the necessary changes to Porting/Glossary.
Merijn notes Jarkko's patch http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg01006.html Jarkko's tiny wish http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-01/msg00027.html
B::Concise
Last week, Nicholas Clark slimmed down constants, and taught Devel::Peek
to understand the new representation, giving sensible information to the user. This week, Jim Cromie taught the new trick to B::Concise
. In the meantime, Nicholas remembered how missing constants are now prototyped with ()
so that the parsing of programs doesn't change platform by platform based on what macros are present locally.
Summary of the thread on optimized constants http://dev.perl.org/perl5/list-summaries/2005/20051212.html#Slimming_down_constants Jim tames B::Concise http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-01/msg00016.html
Perl RT had a count of 1510 open tickets at the last Monday of 2005 and the year started with 1514 bugs waiting to be squashed.
Robert Spier's summaries http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00865.html http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-01/msg00042.html Perl RT just now http://rt.perl.org/rt3/NoAuth/perl5/Overview.html
The Year in Perl 2005 chromatic wrote a very nice summary of the activity in Perl during 2005. It didn't go through the p5p mailing list, but it was too good not to be mentioned.
http://www.oreillynet.com/pub/wlg/8894
timelocal
not reverse of localtime
Rafael Garcia-Suarez found some time to take a look at the fix applied by Dave Rolsky to assure the behavior of timelocal
as reverse of localtime
: but it fails now. I believe this went unnoticed.
Previous thread summary http://dev.perl.org/perl5/list-summaries/2005/20051205.html#In_Brief Rafael says oops! http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00673.html
lc()
Failures with Latin-1 Chars Daniel Richard G., in ticket #37999, reported how certain accented letters in a word (using Latin-1 chars) were not being lowercased by lc()
, with some curiosities involving chop
and chomp
. Rafael Garcia-Suarez fixed it by harmonizing code of do_chomp()
and do_chop()
(change #26431). Daniel noticed that, if the string isn't modified via chomp/chop/etc., the accented letters stay as-is. To Rafael, it's just the documented behavior if you don't use locale
.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00727.html
Perl on Win64 Jan Dubois brought a patch to fix a bogus setting in win32/config.vc64 which allowed (together other previous changes) to get 100% success running the regression tests on Windows 2003 Server 64bit on AMD64. Hurray for Jan!
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00776.html
spare flag bits on rv2cv
Nicholas Clark wonders: any spare flag bits left on the op rv2cv
? And he answers himself: here is the lowest bit of op_private
.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00705.html
Compress::Zlib
on VMS Paul Marquess brought a patch to sort out building on MVS, applied as change #26468.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00827.html
Goodness propagated into eval I know this has been mentioned in the last summary, but Robin's work to guarantee propagation of compile-hints (%^H
) and constant overloading into eval is awesome, to steal Rafael's words. Try the following in perls pre-Robin and blead to see the difference:
$ perl -Mbigint -e 'print eval "1+2"' http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg00863.html
A Dependency Loop Tom Horsley has a rite to install all the latest stable perl stuff when year begins. Good habit! While doing this, he found libwww-perl-5.805
depends on HTML-Parser-3.48
which turned out to depend on HTTP::Headers
which lives in libwww-perl
. As far as I know, these are not core modules, but Gisle Aas, the author of both, is always around. (This is RT ticket #38097.)
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg01014.html
How not to Report a Problem namit opened ticket #38122 to say he was having problems with local settings. Yitzchak Scott-Thoennes guessed the messages namit was seeing and pointed to LOCALE PROBLEMS in perllocale manpage. Show us the code, said Steve Peters.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-01/msg00030.html
False Matches with Bad utf-8 Sadahiro Tomoyuki announced the RT ticket #37836 had been resolved by the change 26258 and generously offered a further investigation.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2005-12/msg01013.html
Effects of Patch 26370 Andreas Koenig was biten by the weird state of things after change 26370 where there can be files that one can use
but that perl cannot compile. Andreas mentioned as examples the Acme::Meta
distro and Devel-Symdump-2.04
based on the former. Rafael Garcia-Suarez reduced the problem to a shorter test case and fixed the issue with change 26574, which made Andreas very happy, releasing Devel::Symdump
2.05 out to the world.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-01/msg00036.html
Beware Floating Point stassats opened ticket #38120 to say about oddities of perl printing numbers like '2.23999999999999' instead of the prettier '2.24' equivalents. chromatic remembered floating point math is subject to rounding error, in Perl and every other programming language, and Ronald J. Kimball found the answer to be a FAQ which can be found with perldoc -q 9999.
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-01/msg00013.html
Parser Bug with '; sub f'
Lukas Mai, in RT ticket #38121, found what he thinks to be a parser bug. Yet to be commented.
$ perl -c -e '; sub f' syntax error at -e line 1, at EOF -e had compilation errors. http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2006-01/msg00014.html
At last, after untying my Gordian knot, here's the first p5p summary of 2006, written by Adriano Rodrigues Ferreira. When you least expect it, the next one by David will be here as well for your enjoyment.
Information concerning bugs referenced in this summary (as #nnnnn) may be viewed at http://rt.perl.org/rt3/Ticket/Display.html?id=nnnnn
Information concerning patches to maint or blead referenced in this summary (as #nnnnn) may be viewed at http://public.activestate.com/cgi-bin/perlbrowse?patch=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.