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