]> git.vpit.fr Git - perl/modules/indirect.git/blob - Changes
ebc48f3df96d50c01b271201ff9596aaae21fbdf
[perl/modules/indirect.git] / Changes
1 Revision history for indirect
2
3 0.35    2015-04-06 22:20 UTC
4         + Fix : The module could end being disabled in one thread if it was
5                 first loaded in another thread and that thread was immediately
6                 terminated. This is now fixed and should address test failures
7                 of t//09-load-threads.t and t/42-threads-global.t.
8
9 0.34    2015-04-02 19:50 UTC
10         + Chg : The new environment variable to enable thread tests on older
11                 perls is PERL_FORCE_TEST_THREADS. Note that this variable
12                 should only be turned on by authors.
13         + Fix : [RT #100068] : add link to historical tchrist post
14                 The link has been added to the documentation. Thanks Olivier
15                 MenguĂ© for reporting.
16         + Fix : Segfaults when the module is loaded by several threads (or
17                 Windows emulated processes) ran in parallel.
18         + Fix : Update the Windows ActivePerl + gcc 3.4 workaround for
19                 ExtUtils::MakeMaker 7.04. Thanks Christian Walde for reporting
20                 and feedback on this issue.
21         + Fix : Be really compatible with the optional OP_PARENT feature.
22         + Tst : $ENV{$Config{ldlibpthname}} is now preserved on all platforms,
23                 which will address failures of t/41-threads-teardown.t and
24                 t/50-external.t with unusual compilers (like icc) that link all
25                 their compiled objects to their own libraries.
26
27 0.33    2014-09-29 20:20 UTC
28         + Fix : [RT #99083] : Breaks eval in an END block in Win32 pseudo-forks.
29                 Thanks Graham Knop for reporting.
30         + Fix : Segfaults during global destruction of a thread or a
31                 pseudo-fork.
32
33 0.32    2014-09-21 20:15 UTC
34         + Add : Support for the PERL_OP_PARENT optional feature introduced in
35                 perl 5.21.2.
36         + Fix : [RT #92806] : Tests that use run_perl() fail on Android
37                 Thanks Brian Fraser for the patch.
38         + Fix : indirect constructs will no longer segfault while inside
39                 the empty package on perl 5.8.x. This fix may also prevent
40                 some segfaults during global destruction.
41
42 0.31    2013-09-05 16:45 UTC
43         + Fix : [RT #88428] : no indirect in eval can trigger for direct calls
44                 on __PACKAGE__
45                 Thanks Graham Knop for reporting.
46         + Tst : Author tests are no longer bundled with this distribution.
47                 They are only made available to authors in the git repository.
48
49 0.30    2013-05-16 15:55 UTC
50         + Fix : [RT #83806] : false positives with Devel::Declare
51                 [RT #83839] : false positive using ? : syntax
52                 Thanks Andrew Main for the patch.
53                 However, please note that the reason this patch seems to fix
54                 thinks has not been explained.
55         + Fix : [RT #84649] : incorrect RT link in metadata
56                 Thanks Karen Etheridge for reporting.
57
58 0.29    2013-03-05 01:30 UTC
59         + Fix : [RT #83659] : false positives
60                 Proper method calls in string-like environments (like
61                 "@{[ $x->new ]}" will no longer be reported as indirect.
62                 This was a regression in 0.28.
63                 Thanks Andrew Main for reporting.
64         + Fix : Broken linkage on Windows with gcc 3.4, which appears in
65                 particular when using ActivePerl's default compiler suite.
66                 For those setups, the indirect shared library will now be
67                 linked against the perl dll directly (instead of the import
68                 library).
69
70 0.28    2013-02-26 17:05 UTC
71         + Fix : [RT #83450] : newlines confuse indirect
72                 Perl sometimes resets the line buffer between the object and
73                 the method name (e.g. for "sort Class\n->method" outside of
74                 eval), and this could cause direct method calls to be reported
75                 as indirect.
76                 Thanks Gianni Ceccarelli for reporting.
77         + Fix : Check functions are now replaced and restored in a thread-safe
78                 manner, either by using the wrap_op_checker() function from perl
79                 when it is available (starting from perl 5.16) or by taking the
80                 OP_REFCNT mutex on older perls.
81
82 0.27    2013-01-30 19:00 UTC
83         + Fix : [RT #82562] : indirect/Devel::CallParser interaction
84                 indirect has been taught to play nicely with Devel::CallParser.
85                 Thanks Andrew Main for the patch.
86         + Tst : Author tests overhaul.
87
88 0.26    2011-10-23 14:25 UTC
89         + Add : "no indirect 'global'" enables the pragma for the whole program,
90                 except for lexical scopes that "use indirect" explicitely.
91         + Chg : Passing both the 'fatal' and 'hook' options to unimport() is
92                 now considered an error, and will result in an exception.
93                 unimport() used to consider only the first passed option of
94                 those two, and silently ignored the other.
95         + Tst : Test failures of t/41-threads-teardown.t and t/50-external.t on
96                 Cygwin should have been addressed.
97         + Tst : Threads tests will not fail anymore if resources constraints
98                 prevent the system from creating all the required threads.
99
100 0.25    2011-08-24 15:40 UTC
101         + Fix : RT #69291 is now also fixed for perl 5.8. The pragma will no
102                 longer vivify the "indirect" entry in the hints hash %^H on
103                 perl 5.8.
104         + Tst : Attempt to make t/50-external.t pass on Cygwin.
105
106 0.24    2011-07-17 23:15 UTC
107         + Fix : [RT #64521] : "no indirect" leaking into eval.
108                 This is currently only fixed for perl 5.10 (perl 5.12 and
109                 higher were never affected). It was caused by a very stupid
110                 mistake of mine that was introduced in indirect version 0.23.
111                 Thanks Michael G Schwern for reporting.
112         + Fix : [RT #69291] : indirect.pm breaks %^H.
113                 This was caused by the same mistake as for the previous bug,
114                 and as such it is also only fixed for perl 5.10 (and never
115                 affected perl 5.12).
116                 Thanks Andrew Main for reporting.
117         + Doc : C++ compilers are officially NOT supported.
118
119 0.23    2010-10-03 00:15 UTC
120         + Fix : Some indirect constructs could be incorrectly reported when
121                 several modules were used in the same scope. This caused
122                 t/30-scope.t to fail randomly.
123         + Tst : Threads tests are now only run on perl 5.13.4 and higher.
124                 They could segfault randomly because of what seems to be an
125                 internal bug of Perl, which has been addressed in 5.13.4.
126                 There is also an environment variable that allows you to
127                 forcefully run those tests, but it should be set only for
128                 author testing and not for end users.
129
130 0.22    2010-08-16 16:00 UTC
131         + Add : Indirect constructs are now reported for code interpolated
132                 in quote-like environments, like "${\( ... )}", "@{[ ... ]}",
133                 s/pattern/ ... /e, qr/(?{ ... })/ or qr/(??{ ... })/.
134         + Add : You can now make the pragma lethal by passing anything matching
135                 /^:?fatal$/i to import(), including "FATAL" and ":Fatal".
136         + Fix : [RT #60378] : segmentation fault on indirect_ck_method.
137                 This caused constructs like "@{[ $obj->$meth ]}" to segfault
138                 when $meth was a lexical.
139                 Thanks Tokuhiro Matsuno for reporting.
140
141 0.21    2010-05-31 23:10 UTC
142         + Chg : perl 5.8.1 is now required (instead of 5.8.0).
143         + Fix : [RT #57699] : indirect fail with 64-bit int on 5.13.1.
144                 It was actually a problem with thread destructors segfaulting
145                 because they weren't called at the right time anymore.
146                 Thanks Andrew Main for reporting.
147         + Tst : A few more regression tests about the scope leak bug.
148
149 0.20    2010-04-18 21:25 UTC
150         + Fix : [RT #50570] : "indirect" leaking into LWP.
151                 Thanks Andrew Main for reporting.
152                 More generally, the require propagation workaround on 5.8-5.10.0
153                 has been overhauled, and other scope leaks should be fixed.
154         + Fix : Test failures with 5.12 on Windows where Strawberry Perl crashes
155                 because the SystemRoot environment variable is missing.
156         + Fix : Work around Kwalitee test misfailures.
157
158 0.19    2009-08-28 18:40 UTC
159         + Add : The new constant I_FORKSAFE can be tested to know whether the
160                 module will behave nicely when fork()ing. It's currently always
161                 true except on Windows where you need perl 5.10.1 for it to be
162                 true.
163         + Fix : I_THREADSAFE and I_FORKSAFE ought to be true when
164                 PERL_INDIRECT_PM_DISABLE is set.
165         + Fix : The pragma could still leak if you passed to the "hook" option
166                 a reference to the same (named) subroutine from two different
167                 require scopes. The fix also provides a better solution for
168                 RT #47902.
169         + Fix : Segfaults when indirect is loaded for the first time from
170                 inside a thread.
171         + Fix : Leaks of memory associated with the root interpreter.
172         + Opt : Less memory will be used for non-threaded perls version 5.10.0
173                 and below, and for threaded perls from version 5.10.1.
174
175 0.18    2009-08-23 16:15 UTC
176         + Add : When set, the PERL_INDIRECT_PM_DISABLE environment variable
177                 disables the pragma globally.
178
179 0.17    2009-07-16 12:10 UTC
180         + Fix : [RT #47902] : "no indirect" leaking again.
181                 This actually turned out to be a bug in how the hook coderefs
182                 were stored in the hints hash.
183                 Thanks Andrew Main for reporting once again.
184         + Fix : t/80-regressions.t failing on Windows.
185         + Tst : Yet more cleanups.
186
187 0.16    2009-07-14 16:50 UTC
188         + Add : Indirect calls on blocks are now reported. For those, '{' is
189                 passed to the hook as the object description.
190         + Add : The new indirect::msg() function publicizes the default
191                 warning/exception message.
192         + Fix : [RT #47866] : Segfault with UTF-8 regexps.
193                 Thanks Andrew Main for reporting.
194         + Tst : Cleanups.
195
196 0.15    2009-07-08 22:55 UTC
197         + Fix : Invalid constructs with the same method and package name were
198                 not reported.
199         + Fix : The error line number used to point to the end of the expression
200                 instead of its beginning.
201
202 0.14    2009-06-04 21:55 UTC
203         + Fix : Prevent bogus invalid syntaxes caused by reallocated memory
204                 chunks. Thanks Andrew Main for reporting with a reproducible
205                 test case.
206
207 0.13    2009-05-24 18:50 UTC
208         + Add : The hook now receives the file name and the line where the
209                 error happened in respectively $_[2] and $_[3].
210         + Fix : Pass mortalized copies of the method name and object to the
211                 hook. This seems to fix some rare crashes.
212         + Fix : Work around a bug in perl 5.10.0 and lower. Thanks Andrew Main
213                 for teaching me about this issue.
214         + Fix : Report the correct file in error messages (a regression from the
215                 previous version).
216
217 0.12    2009-05-03 14:30 UTC
218         + Add : You can specify the action to execute for each indirect
219                 construct encountered with the new "hook => $coderef" unimport()
220                 option.
221         + Chg : A ptable is now used internally for the op => position mapping.
222         + Fix : The pragma is now built with thread safety features enabled
223                 whenever possible (a notable exception is perl 5.8.x on Win32,
224                 as something seems wrong with its context handling).
225                 The new indirect::I_THREADSAFE() constant reflects this.
226         + Fix : A negation precedence nit in indirect_ck_entersub().
227         + Tst : "use/no indirect" while parsing an indirect construct.
228         + Tst : Thread safety.
229
230 0.11    2009-02-08 18:35 UTC
231         + Fix : Potential collisions by hashing pointers with a wrong format.
232         + Upd : Resources in META.yml.
233
234 0.10    2009-01-17 12:40 UTC
235         Re-release 0.09_01 as stable.
236
237 0.09_01 2008-12-08 17:55 UTC
238         + Fix : Invalid memory read with "${\(new Foo)}" constructs. The
239                 corresponding test is turned back on.
240         + Tst : Refinements in t/30-scope.t
241
242 0.09    2008-12-05 20:35 UTC
243         + Add : Support for perl 5.8.
244         + Tst : Skip a test in t/10-good.t that randomly segfaults for (I guess)
245                 systems stricter than linux in the way they manage their memory.
246
247 0.08    2008-10-22 14:45 UTC
248         + Fix : A rare edge case for package whose names are prefix of 'main'.
249         + Tst : Test $$ as variable and state variables.
250
251 0.07_03 2008-10-17 20:10 UTC
252         + Add : Support and tests for variables with spaces after the sigil.
253         + Upd : META.yml spec updated to 1.4.
254
255 0.07_02 2008-10-15 21:10 UTC
256         + Add : Support and tests for package variables.
257         + Tst : Coverage improved by removing dead code.
258
259 0.07_01 2008-10-15 16:00 UTC
260         + Fix : [RT #40055] : Not handling RV2SV => GV(SV) correctly, which
261                 could cause 'no indirect; print' segfaults. Thanks Goro Fuji for
262                 reporting.
263
264 0.06    2008-10-11 16:45 UTC
265         + Doc : Nits.
266         + Tst : Test "no indirect 'anything'", "foo Class->bar", and indirect
267                 uses of exec() and system().
268
269 0.05    2008-10-02 14:40 UTC
270         + Chg : Now the old check function is always called before storing an op
271                 into the map.
272         + Fix : Misc code and docs refinements.
273
274 0.04    2008-08-30 19:00 UTC
275         + Fix : Clean up the op->src hash when we're done with an entersub.
276         + Tst : No longer fork for testing. IPC::Cmd isn't required anymore.
277
278 0.03    2008-08-12 15:25 UTC
279         This release is kindly supported by Copenhagen Hotel Centrum WiFi.
280         + Fix : Tests used not to pass PERL5OPTS to their kids. This lead to
281                 failures under CPAN. I think.
282         + Tst : Refinements.
283
284 0.02    2008-08-11 15:55 UTC
285         + Fix : Some building failures with old gcc versions that didn't seem to
286                 like the ((hint == 2) ? croak : warn)(msg) construct. I think.
287         + Rem : Unused cruft from a previous implementation.
288         + Tst : Fail more gracefully when we can't capture buffers or when the
289                 child returned an error.
290
291 0.01    2008-08-10 20:40 UTC
292         First version, released on an unsuspecting world.
293