This Week on perl5-porters - 13-19 October 2008

"It's far from being a critical issue, and I'm not saying that magic shouldn't be enabled there. But I'd really like to see magic behave in the most predictable possible way." -- Vincent Pit, inventing a new meaning for "predictable".


Topics of Interest

use bytes pragma

Karl Williamson, in his ongoing overhaul of Unicode handling, discovered some inconsistencies between the documentation for and implementation of the bytes pragma. As such, he wasn't willing to hazard a change, but wondered how often it was used in real life.

  http://xrl.us/ovbq2

PATL/autorequire-0.08.tar.gz broken since perl5.8.8@30113

Slaven Rezic noted that refactoring in DynaLoader had caused this module to fail, and traced it down to some hairy .PL template code. Vadim Konovalov admitted guilt over the template syntax and offered to atone for his sins by writing the machinery that would allow nicer templating during the build.

  http://xrl.us/ovbq4

ties and other filehandle bondage

Ricardo Signes uncovered an ugly problem with opening a file handle to a reference of a tied scalar. And while this was probably not the wisest thing to do in the first place, any error message would be better than none.

Vincent Pit reasoned that the best way to solve this would be to have magic triggered on every print argument, but that might be woefully expensive. Nicholas Clark thought that correctness was better than speed, and if you're into magic you probably don't care about efficiency.

  http://xrl.us/ovbq6

blead and Glib's lazy-loader

Torsten Schönfeld reported a problem with av_clear on @ISA not doing the right thing, and having to call av_shift repeatedly instead. (I seem to remember summarising a similar issue a couple of weeks ago).

  http://xrl.us/ovbq8

Change 32016 breaks a test in MPEG::Audio::Frame

Slaven Rezic uncovered a bug in MPEG::Audio::Frame. Nicholas Clark noted that this was because Yuval Kogman was a wicked man who peeked, and relied upon the implementation. Yuval admitted that the module ought to be fixed up (rather than perl), but confessed to low amounts of tuits.

Nicholas was also in awe of the amount of testing Slaven was doing in tracking the changes for 5.8.9.

  http://xrl.us/ovbra


TODO of the week

Add a code coverage target to the Makefile

Make it easy for anyone to run Devel::Cover on the core's tests. The steps to do this manually are roughly

This just give you the coverage of the .pms. To also get the C level coverage you need to

It would be good to add a single switch to Configure to specify that you wanted to perform perl level coverage, and another to specify C level coverage, and have Configure and the Makefile do all the right things automatically.


New and old bugs from RT

