X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2Findirect.git;a=blobdiff_plain;f=Changes;h=f35c85441f0e9a7055cc67aeceb9dcb440c4f2d6;hp=2685a34da7e5974c96fcf9b5eaf9d3f8b1af62db;hb=66fbc02a67af759ab45aef7e8c6ac5d659551311;hpb=79fe38872567977419089da38eac9406bf2d4afa diff --git a/Changes b/Changes index 2685a34..f35c854 100644 --- a/Changes +++ b/Changes @@ -1,5 +1,269 @@ Revision history for indirect +0.33 2014-09-29 20:20 UTC + + Fix : [RT #99083] : Breaks eval in an END block in Win32 pseudo-forks. + Thanks Graham Knop for reporting. + + Fix : Segfaults during global destruction of a thread or a + pseudo-fork. + +0.32 2014-09-21 20:15 UTC + + Add : Support for the PERL_OP_PARENT optional feature introduced in + perl 5.21.2. + + Fix : [RT #92806] : Tests that use run_perl() fail on Android + Thanks Brian Fraser for the patch. + + Fix : indirect constructs will no longer segfault while inside + the empty package on perl 5.8.x. This fix may also prevent + some segfaults during global destruction. + +0.31 2013-09-05 16:45 UTC + + Fix : [RT #88428] : no indirect in eval can trigger for direct calls + on __PACKAGE__ + Thanks Graham Knop for reporting. + + Tst : Author tests are no longer bundled with this distribution. + They are only made available to authors in the git repository. + +0.30 2013-05-16 15:55 UTC + + Fix : [RT #83806] : false positives with Devel::Declare + [RT #83839] : false positive using ? : syntax + Thanks Andrew Main for the patch. + However, please note that the reason this patch seems to fix + thinks has not been explained. + + Fix : [RT #84649] : incorrect RT link in metadata + Thanks Karen Etheridge for reporting. + +0.29 2013-03-05 01:30 UTC + + Fix : [RT #83659] : false positives + Proper method calls in string-like environments (like + "@{[ $x->new ]}" will no longer be reported as indirect. + This was a regression in 0.28. + Thanks Andrew Main for reporting. + + Fix : Broken linkage on Windows with gcc 3.4, which appears in + particular when using ActivePerl's default compiler suite. + For those setups, the indirect shared library will now be + linked against the perl dll directly (instead of the import + library). + +0.28 2013-02-26 17:05 UTC + + Fix : [RT #83450] : newlines confuse indirect + Perl sometimes resets the line buffer between the object and + the method name (e.g. for "sort Class\n->method" outside of + eval), and this could cause direct method calls to be reported + as indirect. + Thanks Gianni Ceccarelli for reporting. + + Fix : Check functions are now replaced and restored in a thread-safe + manner, either by using the wrap_op_checker() function from perl + when it is available (starting from perl 5.16) or by taking the + OP_REFCNT mutex on older perls. + +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]. + + Fix : Pass mortalized copies of the method name and object to the + hook. This seems to fix some rare crashes. + + Fix : Work around a bug in perl 5.10.0 and lower. Thanks Andrew Main + for teaching me about this issue. + + Fix : Report the correct file in error messages (a regression from the + previous version). + +0.12 2009-05-03 14:30 UTC + + Add : You can specify the action to execute for each indirect + construct encountered with the new "hook => $coderef" unimport() + option. + + Chg : A ptable is now used internally for the op => position mapping. + + Fix : The pragma is now built with thread safety features enabled + whenever possible (a notable exception is perl 5.8.x on Win32, + as something seems wrong with its context handling). + The new indirect::I_THREADSAFE() constant reflects this. + + Fix : A negation precedence nit in indirect_ck_entersub(). + + Tst : "use/no indirect" while parsing an indirect construct. + + Tst : Thread safety. + +0.11 2009-02-08 18:35 UTC + + Fix : Potential collisions by hashing pointers with a wrong format. + + Upd : Resources in META.yml. + +0.10 2009-01-17 12:40 UTC + Re-release 0.09_01 as stable. + +0.09_01 2008-12-08 17:55 UTC + + Fix : Invalid memory read with "${\(new Foo)}" constructs. The + corresponding test is turned back on. + + Tst : Refinements in t/30-scope.t + +0.09 2008-12-05 20:35 UTC + + Add : Support for perl 5.8. + + Tst : Skip a test in t/10-good.t that randomly segfaults for (I guess) + systems stricter than linux in the way they manage their memory. + +0.08 2008-10-22 14:45 UTC + + Fix : A rare edge case for package whose names are prefix of 'main'. + + Tst : Test $$ as variable and state variables. + +0.07_03 2008-10-17 20:10 UTC + + Add : Support and tests for variables with spaces after the sigil. + + Upd : META.yml spec updated to 1.4. + +0.07_02 2008-10-15 21:10 UTC + + Add : Support and tests for package variables. + + Tst : Coverage improved by removing dead code. + +0.07_01 2008-10-15 16:00 UTC + + Fix : [RT #40055] : Not handling RV2SV => GV(SV) correctly, which + could cause 'no indirect; print' segfaults. Thanks Goro Fuji for + reporting. + +0.06 2008-10-11 16:45 UTC + + Doc : Nits. + + Tst : Test "no indirect 'anything'", "foo Class->bar", and indirect + uses of exec() and system(). + +0.05 2008-10-02 14:40 UTC + + Chg : Now the old check function is always called before storing an op + into the map. + + Fix : Misc code and docs refinements. + +0.04 2008-08-30 19:00 UTC + + Fix : Clean up the op->src hash when we're done with an entersub. + + Tst : No longer fork for testing. IPC::Cmd isn't required anymore. + +0.03 2008-08-12 15:25 UTC + This release is kindly supported by Copenhagen Hotel Centrum WiFi. + + Fix : Tests used not to pass PERL5OPTS to their kids. This lead to + failures under CPAN. I think. + + Tst : Refinements. + +0.02 2008-08-11 15:55 UTC + + Fix : Some building failures with old gcc versions that didn't seem to + like the ((hint == 2) ? croak : warn)(msg) construct. I think. + + Rem : Unused cruft from a previous implementation. + + Tst : Fail more gracefully when we can't capture buffers or when the + child returned an error. + 0.01 2008-08-10 20:40 UTC First version, released on an unsuspecting world.