Perl 5 Porters Mailing List Summary: October 5th-11th

Hey everyone,

Following is the p5p (Perl 5 Porters) mailing list summary for the past week. Enjoy!

October 5th-11th

Karl Williamson continues his work on Unicode::Normalize and with the help of reports from Yaroslav Kuzmin was able to speed up the normalizer.

Bug reports and bug fixes

Thomas Sibley verified the possible problem with IO::Socket::INET was indeed a DNS lookup issue:

Indeed, every call to $c->get_request() calls $d->url, which calls gethostbyaddr() in the case of your usage of LocalAddr:

lib/HTTP/Daemon.pm Line 51.

James E. Keenan is on a ticket cleaning spree. He had so far taken up Perl #65052, Perl #116254, Perl #117341, Perl #117963, Perl #120330, Perl #121553, and Perl #120841.

Vincent Pit opened Perl #126240 the week prior (which last week's summary missed - sorry) on fork() causing a panic at destruction time with a debugging threaded blead perl on Mac OS X Yosemite.

Bulk88 submitted a patch in Perl #126273 to help debug work with the Save Stack, and Dave Mitchell provided several hints he finds less invasive. Interesting for anyone else seeking to debug the save stack.

Dave Mitchell had traced the cause of Perl #126145 (a mod_perl pre-compiling modules crash) back to a outdated module, Sub::Attribute.

Dagfinn Ilmari Mannsåker provided a patch in Perl #126281 to improve error messages by including the name of non-lvalue subroutines.

Perl #31923, a segfault which can be triggered by use encoding 'utf8', had been fixed.

Lukas Mai opened Perl #125305 about constant folding barewords with unary minus.

Several errno tests currently fail, reported in Perl #126306 by Jarkko Hietaniemi, relating to a similar problem in IRIX, reported by Jarkko in Perl #123977.

Perl does not warn about malformed UTF-8 characters if a string is enclosed in single quotes, now reflected in Perl #126310.

Regex bugs

Victor Adam is continuing to pursue regular expression test writing. He's been working on several bugs he had reported: Perl #126141, Perl #126177, Perl #126178, Perl #126179, Perl #126180, Perl #126181, Perl #126185, Perl #126186 (which is now fixed and resolved by Yves Orton in fee505829585692618c3f9bb28a8f0464553ec94, Perl #126187, Perl #126222, and Perl #126253.

Fuzzing to find bugs

Dan Collins opened Perl #126274, a crash caused by the following interesting set of characters:

($0[(((0/[(())])[()]))])

Dan also opened Perl #126309, a segfault caused by:

@0[(0)x~0]

Dan found even pack can crash with the following code, opened under Perl #126325:

pack+WH200000,\0

Dan also opened Perl #126319 which causes a crash with this interesting piece of regex:

/\b{sb}\b{wb}//b{}//>s>>>g>>0

Discussions

cadvise static code checker

Jarkko Hietaniemi ran a static code checker called cadvise and the report might contains some very interesting bits.

File::Glob shelling out?

Karl Williamson opened Perl #126271 which exposes a possibly unsafe (and possibly unnecessary) shelling out in File::Glob. The conversation thread exposes more reasons for it and possible solutions.

Continuing redesign of Math-BigInt

Peter John Acklam reopened the discussion on his redesign of the distribution carrying Math::BigInt, Math::BigRat, and bignum mentioning the distributions supporting both procedural function calls being supported at the same time as object-oriented style.

Bulk88 had the following quote-worthy sentence in his reply:

dont[sic] use OOP or convert functional code to OOP for the sake for religious purity.

Aristotle Pagaltzis suggested a remarkable way to deprecate the code. Worth the read.

Yet another Smart Match proposal?

Continuing the Smart Match discussion, and with impending flame risk, Dave Mitchell had bravely suggested yet another Smart Match syntax.

It seems Dave is focusing on making given/when more readable and at the same time, faster, and easier to implement.

Paul "LeoNerd" Evans suggested using new syntax keywords, such as:

use feature 'dispatch';

dispatch($str) {
    on("hello") { say "Hello, there"; }
    on("bye")   { say "Goodbye then"; }
}

Eirik Berg Hanssen suggests providing keywords for the comparison itself - whether scase and ncase for string vs. numerical comparison respectively, or wheneq and when== (suggested by Paul).

z/OS perl port

Karl Williamson is continuing his work on porting perl to z/OS. Only one test is failing now.

To help understand the failing test and how dynamic linking works in z/OS, Jarkko Hietaniemi, Bulk88, John Goodyear, Yaroslav Kuzmin, Ray Mullins, and Sandra jumped in to investigate and understand how z/OS works in this regard.

This might result in simply a sanity check (as Aristotle Pagaltzis described it) which does not apply in z/OS.

The thread continues here.

Coro branch that works on 5.22

Reini Urban created a Coro fork which contains patches to work on perl 5.22.

What should qr/\p{pkg::L}/ do?

Karl Williamson asks what should the regexp qr/\p{pkg::L}/ do. While currently evaluating to the Unicode property letter, Karl offers it fails on compile- or run-time as the property pkg::L is not found.

Agreed by Ricardo Signes with a suggestion to improve the error from "not found" to something more descriptive (such as "illegal name").

Warn or die on /(?-p)/?

Yves Orton had suggested to close Perl #126185 as WONTFIX since he deems warning good enough. Seconded by Karl Williamson (but to close as Rejected).

Yves also noted additional comments worth a read to anyone interested in regular expressions in finer detail.

Ignore errors configurably

Linda Walsh requests comments in Perl #126314 on a proposal for being able to configure in files to ignore new exceptions in order to handle applications which die when using fatal warnings and encountering new warnings in new versions of perl.

News

Second voting round on perl 5.22.1

Steve Hay has called for another round of voting on perl 5.22.1.

2 Comments

The issue with globbing isn't that File::Glob shells out, but with miniperl (which can't load File::Glob) or -DPERL_EXTERNAL_GLOB builds, which use csh or perlglob.exe on Win32 to perform glob(). Unfortunately the subject for #126271 is misleading.

For #31923, the issue isn't so much encoding.pm, which is deprecated, but with PerlIO::encoding, which encoding.pm uses. PerlIO::encoding didn't handle duplication on thread creation correctly, causing crashes.

Leave a comment

About Sawyer X

user-pic Gots to do the bloggingz