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