1 Revision history for indirect
3 0.25 2011-08-24 15:40 UTC
4 + Fix : RT #69291 is now also fixed for perl 5.8. The pragma will no
5 longer vivify the "indirect" entry in the hints hash %^H on
7 + Tst : Attempt to make t/50-external.t pass on Cygwin.
9 0.24 2011-07-17 23:15 UTC
10 + Fix : [RT #64521] : "no indirect" leaking into eval.
11 This is currently only fixed for perl 5.10 (perl 5.12 and
12 higher were never affected). It was caused by a very stupid
13 mistake of mine that was introduced in indirect version 0.23.
14 Thanks Michael G Schwern for reporting.
15 + Fix : [RT #69291] : indirect.pm breaks %^H.
16 This was caused by the same mistake as for the previous bug,
17 and as such it is also only fixed for perl 5.10 (and never
19 Thanks Andrew Main for reporting.
20 + Doc : C++ compilers are officially NOT supported.
22 0.23 2010-10-03 00:15 UTC
23 + Fix : Some indirect constructs could be incorrectly reported when
24 several modules were used in the same scope. This caused
25 t/30-scope.t to fail randomly.
26 + Tst : Threads tests are now only run on perl 5.13.4 and higher.
27 They could segfault randomly because of what seems to be an
28 internal bug of Perl, which has been addressed in 5.13.4.
29 There is also an environment variable that allows you to
30 forcefully run those tests, but it should be set only for
31 author testing and not for end users.
33 0.22 2010-08-16 16:00 UTC
34 + Add : Indirect constructs are now reported for code interpolated
35 in quote-like environments, like "${\( ... )}", "@{[ ... ]}",
36 s/pattern/ ... /e, qr/(?{ ... })/ or qr/(??{ ... })/.
37 + Add : You can now make the pragma lethal by passing anything matching
38 /^:?fatal$/i to import(), including "FATAL" and ":Fatal".
39 + Fix : [RT #60378] : segmentation fault on indirect_ck_method.
40 This caused constructs like "@{[ $obj->$meth ]}" to segfault
41 when $meth was a lexical.
42 Thanks Tokuhiro Matsuno for reporting.
44 0.21 2010-05-31 23:10 UTC
45 + Chg : perl 5.8.1 is now required (instead of 5.8.0).
46 + Fix : [RT #57699] : indirect fail with 64-bit int on 5.13.1.
47 It was actually a problem with thread destructors segfaulting
48 because they weren't called at the right time anymore.
49 Thanks Andrew Main for reporting.
50 + Tst : A few more regression tests about the scope leak bug.
52 0.20 2010-04-18 21:25 UTC
53 + Fix : [RT #50570] : "indirect" leaking into LWP.
54 Thanks Andrew Main for reporting.
55 More generally, the require propagation workaround on 5.8-5.10.0
56 has been overhauled, and other scope leaks should be fixed.
57 + Fix : Test failures with 5.12 on Windows where Strawberry Perl crashes
58 because the SystemRoot environment variable is missing.
59 + Fix : Work around Kwalitee test misfailures.
61 0.19 2009-08-28 18:40 UTC
62 + Add : The new constant I_FORKSAFE can be tested to know whether the
63 module will behave nicely when fork()ing. It's currently always
64 true except on Windows where you need perl 5.10.1 for it to be
66 + Fix : I_THREADSAFE and I_FORKSAFE ought to be true when
67 PERL_INDIRECT_PM_DISABLE is set.
68 + Fix : The pragma could still leak if you passed to the "hook" option
69 a reference to the same (named) subroutine from two different
70 require scopes. The fix also provides a better solution for
72 + Fix : Segfaults when indirect is loaded for the first time from
74 + Fix : Leaks of memory associated with the root interpreter.
75 + Opt : Less memory will be used for non-threaded perls version 5.10.0
76 and below, and for threaded perls from version 5.10.1.
78 0.18 2009-08-23 16:15 UTC
79 + Add : When set, the PERL_INDIRECT_PM_DISABLE environment variable
80 disables the pragma globally.
82 0.17 2009-07-16 12:10 UTC
83 + Fix : [RT #47902] : "no indirect" leaking again.
84 This actually turned out to be a bug in how the hook coderefs
85 were stored in the hints hash.
86 Thanks Andrew Main for reporting once again.
87 + Fix : t/80-regressions.t failing on Windows.
88 + Tst : Yet more cleanups.
90 0.16 2009-07-14 16:50 UTC
91 + Add : Indirect calls on blocks are now reported. For those, '{' is
92 passed to the hook as the object description.
93 + Add : The new indirect::msg() function publicizes the default
94 warning/exception message.
95 + Fix : [RT #47866] : Segfault with UTF-8 regexps.
96 Thanks Andrew Main for reporting.
99 0.15 2009-07-08 22:55 UTC
100 + Fix : Invalid constructs with the same method and package name were
102 + Fix : The error line number used to point to the end of the expression
103 instead of its beginning.
105 0.14 2009-06-04 21:55 UTC
106 + Fix : Prevent bogus invalid syntaxes caused by reallocated memory
107 chunks. Thanks Andrew Main for reporting with a reproducible
110 0.13 2009-05-24 18:50 UTC
111 + Add : The hook now receives the file name and the line where the
112 error happened in respectively $_[2] and $_[3].
113 + Fix : Pass mortalized copies of the method name and object to the
114 hook. This seems to fix some rare crashes.
115 + Fix : Work around a bug in perl 5.10.0 and lower. Thanks Andrew Main
116 for teaching me about this issue.
117 + Fix : Report the correct file in error messages (a regression from the
120 0.12 2009-05-03 14:30 UTC
121 + Add : You can specify the action to execute for each indirect
122 construct encountered with the new "hook => $coderef" unimport()
124 + Chg : A ptable is now used internally for the op => position mapping.
125 + Fix : The pragma is now built with thread safety features enabled
126 whenever possible (a notable exception is perl 5.8.x on Win32,
127 as something seems wrong with its context handling).
128 The new indirect::I_THREADSAFE() constant reflects this.
129 + Fix : A negation precedence nit in indirect_ck_entersub().
130 + Tst : "use/no indirect" while parsing an indirect construct.
131 + Tst : Thread safety.
133 0.11 2009-02-08 18:35 UTC
134 + Fix : Potential collisions by hashing pointers with a wrong format.
135 + Upd : Resources in META.yml.
137 0.10 2009-01-17 12:40 UTC
138 Re-release 0.09_01 as stable.
140 0.09_01 2008-12-08 17:55 UTC
141 + Fix : Invalid memory read with "${\(new Foo)}" constructs. The
142 corresponding test is turned back on.
143 + Tst : Refinements in t/30-scope.t
145 0.09 2008-12-05 20:35 UTC
146 + Add : Support for perl 5.8.
147 + Tst : Skip a test in t/10-good.t that randomly segfaults for (I guess)
148 systems stricter than linux in the way they manage their memory.
150 0.08 2008-10-22 14:45 UTC
151 + Fix : A rare edge case for package whose names are prefix of 'main'.
152 + Tst : Test $$ as variable and state variables.
154 0.07_03 2008-10-17 20:10 UTC
155 + Add : Support and tests for variables with spaces after the sigil.
156 + Upd : META.yml spec updated to 1.4.
158 0.07_02 2008-10-15 21:10 UTC
159 + Add : Support and tests for package variables.
160 + Tst : Coverage improved by removing dead code.
162 0.07_01 2008-10-15 16:00 UTC
163 + Fix : [RT #40055] : Not handling RV2SV => GV(SV) correctly, which
164 could cause 'no indirect; print' segfaults. Thanks Goro Fuji for
167 0.06 2008-10-11 16:45 UTC
169 + Tst : Test "no indirect 'anything'", "foo Class->bar", and indirect
170 uses of exec() and system().
172 0.05 2008-10-02 14:40 UTC
173 + Chg : Now the old check function is always called before storing an op
175 + Fix : Misc code and docs refinements.
177 0.04 2008-08-30 19:00 UTC
178 + Fix : Clean up the op->src hash when we're done with an entersub.
179 + Tst : No longer fork for testing. IPC::Cmd isn't required anymore.
181 0.03 2008-08-12 15:25 UTC
182 This release is kindly supported by Copenhagen Hotel Centrum WiFi.
183 + Fix : Tests used not to pass PERL5OPTS to their kids. This lead to
184 failures under CPAN. I think.
187 0.02 2008-08-11 15:55 UTC
188 + Fix : Some building failures with old gcc versions that didn't seem to
189 like the ((hint == 2) ? croak : warn)(msg) construct. I think.
190 + Rem : Unused cruft from a previous implementation.
191 + Tst : Fail more gracefully when we can't capture buffers or when the
192 child returned an error.
194 0.01 2008-08-10 20:40 UTC
195 First version, released on an unsuspecting world.