Revision history for indirect
+0.27 2013-01-30 19:00 UTC
+ + Fix : [RT #82562] : indirect/Devel::CallParser interaction
+ indirect has been taught to play nicely with Devel::CallParser.
+ Thanks Andrew Main for the patch.
+ + Tst : Author tests overhaul.
+
+0.26 2011-10-23 14:25 UTC
+ + Add : "no indirect 'global'" enables the pragma for the whole program,
+ except for lexical scopes that "use indirect" explicitely.
+ + Chg : Passing both the 'fatal' and 'hook' options to unimport() is
+ now considered an error, and will result in an exception.
+ unimport() used to consider only the first passed option of
+ those two, and silently ignored the other.
+ + Tst : Test failures of t/41-threads-teardown.t and t/50-external.t on
+ Cygwin should have been addressed.
+ + Tst : Threads tests will not fail anymore if resources constraints
+ prevent the system from creating all the required threads.
+
+0.25 2011-08-24 15:40 UTC
+ + Fix : RT #69291 is now also fixed for perl 5.8. The pragma will no
+ longer vivify the "indirect" entry in the hints hash %^H on
+ perl 5.8.
+ + Tst : Attempt to make t/50-external.t pass on Cygwin.
+
+0.24 2011-07-17 23:15 UTC
+ + Fix : [RT #64521] : "no indirect" leaking into eval.
+ This is currently only fixed for perl 5.10 (perl 5.12 and
+ higher were never affected). It was caused by a very stupid
+ mistake of mine that was introduced in indirect version 0.23.
+ Thanks Michael G Schwern for reporting.
+ + Fix : [RT #69291] : indirect.pm breaks %^H.
+ This was caused by the same mistake as for the previous bug,
+ and as such it is also only fixed for perl 5.10 (and never
+ affected perl 5.12).
+ Thanks Andrew Main for reporting.
+ + Doc : C++ compilers are officially NOT supported.
+
+0.23 2010-10-03 00:15 UTC
+ + Fix : Some indirect constructs could be incorrectly reported when
+ several modules were used in the same scope. This caused
+ t/30-scope.t to fail randomly.
+ + Tst : Threads tests are now only run on perl 5.13.4 and higher.
+ They could segfault randomly because of what seems to be an
+ internal bug of Perl, which has been addressed in 5.13.4.
+ There is also an environment variable that allows you to
+ forcefully run those tests, but it should be set only for
+ author testing and not for end users.
+
+0.22 2010-08-16 16:00 UTC
+ + Add : Indirect constructs are now reported for code interpolated
+ in quote-like environments, like "${\( ... )}", "@{[ ... ]}",
+ s/pattern/ ... /e, qr/(?{ ... })/ or qr/(??{ ... })/.
+ + Add : You can now make the pragma lethal by passing anything matching
+ /^:?fatal$/i to import(), including "FATAL" and ":Fatal".
+ + Fix : [RT #60378] : segmentation fault on indirect_ck_method.
+ This caused constructs like "@{[ $obj->$meth ]}" to segfault
+ when $meth was a lexical.
+ Thanks Tokuhiro Matsuno for reporting.
+
+0.21 2010-05-31 23:10 UTC
+ + Chg : perl 5.8.1 is now required (instead of 5.8.0).
+ + Fix : [RT #57699] : indirect fail with 64-bit int on 5.13.1.
+ It was actually a problem with thread destructors segfaulting
+ because they weren't called at the right time anymore.
+ Thanks Andrew Main for reporting.
+ + Tst : A few more regression tests about the scope leak bug.
+
+0.20 2010-04-18 21:25 UTC
+ + Fix : [RT #50570] : "indirect" leaking into LWP.
+ Thanks Andrew Main for reporting.
+ More generally, the require propagation workaround on 5.8-5.10.0
+ has been overhauled, and other scope leaks should be fixed.
+ + Fix : Test failures with 5.12 on Windows where Strawberry Perl crashes
+ because the SystemRoot environment variable is missing.
+ + Fix : Work around Kwalitee test misfailures.
+
+0.19 2009-08-28 18:40 UTC
+ + Add : The new constant I_FORKSAFE can be tested to know whether the
+ module will behave nicely when fork()ing. It's currently always
+ true except on Windows where you need perl 5.10.1 for it to be
+ true.
+ + Fix : I_THREADSAFE and I_FORKSAFE ought to be true when
+ PERL_INDIRECT_PM_DISABLE is set.
+ + Fix : The pragma could still leak if you passed to the "hook" option
+ a reference to the same (named) subroutine from two different
+ require scopes. The fix also provides a better solution for
+ RT #47902.
+ + Fix : Segfaults when indirect is loaded for the first time from
+ inside a thread.
+ + Fix : Leaks of memory associated with the root interpreter.
+ + Opt : Less memory will be used for non-threaded perls version 5.10.0
+ and below, and for threaded perls from version 5.10.1.
+
+0.18 2009-08-23 16:15 UTC
+ + Add : When set, the PERL_INDIRECT_PM_DISABLE environment variable
+ disables the pragma globally.
+
+0.17 2009-07-16 12:10 UTC
+ + Fix : [RT #47902] : "no indirect" leaking again.
+ This actually turned out to be a bug in how the hook coderefs
+ were stored in the hints hash.
+ Thanks Andrew Main for reporting once again.
+ + Fix : t/80-regressions.t failing on Windows.
+ + Tst : Yet more cleanups.
+
+0.16 2009-07-14 16:50 UTC
+ + Add : Indirect calls on blocks are now reported. For those, '{' is
+ passed to the hook as the object description.
+ + Add : The new indirect::msg() function publicizes the default
+ warning/exception message.
+ + Fix : [RT #47866] : Segfault with UTF-8 regexps.
+ Thanks Andrew Main for reporting.
+ + Tst : Cleanups.
+
+0.15 2009-07-08 22:55 UTC
+ + Fix : Invalid constructs with the same method and package name were
+ not reported.
+ + Fix : The error line number used to point to the end of the expression
+ instead of its beginning.
+
+0.14 2009-06-04 21:55 UTC
+ + Fix : Prevent bogus invalid syntaxes caused by reallocated memory
+ chunks. Thanks Andrew Main for reporting with a reproducible
+ test case.
+
0.13 2009-05-24 18:50 UTC
+ Add : The hook now receives the file name and the line where the
error happened in respectively $_[2] and $_[3].