Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: FPE not deferred in 5.36

by haj (Vicar)
on May 31, 2022 at 14:58 UTC ( [id://11144316]=note: print w/replies, xml ) Need Help??


in reply to FPE not deferred in 5.36

I ran into a FPE once.... and while I've not dug into the details, I can give a somewhat dirty way to reproduce it. It is dirty because the bug causing the FPE has been fixed since then. Here's the code:

$SIG{FPE} = sub { die "Ooops\n" }; use List::Util 'product'; print product(-1,1);

If you run this in vanilla Perl 5.34 or older without a signal handler, it dies with Floating point exception. If you include the handler like I did, you'll get:

Maximal count of pending signals (120) exceeded at fpe.pl line 3.

If you run this in vanilla Perl 5.36, you get the expected result of -1, because the bug (RT139601) has been fixed in that release (in List::Util 1.60, to be precise). But you can catch the FPE by installing an "older" List::Util on top of Perl 5.36:

cpanm https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Scalar-List-Uti +ls-1.59.tar.gz perl fpe.pl

This dies with the message Ooops, so in Perl 5.36 the signal handler works as you'd expect.

Don't forget to upgrade your List::Util after that test :)

Replies are listed 'Best First'.
Re^2: FPE not deferred in 5.36
by choroba (Cardinal) on May 31, 2022 at 15:01 UTC
    Great, thanks. I'll dig into the older List::Util to see how the error happens, as I don't want to install an older version of a core module in the test suite of Syntax::Construct :-)

    map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11144316]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others avoiding work at the Monastery: (7)
As of 2024-04-19 14:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found