mirror of
https://github.com/Perl/perl5.git
synced 2026-01-27 01:44:43 +00:00
In 4764858cb80e76fdba33cc1b3be8fcdef26df754 I added code that eval's the argument extraction from DB::args() (code written by both Pali and myself independently). Unfortunately the commit message for that commit was somewhat misleading, making it sound like the patch was a complete fix for the underlying problem of stack-not-refcounted bugs, when in fact it is actually a workaround, and a not-universally popular one either due to its incompleteness. For more details of why it is not popular see Zeframs commentary in https://rt.perl.org/Public/Bug/Display.html?id=131046 Despite the concerns expressed by Zefram when considered from the POV of a large enterprise using Carp to trap exceptions from application code, having Carp throw its own exceptions about stack-not-refcounted bugs and thus hiding the applications error data is a significant issue. So in 4764858cb80e76fdba33cc1b3be8fcdef26df754 we use eval to handle those cases where Perl /can/ detect a stack-not-refcounted error, and thus preserve as much of the applications error data as possible. This commit adds a comment to Carp which spells all of this out.
157 lines
4.3 KiB
Plaintext
157 lines
4.3 KiB
Plaintext
version 1.49
|
|
|
|
* comment only change, document the change from 1.47 better
|
|
and create a commit in blead-perl which can be used to
|
|
reference this issue from the bug report.
|
|
|
|
version 1.48
|
|
|
|
* guard against hand-rolled UNIVERSAL::can() implementations
|
|
which throw exceptions when we call $obj->can("((").
|
|
|
|
version 1.47, 1.47_02
|
|
|
|
* Deal with overloading when overload.pm is not use
|
|
|
|
* Note 1.47_02 only existed for one commit in blead-perl,
|
|
and in fact no 1.47 should ever see the wild.
|
|
|
|
version 1.47, 1.47_01
|
|
|
|
* Do not die on trappable stack-not-refcounted bugs while
|
|
serializing the stack.
|
|
|
|
* Note 1.47_01 only existed for one commit in blead-perl,
|
|
and in fact no 1.47 should ever see the wild.
|
|
|
|
version 1.46
|
|
|
|
* avoid vivifying UNIVERSAL::isa:: in Carp
|
|
|
|
version 1.45
|
|
|
|
* Optimize format_arg when arguments contain many references
|
|
|
|
version 1.43
|
|
|
|
* fix problems introduced by the partial EBCDIC support from version
|
|
1.35
|
|
|
|
version 1.42
|
|
|
|
* add some doc clue about what cluck does
|
|
|
|
* avoid floating point overflow in test
|
|
|
|
version 1.41
|
|
|
|
* add missing "<FH> chunk #" phrase to messages
|
|
|
|
version 1.40; 2016-03-10
|
|
* Get arg_string.t to compile in perl v5.6
|
|
* Add information for how to contribute to Carp.
|
|
|
|
version 1.39; 2016-03-06
|
|
* bugfix: longmess() should return the error in scalar context
|
|
(CPANRT#107225)
|
|
|
|
version 1.38; 2015-11-06
|
|
* stable release of changes since v1.36
|
|
|
|
version 1.37_02; 2015-10-30
|
|
* bugfix: remove unused parent.pm from prereqs
|
|
|
|
version 1.37_01; 2015-10-25
|
|
* improvements for working on older perls
|
|
* bugfix: $Carp::MaxArgNums is no longer treated as if it was one larger
|
|
|
|
version 1.36; 2015-03-14
|
|
* bugfix: don't hardcode a path in a test; breaks because of / vs. \
|
|
* remove an unneeded $VERSION eval to match this release to bleadperl
|
|
|
|
version 1.35; 2015-03-14
|
|
|
|
* improvements for working on non-ASCII platforms
|
|
* bugfix: older perls have trouble stringifying the regexps in some tests
|
|
* bugfix: precedence error in some tests
|
|
* bugfix: on pre-5.14 perls, DEL was treated as a printable character
|
|
* bugfix: ignore mismatched Carp and Carp::Heavy when it doesn't matter
|
|
|
|
version 1.3301; 2014-04-01
|
|
|
|
* complete dependency list
|
|
|
|
version 1.33; 2014-03-24
|
|
|
|
* in tests, remove unneeded (and undeclared) dependency on Test::More
|
|
0.98
|
|
|
|
version 1.32; 2013-09-03
|
|
|
|
* bugfix: don't get confused by a deleted stash when generating
|
|
stack trace
|
|
|
|
* bugfix: don't vivify @CARP_NOT and @ISA in caller's namespace
|
|
|
|
* bugfix: don't generate Unicode warnings on old perls when an argument
|
|
in a stack trace contains a non-character codepoint
|
|
|
|
* in stack traces, consistently quote string arguments
|
|
|
|
* in stack traces, new hookable mechanism for formatting reference
|
|
arguments
|
|
|
|
* document exportable subroutines longmess() and shortmess()
|
|
|
|
* if Carp::Heavy gets loaded by a mismatched Carp (especially an
|
|
older one that expects Carp::Heavy to do real work), give a useful
|
|
error message
|
|
|
|
* when truncating an argument list in a stack trace, don't format the
|
|
arguments that got truncated
|
|
|
|
* factor out non-vivifying subroutine lookup
|
|
|
|
* regularise test for vivification of B::
|
|
|
|
* in tests, avoid using package name "B" when not actually testing
|
|
things relating to the B module
|
|
|
|
version 1.26; 2012-06-18
|
|
|
|
* bugfix: get ", <fh> line 123" phrase from CORE::die, not allowing
|
|
influence by any CORE::GLOBAL::die override, so that Carp can be
|
|
used as part of a CORE::GLOBAL::die override
|
|
|
|
* on VMS, skip some tests that rely on open3() which doesn't work
|
|
there yet
|
|
|
|
version 1.25; 2012-02-16
|
|
|
|
* bugfix: avoid failure to export to very old (Perl 5.6) versions of
|
|
warnings.pm, which could occur due to circular dependency
|
|
|
|
* bugfix: avoid vivifying "utf8" stash on Perl 5.6, which caused swash
|
|
loading to fail in some situations
|
|
|
|
* add dot to end of message from Carp, to match the formatting from
|
|
CORE::die
|
|
|
|
* synch Carp::Heavy version number to Carp
|
|
|
|
version 1.24; 2012-02-02
|
|
|
|
* add ", <fh> line 123" phrase to messages, to match core die
|
|
|
|
version 1.23; 2011-09-09
|
|
|
|
* bugfix: make Carp::Heavy load Carp, as it used to prior to 1.22,
|
|
for backward compatibility
|
|
|
|
* avoid " in Carp.t test programs, which caused false failures on
|
|
Win32 due to faulty system()
|
|
|
|
version 1.22; 2011-09-04
|
|
|
|
* first CPAN release
|