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