1.15 Apr 28, 2007
- Changed how objects are created in order to greatly speed up the
constructor. Instead of processing all the stack trace data when the
object is first created, this is delayed until it is needed. This
was done in order to help speed up Exception::Class. There are cases
where code may be throwing many exceptions but never examining the
stack traces.
Here is a representative benchmark of object construction for the
old code versus the new code:
Rate old new
old 1764/s -- -76%
new 7353/s 317% --
1.14 Mar 16, 2007
- Added a few micro-optimizations from Ruslan Zakirov, who is hoping
this will ultimately help speed up RT.
1.13 Apr 1, 2006
- Add another fix for filename handling in the tests. Tests were
giving false failures on Win32 because the tests needed to use
File::Spec->canonpath(), just like Devel::StackTrace does internally.
developer is officially maintaining the package.
The rationale for changing this from "tech-pkg" to "pkgsrc-users" is
that it implies that any user can try to maintain the package (by
submitting patches to the mailing list). Since the folks most likely
to care about the package are the folks that want to use it or are
already using it, this would leverage the energy of users who aren't
developers.
1.12 Sep 30, 2005
- Newer versions of Perl use Unix-style filenames when reporting the
filename in caller(), which breaks Exception::Class tests on other
platforms, and is just kind of funky. This module now calls
File::Spec->canonpath() to clean up the filename in each frame.
Reported by Garret Goebel.
module directory has changed (eg. "darwin-2level" vs.
"darwin-thread-multi-2level").
binary packages of perl modules need to be distinguishable between
being built against threaded perl and unthreaded perl, so bump the
PKGREVISION of all perl module packages and introduce
BUILDLINK_RECOMMENDED for perl as perl>=5.8.5nb5 so the correct
dependencies are registered and the binary packages are distinct.
addresses PR pkg/28619 from H. Todd Fujinaka.
1.11 Apr 12, 2004
- No code changes, just switching to including a Makefile.PL that uses
ExtUtils::MakeMaker instead of one that sneakily uses Module::Build.
Requested by Perrin Harkins.
1.10 Mar 10, 2004
- Silence a warning from the test code if Exception::Class isn't
installed. Reported by Stefano Ruberti.
- Localize $@ to avoid overwriting a previously set $@ while creating
a Devel::StackTrace object. This caused a test failure in the
Exception::Class tests when run with Perl 5.6.1, but not with 5.8.3.
I don't really know how to test for it outside of Exception::Class.
Reported by Jesse Erlbaum.
1.09 Feb 26, 2004
- The overload workaround blows up if a DBI handle is anywhere in the
stack, because of a bad interaction between overload::Overloaded and
DBI's custom dispatching. This release works around that.
1.08 Feb 23, 2004
- Some tests failed on Win32 because they were hardcoded to expect a
file name with forward slashes. Reported by Steve Hay.
1.07 Feb 21, 2004
- This release includes a change to the overload handling that is
necessary for cooperation with Exception::Class.
1.06 Feb 21, 2004
- Devel::StackTrace now uses overload::StrVal() to get the underlying
string value of an overloaded object when creating a stack frame for
display. This can be turned off by setting respect_overload to a true
value. Suggested by Matt Sisk.
1.05 Feb 17, 2004
- Devel::StackTrace incorrectly reported that arguments were being
passed to eval blocks (which isn't possible). Reported by Mark Dedlow.
1.04 Sep 25, 2003
- The special handling of Exception::Class::Base objects was broken.
This was exposed by the fact that Exception::Class 1.15 now uses
Devel::StackTrace in a slightly different way than it did previously.
1.03 Jan 22, 2003
- Special handling of Exception::Class::Base objects when stringifying
references. This avoids infinite recursion between the two classes.
Requested by p5-Exception-Class package (hi he!).
The Devel::StackTrace module contains two classes, Devel::StackTrace and
Devel::StackTraceFrame. The goal of this object is to encapsulate the
information that can found through using the caller() function, as well
as providing a simple interface to this data.