Skip Menu |

This queue is for tickets about the Carp-REPL CPAN distribution.

Report information
The Basics
Id: 64744
Status: open
Priority: 0/
Queue: Carp-REPL

People
Owner: Nobody in particular
Requestors: norbi [...] nix.hu
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: 0.15
Fixed in: (no value)



Subject: Caught exceptions should not trigger the REPL
Currently the REPL is triggered even on caught (handled) exceptions: mendel@vger:~$ perl -MCarp::REPL=noprofile -e 'eval { die }' Died at -e line 1. Trace begun at -e line 1 eval {...} at -e line 1 $ That renders Carp::REPL nearly unusable (it starts up the REPL on the first handled exception). Could you review and apply this patch: https://github.com/mendel/carp-repl/commit/ea4c2752dc4d84b71278805c13d4af136e0e3f87 Thanks, norbi
From: MENDEL [...] cpan.org
I just found that a syntax error causes an infinite loop when using Carp::REPL: mendel@vger:~$ perl -MCarp::REPL -e ':-(' syntax error at -e line 1, at EOF Execution of -e aborted due to compilation errors. BEGIN not safe after errors--compilation aborted at /usr/local/share/perl/5.10.0/Devel/REPL/Script.pm line 3. Can't locate object method "new" via package "Devel::REPL::Script" at /usr/local/share/perl/5.10.0/Carp/REPL.pm line 67. Can't locate object method "new" via package "Devel::REPL::Script" at /usr/local/share/perl/5.10.0/Carp/REPL.pm line 67. Can't locate object method "new" via package "Devel::REPL::Script" at /usr/local/share/perl/5.10.0/Carp/REPL.pm line 67. Can't locate object method "new" via package "Devel::REPL::Script" at /usr/local/share/perl/5.10.0/Carp/REPL.pm line 67. Can't locate object method "new" via package "Devel::REPL::Script" at /usr/local/share/perl/5.10.0/Carp/REPL.pm line 67. It's a separate bug, but the fix is similar, so I thought it makes sense if I report it in the same ticket. The next commit in the branch (https://github.com/mendel/carp-repl/commit/37d6921bc1444e50ad61098cc6f3b2c15bba31af) fixes this bug.
My initial intent for Carp::REPL was to help debug errors in Jifty, which wraps requests in an eval so that a single error doesn't take down the web server. This is why Carp::REPL ignores eval. But I understand where you're coming from, so maybe an option for ignoring or respecting eval would be best. Shawn