File::Copy module (#32135)

Nicholas Clark disagreed with Adriano Ferreira's comment of what was the underlying problem in this bug report. He wondered if the real problem did not in fact lie with IO::Scalar.

  http://xrl.us/ovbrc

In a related report (File::Copy does not handle file objects sanely (bug #59650)), a rabbit supplied a patch to deal with IO::Scalar objects (which is probably why Nicholas revived the preceding bug. Nicholas had a minor quibble over the use of xor rather than ne, and wondered if there were any corner cases where they would behave differently.

  http://xrl.us/ovbre

Unicode problem (#58182)

Karl Williamson reported back on his progress in dealing with Unicode in Perl. He now has a good idea of what he wants to do, but had some questions of a practical nature regarding C coding standards. He asked a very interesting question: what is the feeling regarding the use of lookup table to push design decisions into data, rather than code.

Another crucial design assumption was that uc tries to convert in place if possible. Karl wondered if it would reasonable to always return a new SV regardless of whether the original container would fit, as it would simplify the code. To this latter point, Rafaël Garcia-Suarez told him to go ahead with whatever was easiest; there would always be time to optimise it later on, should the need arise.

In another subthread, Karl pointed people at the bikeshed and asked for colour schemes. That is, this new Unicode functionality will be enabled via a pragma in 5.10 (becoming the default behaviour in 5.12). What, then, should be the name of the pragma? Karl had a number of ideas, but was dissatisfied with all of them.

  http://xrl.us/ovbrg

Memory leak with regex in 5.10.0 (#59516)

Marcus Holland-Moritz plugged the leak with a well-placed SvREFCNT_dec.

  http://xrl.us/ovbri

bun in perl 5.8.8 on AIX 5.3 (#59866)

Rainer Tammer noted a perfect 64-bit build on AIX 5.2, but ceteris paribus a failure AIX 5.3. A 32-bit build was fine. H.Merijn Brand was able to repeat the failure.

  http://xrl.us/ovbrk

Variable falls out of scope but is not garbage-collected (#59882)

Frédéric Brière reported a problem of a variable with no remaining references not being garbage collected. Dave Mitchell explained that method lookup caching was interfering with things and suggested an alternate syntax to Do The Right Thing.

Nicholas Clark thought that caching should only improve performance, not require people to jump through hoops to avoid side effects. He proposed a change to the implementation but wondered if there were any corner cases that might be affected. Dave Mitchell was reluctant to entertain any changes, since the GV implementation has not been widely studied.

  the cold light of day
  http://xrl.us/ovbrn

x forces scalar context on array variables (#59884)

James Schneider stumbled over an edge case with x, the replication operator. Much discussion about context, parentheses and qw() followed.

  http://xrl.us/ovbrp

\x, \0, and \N{} not ok in double-quotish when followed by > \x100 (#59908)

Karl Williamson needs someone to tell him where to look in the source to track down the problem he summarised in this bug report.

  help, I need somebody
  http://xrl.us/ovbrr

tainted values in ternary conditional (#59916)

Dean wanted the propagation of tainted values with ternary expressions to change, and wrote some tests to describe the behaviour he sought.

  http://xrl.us/ovbrt

Errors in compilation (#59922)

Rajini S was encountering difficulties in testing a 32-bit build on HP-UX. H.Merijn Brand and Andy Dougherty thought that the new build was getting mixed up with parts of the system perl.

  http://xrl.us/ovbrv

Memory leak when accessing %+ (#59942)

Marc Lehmann reported a problem with %+, but Renée Bäcker thought it had already been solved in blead by change #34151, and suggested looking at bug #57024.

  http://xrl.us/ovbrx

Modification of read-only value in grep (#59956)

Ed Avis set up a construct that produced a misleading error message. Eric Brine explained that the so-called modification error was due to autovivification, and suggested that it would be nice to have a better error message.

  http://xrl.us/ovbrz

Bug in threads / perl 5.8.8 on AIX 5.2 / 5.3 (#59960)

Rainer Tammer found, and solved, a bug in threads on AIX. H.Merijn Brand suggested that at the very least, a maintainer for README.aix would be a great idea, should Rainer feel like volunteering.

  http://xrl.us/ovbr3

Memory leak when using the qr operator (#59994)

Roland Illig independently (re-)discovered the qr// leak, only to learn it had been fixed. Marcus Holland-Moritz suggested what he hoped was an appropriate patch for Roland's 5.10.0 installation since 5.10.1 is not yet shipping.

  http://xrl.us/ovbr5

crypt() returns tainted data even when input strings are detainted (#59998)

Frédéric Buclin uncovered some inconsistencies with tainted data when crypt is involved.

  http://xrl.us/ovbr7

Perl5 Bug Summary

  279 new + 1054 open = 1333 (+15 -5)
  http://xrl.us/oudz6
  http://rt.perl.org/rt3/NoAuth/perl5/Overview.html


New Core Modules

Archive::Tar 1.40
  http://xrl.us/ovbr9
CPAN.pm 1.9301
  http://xrl.us/ovbsb
ExtUtils::MakeMaker 6.47_01
  http://xrl.us/ovbsd
ExtUtils::MakeMaker 6.47_02
  http://xrl.us/ovbsf
Test::More/Simple/Builder 0.82
  http://xrl.us/ovbsh
Test::More/Simple/Builder 0.84
  http://xrl.us/ovbsj


In Brief

Yamashina Hio found that Storable::thaw segfaults on blessed reference to overloaded object and supplied a patch that Nicholas Clark was happy to apply.

  http://xrl.us/ovbsm

Jerry D. Hedden saw some problems arising following change #33119 that integrated some consting goodness to cygwin.c.

  http://xrl.us/ovbso

Jerry then suggested a small lib/DB.t fix, and Nicholas Clark fixed the problem with change #34554.

  applied
  http://xrl.us/ovbsq

Karl Williamson wondered if there was a document that helped porters come to grips with the use of git. The answer was to note things on the wiki. This could then be folded into perlhack at a later date.

  http://xrl.us/ovbss
  http://xrl.us/ovbsu

Niko Tyni pushed a Debian patch to fix h2xs enum handling with C++ comments

  unapplied
  http://xrl.us/ovbsw

Niko also posted a patch because h2xs incorrectly treats enum values like macros.

  also unapplied
  http://xrl.us/ovbsy

While discussing the (im?)possibility of prototype-based polymorphism, Michael G. Schwern thought that Method::Signatures was probably the way to go.

  just a smop
  http://xrl.us/ovbs2

Last week's summary

  This Fortnight on perl5-porters - 28 September-12 October 2008
  http://xrl.us/ovbs4

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: 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, please consider contributing to the Perl Foundation or attending a YAPC to help support the development of Perl.