This Week on perl5-porters (5-11 April 2004)

This Week on perl5-porters (5-11 April 2004)

Spring is here, at least in the northern hemisphere, and perl 5.8.4 is approaching. This doesn't stop the Perl 5 porters from pursuing their usual job: proposing exciting new ideas, and fixing bugs. Read on for the details.

Towards 5.8.4

Nicholas Clark posted a draft of the perldelta for perl 5.8.4, and then released a first release candidate, which triggered some last-minute adjustments. Randal L. Schwartz also commented on the modules that were still newer on CPAN than in the RC1 tarball; which is not to be considered absolutely evil, as Nicholas explained, given that the primary goal of a maintenance release is stability.

    http://groups.google.com/groups?selm=20040404224109.GJ701%40plum.flirble.org
    http://groups.google.com/groups?selm=20040405215642.GG676%40plum.flirble.org

More pack templates

Marcus Holland-Moritz proposed an extension to the pack() template syntax, to handle signed integers in big- and in little-endian order. H. Merijn Brand suggested that, instead of using new letters, one could use a ! suffix to denote signedness, proposition which was unanimously approved.

    http://groups.google.com/groups?selm=20040405182634.7dc02687%40r2d2

But then, Marcus took his initial idea further, and proposed a more general extension. This second one, among other things, uses the < and > suffixes to denote respectively little- and big-endianness. Patches are to be expected.

    http://groups.google.com/groups?selm=20040408180559.470c4a47%40r2d2

Unicode exercise

Jarkko Hietaniemi proposed a small Unicode task for the interested: automate the generation of Unicode properties in perl's Unicode character tables (the files in lib/unicore); they are currently hardcoded. The details can be found at:

    http://groups.google.com/groups?selm=40750F8A.7020006%40iki.fi

Optree black magic

Jim Cromie, who recently worked on the B::Concise (a core module to dump optrees), got an idea: using a B::Concise style to generate code to be executed by B::Generate to generate an optree equivalent to the one which was dumped.

Scott Walters commented that he is, on his own, working on a Perl 6 to Perl 5 bytecode compiler, in sight of using B::Generate to have executable code; and some of the efforts converge here. Something interesting might be produced by this (maybe psooie -- Perl Six On Old Internals Engine.)

    http://groups.google.com/groups?selm=40745889.6090208%40divsol.com

An improved warning

Dave Mitchell proposed a patch to improve the famous warning Use of uninitialized value... by adding the name of the undefined variable or array/hash subscript that triggered the warning in the potentially faulty expression. I'm sure this additional verbosity will make lots of coders happy.

Caching tied hash elements

Jamie Lokier submitted an extensive bug report (bug #28233) concerning the aggressive caching of references to elements of tied hashes. Those references are magical, since reading from them calls FETCH() and writing to them calls STORE(), but the read or written value is cached by perl, and sometimes this cache isn't invalidated whereas it should be. Jamie proposed a solution but nobody commented yet.

    http://groups.google.com/groups?selm=rt-3.0.8-28233-83777.13.7804390706522%40perl.org

Some other bugs

Rafael fixed a compiler bug, which was indefinitively looping when parsing (not executing) the following construct:

    map { while (1) {} } ()

David Dyck noticed a glitch in find2perl, now that it defaults to -print if no other action is specified: it shouldn't default to -print, however, when one of the actions is an -eval. This was fixed.

Andrew Alakozow reported (as bug #28364) that perl segfaults on Win32 when some XS code changes values in the program's environment, and when the destruct level is greater than 0 (for example in spawned threads, or when the environment variable PERL_DESTRUCT_LEVEL is set at an appropriate value).

Leah reported (bug #28294) that the module File::Basename is plagued with deficiencies. Rafael suggests either to rewrite it (eventually with a backport to CPAN), or to deprecate it.

Upgraded modules

Dave Rolsky released Time::Local 1.08, then 1.09, which contain mostly documentation and test fixes.

Jarkko Hietaniemi released Time::HiRes 1.57, 1.58, and 1.59. It fixes a problem on Windows and Cygwin platforms: if the performance counter drifts by more than two seconds from the system clock (due to ntp adjustments, for example), recalibrate our internal counter.

About this summary

This summary was written by Rafael Garcia-Suarez, from Paris, France. Thanks to Elizabeth Mattijsen for having taken the role of interim summarizer during two weeks. (And now for a highly personal advertisement: I'm still looking for a flat in Paris. Offers welcome!)

Weekly summaries are published on http://use.perl.org/ and posted on a mailing list, which subscription address is perl5-summary-subscribe@perl.org. Comments and corrections are welcome.