Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Re: FPE not deferred in 5.36

by haj (Priest)
on May 31, 2022 at 14:58 UTC ( #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 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 +ls-1.59.tar.gz perl

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?

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

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (1)
As of 2023-03-26 06:10 GMT
Find Nodes?
    Voting Booth?
    Which type of climate do you prefer to live in?

    Results (63 votes). Check out past polls.