1 Revision history for Scope-Upper
3 0.16 2011-09-03 23:00 UTC
4 + Add : uplevel($code, @args, $cxt) executes $code with arguments @args
5 in the upper context pointed by $cxt.
6 This is an XS version of the well-known uplevel() routine from
7 Sub::Uplevel. There are a few differences between both
8 implmentations that are listed in the documentation.
9 The XS version is roughly 10 times faster than the pure-Perl
12 0.15 2011-08-24 14:20 UTC
13 + Fix : Localizing subroutines in an higher scope will now correctly
14 update the method cache.
16 0.14 2011-02-27 00:00 UTC
17 + Fix : [RT #64997] : Compatibility with perl 5.13.10.
18 Thanks Dave Mitchell for the notice.
19 + Tst : Lengthy tests have been ported to Test::Leaner, making the
20 whole test suite about 50% faster.
22 0.13 2010-12-20 01:00 UTC
23 + Fix : [RT #61904] : Stack corruption when using unwind() under
25 Thanks Sergey Aleynikov for contributing a fix.
26 + Fix : [RT #63378] : Compatibility with perl 5.13.8.
27 Thanks Andreas J. König for bisecting the issue.
28 + Tst : Threads tests are now only run on perl 5.13.4 and higher.
29 They could segfault randomly because of what seems to be an
30 internal bug of Perl, which has been addressed in 5.13.4.
31 There is also an environment variable that allows you to
32 forcefully run those tests, but it should be set only for
33 author testing and not for end users.
35 0.12 2010-05-19 00:45 UTC
36 + Fix : Compatibility with perl 5.13.
37 + Fix : Test failures with perl 5.8.0.
38 + Fix : A minor leak of SVs when a non array/hash was passed to
41 0.11 2010-04-16 23:20 UTC
42 + Chg : It's now forbiddent to pass a reference to a non-glob variable
43 as the localization target of localize(), localize_elem() and
45 + Chg : localize_elem() now only accepts localization of arrays or hashs
46 elements. For other types, it used to be a synonym of localize.
47 + Chg : localize_elem() no longer accepts a glob as the target. You now
48 have to specify the variable as a string. This is because it was
49 impossible in this case to handle meaningfully the array or the
50 hash reference passed as the assigned value.
51 + Doc : The synopsys was revamped, and the rest of the documentation was
53 + Fix : [RT #55593] : Segfault when localizing hash or array element to
54 different package in different file.
55 Thanks Dagfinn Ilmari Mannsåker for reporting.
56 + Fix : [RT #56301] : reap loses eval context when dying naturally.
57 Thanks Andrew Main for reporting.
58 + Fix : Scope inconsistencies and segfaults when saving several
59 localizations into the same target scope.
60 + Fix : Stop skipping frames as a pop optimization. This caused breakage
61 under the debugger (and most likely outside as well).
63 0.10 2010-01-18 23:50 UTC
64 + Fix : Properly handle given/when on 5.10.
65 + Fix : Some stack inconsistencies were fixed, though they were unlikely
66 to have an impact on your real-life code.
67 + Fix : Work around Kwalitee test misfailures.
69 0.09 2009-05-17 20:20 UTC
70 + Add : The new SU_THREADSAFE constant can be used to know whether the
71 module could have been built with thread safety enabled.
72 + Chg : Thread safety is disabled for perl 5.8 on Win32.
73 + Chg : A saner workaround for the "call_sv() during LEAVE clobbers the
74 still used last popped stack element" issue on 5.10.
76 0.08 2009-04-16 22:50 UTC
77 + Fix : [RT #44204] : Stack corruption with reap(). Thanks Torsten
78 Foertsch for reporting.
79 + Fix : Building with Solaris CC.
80 + Tst : unwind() in threads.
82 0.07 2009-02-20 00:20 UTC
83 + Chg : The CLONE method will no longer be defined for non-threaded
85 + Doc : Some examples on how to build the target context from the words.
86 + Fix : Some unlikely possible uninitialized reads, indirectly pointed
87 out in a Redhat review request.
88 + Fix : "localize *x, 'y' => $cxt" now matches Perl's behaviour for
90 + Fix : Miscellanous code cleanups, courtesy of Florian Ragwitz.
91 + Upd : Resources in META.yml.
93 0.06 2009-01-17 00:05 UTC
94 + Chg : INCOMPATIBLE CHANGE: The level is now absolute and no longer
95 relative to the current frame - we'll call it "context" from now
96 on. You should replace all your raw levels by combinations of
98 The old behaviour of "=> $n" can be easily reobtained by using
100 + Fix : As a result of this change, the module now plays nicely with
103 0.05 2009-01-12 18:15 UTC
104 + Fix : Stack mess when using unwind() in scalar context.
105 + Fix : Returning an automatic variable isn't wise, so let's use a
107 + Doc : Clarifications.
108 + Tst : Stress tests for unwind().
110 0.04 2009-01-11 18:40 UTC
111 + Add : unwind(@things, $level), that returns to an upper context.
112 + Add : want_at($level), that gives the wantarray for $level.
113 + Add : Control words, to reliably get the level of the n-th upper
114 subroutine or eval scope. TOPLEVEL was renamed to TOP.
115 + Fix : Tests with 5.6.
116 + Tst : Reordering and factoring some of the stress tests so that they
117 aren't needlessly ran several times.
119 0.03 2009-01-04 15:55 UTC
120 + Add : localize_delete(), that localize array/hash elements in upper
122 + Fix : Segfault when localizing array elements with an invalid negative
125 0.02 2008-12-28 18:40 UTC
126 + Doc : Clarifications and improvements.
127 + Fix : Missing compatibility macros.
128 + Fix : Localized nonexistant array elements should be deleted when
129 their time comes so that the array recovers its original length.
131 0.01 2008-12-26 16:05 UTC
132 First version, released on an unsuspecting world.