]> git.vpit.fr Git - perl/modules/Scope-Upper.git/blob - Changes
This is 0.34
[perl/modules/Scope-Upper.git] / Changes
1 Revision history for Scope-Upper
2
3 0.34    2023-03-26 16:00 UTC
4         + Add : Contributing guidelines are now listed in the new
5                 CONTRIBUTING file.
6         + Fix : [RT #146897] Scope::Upper does not know about RCPV
7                 cop_warnings, and does not know that given is deprecated.
8                 "given" related warnings were silenced, and the new RCPV
9                 interface is now used.
10                 Thanks Yves Orton for reporting and contributing a fix.
11         + Fix : Assertion failures triggering on perl version 5.37.10 and
12                 higher with DEBUGGING enabled.
13         + Fix : t/64-uplevel-caller.t has been taught about the new call frame
14                 numbering convention.
15
16 0.33    2021-12-20 20:30 UTC
17         + Fix : [RT #114816] resources/remote/url points to web interface
18                 META files now follow version 2.0 of the CPAN META spec.
19                 Thanks Kent Fredric for reporting.
20         + Fix : [RT #139823] : Perl 5 blead breads t/07-context_info.t
21                 t/07-context_info.t has been hardened against warning bits
22                 changes.
23                 Thanks Jim Keenan and Tony Cook for reporting and contributing
24                 a fix.
25
26 0.32    2019-07-08 12:50 UTC
27         + Fix : [RT #129539] : fails with v5.27.3 and later with DEBUGGING
28                 The module has been amended to accomodate with a change of
29                 behaviour of a core macro.
30         + Upd : Contact info.
31
32 0.31    2018-08-26 19:50 UTC
33         + Fix : [RT #125931] : localized SCALAR doesn't get imported
34                 localize '$Foo::x' => $var now properly imports $x into Foo.
35                 Thanks Vernon Lyon for reporting.
36
37 0.30    2017-11-04 15:55 UTC
38         + Fix : [RT #123481] : Compatibility with CV-in-stash optimisation
39                 Thanks Father Chrysostomos for reporting and contributing a
40                 patch.
41
42 0.29    2016-06-06 12:00 UTC
43         + Chg : A large chunk of boilerplate XS code, which is also used in
44                 other XS modules, has been factored out of the main .xs file
45                 to a collection of .h files in the xsh subdirectory.
46         + Fix : [RT #112246] : Blead breaks Scope::Upper
47                 Dave Mitchell provided a new implementation of reap(),
48                 localize_*() and uplevel() to match the new context stack
49                 handling in perl 5.24. Many thanks to him.
50
51 0.28    2015-08-18 15:00 UTC
52         + Chg : SUB() and EVAL() will now warn if they cannot find an
53                 appropriate context in the current stack. They will still
54                 return undef in this case, which is interpreted as the current
55                 context when combined with other words.
56         + Fix : [RT #104751] : Scope::Upper does not handle exotic stack types
57                 Trying to target a scope above the current perl scope will now
58                 result in a warning. In that case, the topmost context in the
59                 current stack will still be returned.
60                 Thanks Rafaël Garcia-Suarez for the report.
61         + Fix : Test failures of threads tests on systems with harsh resource
62                 constraints causing the threads to exit() during run.
63         + Opt : Some internal structures were shrunk, resulting in memory
64                 savings and small speedups.
65
66 0.27    2015-03-27 22:10 UTC
67         + Chg : The new environment variable to enable thread tests on older
68                 perls is PERL_FORCE_TEST_THREADS. Note that this variable
69                 should only be turned on by authors.
70         + Fix : Segfaults when the module is loaded by several threads (or
71                 Windows emulated processes) ran in parallel.
72         + Fix : Memory leak with the uid() feature.
73         + Fix : Update the Windows ActivePerl + gcc 3.4 workaround for
74                 ExtUtils::MakeMaker 7.04. Thanks Christian Walde for reporting
75                 and feedback on this issue.
76         + Fix : reap(), localize(), localize_elem() and localize_delete()
77                 will again work correctly on perl 5.19.4+ when the debugger
78                 is enabled.
79         + Fix : Silence some compiler warnings.
80
81 0.26    2015-03-12 23:30 UTC
82         + Fix : [RT #100264] : Don't use CvPADLIST on XSUBs
83                 Thanks Father Chrysostomos for reporting and contributing a
84                 patch.
85         + Fix : Be really compatible with the optional OP_PARENT feature.
86
87 0.25    2014-09-21 17:10 UTC
88         + Add : Support for the PERL_OP_PARENT optional feature introduced in
89                 perl 5.21.2.
90         + Fix : Work around an assertion failure in perl 5.21.4.
91
92 0.24    2013-09-10 11:10 UTC
93         + Fix : Lexicals returned with unwind(), yield() and leave() will no
94                 longer be lost on perl 5.19.4 and above.
95
96 0.23    2013-09-02 11:30 UTC
97         This is a maintenance release. The code contains no functional change.
98         Satisfied users of version 0.22 can skip this update.
99         + Fix : [RT #87178] : typo fixes.
100                 Thanks dsteinbrunner@pobox.com for the patch.
101         + Fix : [RT #88177] : 5.19.3 block hint test breakage
102                 t/07-context_info.t has been taught about perl 5.19.3.
103                 Thanks Andrew Main for the patch.
104         + Tst : Author tests are no longer bundled with this distribution.
105                 They are only made available to authors in the git repository.
106         + Tst : "given is experimental" warnings when running tests on perl
107                 5.18 and above have been silenced.
108
109 0.22    2013-01-30 23:35 UTC
110         + Chg : perl 5.6.1 is required.
111         + Fix : context_info() now ignores %warnings::Bits for perl 5.8.6 and
112                 below, just like caller().
113         + Fix : [RT #82220] : Scope-Upper-0.21 test stuck on Windows perl 5.12.3
114                 t/93-pod-spelling.t will not crash anymore on perl 5.12 and
115                 below.
116                 Thanks Gabor Szabo for reporting and Slaven Rezic for debugging
117                 this issue.
118         + Tst : Rare test failures of t/07-context_info.t on perl 5.6,
119                 t/55-yield-target.t on perl 5.[68], and t/63-uplevel-ctl.t on
120                 perl 5.8.[345] have been addressed.
121
122 0.21    2012-09-21 15:10 UTC
123         + Fix : context_info() has been taught about perl 5.17.4.
124         + Fix : t/07-context_info.t will no longer fail with perls that have
125                 sitecustomize enabled (like many perl builds for Windows).
126                 Thanks Steve Hay and Nicholas Clark for debugging help.
127         + Fix : Broken linkage on Windows with gcc 3.4, which appears in
128                 particular when using ActivePerl's default compiler suite.
129                 For those setups, the Scope::Upper shared library will now be
130                 linked against the perl dll directly (instead of the import
131                 library).
132
133 0.20    2012-09-17 11:00 UTC
134         + Add : The new yield(@values, $context) function can be used to return
135                 values to any upper scope, including do or map blocks.
136                 The new leave(@values) function is an alias for
137                 yield(@values, HERE).
138         + Add : The new context_info($context) function return information
139                 about context $context, similarly to what caller() provides
140                 but for any upper scope.
141         + Chg : Contexts are now normalized. In previous versions, it was
142                 possible for different contexts to refer to the same scope :
143                 for example, "for (my $i = 0; $i < 10; ++$i) { ... }" was
144                 reachable through two contexts, while "for (@array) { ... }"
145                 only by one. Starting from this version, contexts are
146                 normalized so that they always represent an actual scope.
147         + Doc : C++ compilers are officially NOT supported.
148         + Fix : Building with a more recent version of perl 5.17.4.
149         + Fix : Debugger compatibility with perl 5.17.1 and above.
150
151 0.19    2012-09-01 13:25 UTC
152         + Doc : POD headings have been made linkable.
153         + Fix : Building with perl 5.17.4.
154         + Fix : BUILD_PREREQS are now set for ExtUtils::MakeMaker.
155         + Opt : uplevel() private data structure is 7% smaller on 64 bits
156                 architectures.
157         + Tst : Author tests overhaul.
158
159 0.18    2011-10-10 20:50 UTC
160         + Add : The uid() function returns an unique identifier for each dynamic
161                 scope. The validate_uid() function can be used to check whether
162                 one such identifier is valid (i.e. that the scope it refers to
163                 is still alive).
164         + Chg : It is no longer possible on perl 5.6 to call goto() in an
165                 uplevel callback to replace the uplevel call. This change was
166                 needed in order to ensure consistency between platforms
167                 regarding to the following fix just below.
168         + Fix : The uplevel() tests now pass on Windows.
169                 Thanks C.H. Kang for bringing this to my attention.
170
171 0.17    2011-10-03 21:45 UTC
172         + Fix : uplevel() will now use the correct pad when executing its
173                 callback. This fixes at least two issues :
174                 - closures defined inside the uplevel callback can now correctly
175                 access lexicals from inside and outside the callback.
176                 - state variables in the uplevel callback now work properly.
177         + Fix : It is now generally possible to call goto() in the uplevel'd
178                 code to replace the uplevel stack frame. There are two cases
179                 for which it is still not possible :
180                 - if -D flags were set when running perl (as in "perl -Dt ...").
181                 - if the perl runloop has been replaced with a custom one by
182                 another module.
183                 If uplevel() detects that the replacement code contains a goto
184                 statement, and is in one of those two cases, then it will refuse
185                 to execute the callback and throw an exception.
186                 Note that this fix implies a run-time overhead of uplevel()
187                 proportional to the size of the the callback in every case
188                 (with a small ratio), and proportional to the size of ALL the
189                 code executed as the result of the uplevel call (including
190                 subroutine calls inside the callback) when a goto statement is
191                 found in the uplevel callback.
192         + Fix : uplevel() has been taught how to handle XS callbacks properly.
193         + Fix : The cause of "Attempt to free unreferenced scalar" warnings
194                 when using uplevel() has been addressed.
195         + Fix : [RT #71212] : build failure on Windows.
196                 The module does no longer rely on calling Perl_cv_clone, which
197                 isn't exported.
198                 Thanks C.H. Kang for reporting.
199
200 0.16    2011-09-03 23:00 UTC
201         + Add : uplevel($code, @args, $cxt) executes $code with arguments @args
202                 in the upper context pointed by $cxt.
203                 This is an XS version of the well-known uplevel() routine from
204                 Sub::Uplevel. There are a few differences between both
205                 implmentations that are listed in the documentation.
206                 The XS version is roughly 10 times faster than the pure-Perl
207                 version.
208
209 0.15    2011-08-24 14:20 UTC
210         + Fix : Localizing subroutines in an higher scope will now correctly
211                 update the method cache.
212
213 0.14    2011-02-27 00:00 UTC
214         + Fix : [RT #64997] : Compatibility with perl 5.13.10.
215                 Thanks Dave Mitchell for the notice.
216         + Tst : Lengthy tests have been ported to Test::Leaner, making the
217                 whole test suite about 50% faster.
218
219 0.13    2010-12-20 01:00 UTC
220         + Fix : [RT #61904] : Stack corruption when using unwind() under
221                 Devel::NYTProf.
222                 Thanks Sergey Aleynikov for contributing a fix.
223         + Fix : [RT #63378] : Compatibility with perl 5.13.8.
224                 Thanks Andreas J. König for bisecting the issue.
225         + Tst : Threads tests are now only run on perl 5.13.4 and higher.
226                 They could segfault randomly because of what seems to be an
227                 internal bug of Perl, which has been addressed in 5.13.4.
228                 There is also an environment variable that allows you to
229                 forcefully run those tests, but it should be set only for
230                 author testing and not for end users.
231
232 0.12    2010-05-19 00:45 UTC
233         + Fix : Compatibility with perl 5.13.
234         + Fix : Test failures with perl 5.8.0.
235         + Fix : A minor leak of SVs when a non array/hash was passed to
236                 localize_elem().
237
238 0.11    2010-04-16 23:20 UTC
239         + Chg : It's now forbiddent to pass a reference to a non-glob variable
240                 as the localization target of localize(), localize_elem() and
241                 localize_delete().
242         + Chg : localize_elem() now only accepts localization of arrays or hashs
243                 elements. For other types, it used to be a synonym of localize.
244         + Chg : localize_elem() no longer accepts a glob as the target. You now
245                 have to specify the variable as a string. This is because it was
246                 impossible in this case to handle meaningfully the array or the
247                 hash reference passed as the assigned value.
248         + Doc : The synopsys was revamped, and the rest of the documentation was
249                 reviewed.
250         + Fix : [RT #55593] : Segfault when localizing hash or array element to
251                 different package in different file.
252                 Thanks Dagfinn Ilmari Mannsåker for reporting.
253         + Fix : [RT #56301] : reap loses eval context when dying naturally.
254                 Thanks Andrew Main for reporting.
255         + Fix : Scope inconsistencies and segfaults when saving several
256                 localizations into the same target scope.
257         + Fix : Stop skipping frames as a pop optimization. This caused breakage
258                 under the debugger (and most likely outside as well).
259
260 0.10    2010-01-18 23:50 UTC
261         + Fix : Properly handle given/when on 5.10.
262         + Fix : Some stack inconsistencies were fixed, though they were unlikely
263                 to have an impact on your real-life code.
264         + Fix : Work around Kwalitee test misfailures.
265
266 0.09    2009-05-17 20:20 UTC
267         + Add : The new SU_THREADSAFE constant can be used to know whether the
268                 module could have been built with thread safety enabled.
269         + Chg : Thread safety is disabled for perl 5.8 on Win32.
270         + Chg : A saner workaround for the "call_sv() during LEAVE clobbers the
271                 still used last popped stack element" issue on 5.10.
272
273 0.08    2009-04-16 22:50 UTC
274         + Fix : [RT #44204] : Stack corruption with reap(). Thanks Torsten
275                 Foertsch for reporting.
276         + Fix : Building with Solaris CC.
277         + Tst : unwind() in threads.
278
279 0.07    2009-02-20 00:20 UTC
280         + Chg : The CLONE method will no longer be defined for non-threaded
281                 perls.
282         + Doc : Some examples on how to build the target context from the words.
283         + Fix : Some unlikely possible uninitialized reads, indirectly pointed
284                 out in a Redhat review request.
285         + Fix : "localize *x, 'y' => $cxt" now matches Perl's behaviour for
286                 "local *x = 'y'".
287         + Fix : Miscellanous code cleanups, courtesy of Florian Ragwitz.
288         + Upd : Resources in META.yml.
289
290 0.06    2009-01-17 00:05 UTC
291         + Chg : INCOMPATIBLE CHANGE: The level is now absolute and no longer
292                 relative to the current frame - we'll call it "context" from now
293                 on. You should replace all your raw levels by combinations of
294                 words.
295                 The old behaviour of "=> $n" can be easily reobtained by using
296                 "=> SCOPE($n)".
297         + Fix : As a result of this change, the module now plays nicely with
298                 the debugger.
299
300 0.05    2009-01-12 18:15 UTC
301         + Fix : Stack mess when using unwind() in scalar context.
302         + Fix : Returning an automatic variable isn't wise, so let's use a
303                 context instead.
304         + Doc : Clarifications.
305         + Tst : Stress tests for unwind().
306
307 0.04    2009-01-11 18:40 UTC
308         + Add : unwind(@things, $level), that returns to an upper context.
309         + Add : want_at($level), that gives the wantarray for $level.
310         + Add : Control words, to reliably get the level of the n-th upper
311                 subroutine or eval scope. TOPLEVEL was renamed to TOP.
312         + Fix : Tests with 5.6.
313         + Tst : Reordering and factoring some of the stress tests so that they
314                 aren't needlessly ran several times.
315
316 0.03    2009-01-04 15:55 UTC
317         + Add : localize_delete(), that localize array/hash elements in upper
318                 scopes.
319         + Fix : Segfault when localizing array elements with an invalid negative
320                 index.
321
322 0.02    2008-12-28 18:40 UTC
323         + Doc : Clarifications and improvements.
324         + Fix : Missing compatibility macros.
325         + Fix : Localized nonexistant array elements should be deleted when
326                 their time comes so that the array recovers its original length.
327
328 0.01    2008-12-26 16:05 UTC
329         First version, released on an unsuspecting world.
330