]> git.vpit.fr Git - perl/modules/Scope-Upper.git/blob - Changes
Fix Changes buggery
[perl/modules/Scope-Upper.git] / Changes
1 Revision history for Scope-Upper
2
3 0.17    2011-10-03 21:45 UTC
4         + Fix : uplevel() will now use the correct pad when executing its
5                 callback. This fixes at least two issues :
6                 - closures defined inside the uplevel callback can now correctly
7                 access lexicals from inside and outside the callback.
8                 - state variables in the uplevel callback now work properly.
9         + Fix : It is now generally possible to call goto() in the uplevel'd
10                 code to replace the uplevel stack frame. There are two cases
11                 for which it is still not possible :
12                 - if -D flags were set when running perl (as in "perl -Dt ...").
13                 - if the perl runloop has been replaced with a custom one by
14                 another module.
15                 If uplevel() detects that the replacement code contains a goto
16                 statement, and is in one of those two cases, then it will refuse
17                 to execute the callback and throw an exception.
18                 Note that this fix implies a run-time overhead of uplevel()
19                 proportional to the size of the the callback in every case
20                 (with a small ratio), and proportional to the size of ALL the
21                 code executed as the result of the uplevel call (including
22                 subroutine calls inside the callback) when a goto statement is
23                 found in the uplevel callback.
24         + Fix : uplevel() has been taught how to handle XS callbacks properly.
25         + Fix : The cause of "Attempt to free unreferenced scalar" warnings
26                 when using uplevel() has been addressed.
27         + Fix : [RT #71212] : build failure on Windows.
28                 The module does no longer rely on calling Perl_cv_clone, which
29                 isn't exported.
30                 Thanks C.H. Kang for reporting.
31
32 0.16    2011-09-03 23:00 UTC
33         + Add : uplevel($code, @args, $cxt) executes $code with arguments @args
34                 in the upper context pointed by $cxt.
35                 This is an XS version of the well-known uplevel() routine from
36                 Sub::Uplevel. There are a few differences between both
37                 implmentations that are listed in the documentation.
38                 The XS version is roughly 10 times faster than the pure-Perl
39                 version.
40
41 0.15    2011-08-24 14:20 UTC
42         + Fix : Localizing subroutines in an higher scope will now correctly
43                 update the method cache.
44
45 0.14    2011-02-27 00:00 UTC
46         + Fix : [RT #64997] : Compatibility with perl 5.13.10.
47                 Thanks Dave Mitchell for the notice.
48         + Tst : Lengthy tests have been ported to Test::Leaner, making the
49                 whole test suite about 50% faster.
50
51 0.13    2010-12-20 01:00 UTC
52         + Fix : [RT #61904] : Stack corruption when using unwind() under
53                 Devel::NYTProf.
54                 Thanks Sergey Aleynikov for contributing a fix.
55         + Fix : [RT #63378] : Compatibility with perl 5.13.8.
56                 Thanks Andreas J. König for bisecting the issue.
57         + Tst : Threads tests are now only run on perl 5.13.4 and higher.
58                 They could segfault randomly because of what seems to be an
59                 internal bug of Perl, which has been addressed in 5.13.4.
60                 There is also an environment variable that allows you to
61                 forcefully run those tests, but it should be set only for
62                 author testing and not for end users.
63
64 0.12    2010-05-19 00:45 UTC
65         + Fix : Compatibility with perl 5.13.
66         + Fix : Test failures with perl 5.8.0.
67         + Fix : A minor leak of SVs when a non array/hash was passed to
68                 localize_elem().
69
70 0.11    2010-04-16 23:20 UTC
71         + Chg : It's now forbiddent to pass a reference to a non-glob variable
72                 as the localization target of localize(), localize_elem() and
73                 localize_delete().
74         + Chg : localize_elem() now only accepts localization of arrays or hashs
75                 elements. For other types, it used to be a synonym of localize.
76         + Chg : localize_elem() no longer accepts a glob as the target. You now
77                 have to specify the variable as a string. This is because it was
78                 impossible in this case to handle meaningfully the array or the
79                 hash reference passed as the assigned value.
80         + Doc : The synopsys was revamped, and the rest of the documentation was
81                 reviewed.
82         + Fix : [RT #55593] : Segfault when localizing hash or array element to
83                 different package in different file.
84                 Thanks Dagfinn Ilmari Mannsåker for reporting.
85         + Fix : [RT #56301] : reap loses eval context when dying naturally.
86                 Thanks Andrew Main for reporting.
87         + Fix : Scope inconsistencies and segfaults when saving several
88                 localizations into the same target scope.
89         + Fix : Stop skipping frames as a pop optimization. This caused breakage
90                 under the debugger (and most likely outside as well).
91
92 0.10    2010-01-18 23:50 UTC
93         + Fix : Properly handle given/when on 5.10.
94         + Fix : Some stack inconsistencies were fixed, though they were unlikely
95                 to have an impact on your real-life code.
96         + Fix : Work around Kwalitee test misfailures.
97
98 0.09    2009-05-17 20:20 UTC
99         + Add : The new SU_THREADSAFE constant can be used to know whether the
100                 module could have been built with thread safety enabled.
101         + Chg : Thread safety is disabled for perl 5.8 on Win32.
102         + Chg : A saner workaround for the "call_sv() during LEAVE clobbers the
103                 still used last popped stack element" issue on 5.10.
104
105 0.08    2009-04-16 22:50 UTC
106         + Fix : [RT #44204] : Stack corruption with reap(). Thanks Torsten
107                 Foertsch for reporting.
108         + Fix : Building with Solaris CC.
109         + Tst : unwind() in threads.
110
111 0.07    2009-02-20 00:20 UTC
112         + Chg : The CLONE method will no longer be defined for non-threaded
113                 perls.
114         + Doc : Some examples on how to build the target context from the words.
115         + Fix : Some unlikely possible uninitialized reads, indirectly pointed
116                 out in a Redhat review request.
117         + Fix : "localize *x, 'y' => $cxt" now matches Perl's behaviour for
118                 "local *x = 'y'".
119         + Fix : Miscellanous code cleanups, courtesy of Florian Ragwitz.
120         + Upd : Resources in META.yml.
121
122 0.06    2009-01-17 00:05 UTC
123         + Chg : INCOMPATIBLE CHANGE: The level is now absolute and no longer
124                 relative to the current frame - we'll call it "context" from now
125                 on. You should replace all your raw levels by combinations of
126                 words.
127                 The old behaviour of "=> $n" can be easily reobtained by using
128                 "=> SCOPE($n)".
129         + Fix : As a result of this change, the module now plays nicely with
130                 the debugger.
131
132 0.05    2009-01-12 18:15 UTC
133         + Fix : Stack mess when using unwind() in scalar context.
134         + Fix : Returning an automatic variable isn't wise, so let's use a
135                 context instead.
136         + Doc : Clarifications.
137         + Tst : Stress tests for unwind().
138
139 0.04    2009-01-11 18:40 UTC
140         + Add : unwind(@things, $level), that returns to an upper context.
141         + Add : want_at($level), that gives the wantarray for $level.
142         + Add : Control words, to reliably get the level of the n-th upper
143                 subroutine or eval scope. TOPLEVEL was renamed to TOP.
144         + Fix : Tests with 5.6.
145         + Tst : Reordering and factoring some of the stress tests so that they
146                 aren't needlessly ran several times.
147
148 0.03    2009-01-04 15:55 UTC
149         + Add : localize_delete(), that localize array/hash elements in upper
150                 scopes.
151         + Fix : Segfault when localizing array elements with an invalid negative
152                 index.
153
154 0.02    2008-12-28 18:40 UTC
155         + Doc : Clarifications and improvements.
156         + Fix : Missing compatibility macros.
157         + Fix : Localized nonexistant array elements should be deleted when
158                 their time comes so that the array recovers its original length.
159
160 0.01    2008-12-26 16:05 UTC
161         First version, released on an unsuspecting world.
162