]> git.vpit.fr Git - perl/modules/Variable-Magic.git/blob - Changes
Jumbo POD overhaul
[perl/modules/Variable-Magic.git] / Changes
1 Revision history for Variable-Magic
2
3 0.49    2012-06-05 21:40 UTC
4         This is a maintenance release. The code contains no functional change.
5         Satisfied users of version 0.48 can skip this update.
6         + Fix : [RT #77644] : t/17_ctl.t fails in test 44 since 5.17.0.
7                 This test has been taught about perl 5.17.0.
8                 Thanks Reini Urban for reporting.
9         + Tst : t/99-kwalitee.t will be skipped when only problematic versions
10                 of its dependencies are available.
11
12 0.48    2012-02-17 23:40 UTC
13         + Add : You can now pass a reference to undef as the magic callback in
14                 order to install a no-op callback.
15                 Thanks Florian Ragwitz for the suggestion.
16
17 0.47    2011-10-27 16:55 UTC
18         + Add : The new constant VMG_COMPAT_HASH_DELETE_NOUVAR_VOID evaluates
19                 to true when "delete $hash{key}" does not call 'delete' uvar
20                 magic in void context.
21         + Chg : The MAGIC tokens created by this module no longer use the
22                 mg_private member for storing a "magical" signature.
23         + Fix : Triggering magic in a thread on a variable cloned from the main
24                 interpreter, and when the wizard already went out of scope,
25                 will not segfault anymore.
26         + Opt : The pointer table is no longer needed to ensure thread safety.
27                 The size of the object code is about 8% smaller for threaded
28                 perls.
29         + Tst : Threads tests will not fail anymore if resources constraints
30                 prevent the system from creating all the required threads.
31
32 0.46    2011-01-23 16:45 UTC
33         + Fix : [RT #64866] : Assertion failure with perl 5.13.9.
34                 The real problem was that dispell() wasn't properly resetting
35                 the magical sv flags, which became visible in the test suite
36                 only with perl 5.13.9.
37                 Thanks Joshua ben Jore for reporting.
38
39 0.45    2010-11-21 23:15 UTC
40         This is a maintenance release. The code contains no functional change.
41         Users of 0.44 can skip this update.
42         + Doc : C++ compilers are officially NOT supported.
43         + Doc : The minimum perl 5.10.0 requirement for uvar magic has been
44                 made more explicit.
45                 Thanks Peter Rabbitson for pointing this out and contributing a
46                 patch.
47         + Tst : Tune for perl 5.13.7.
48         + Tst : Capture::Tiny will be used in t/17-ctl.t if and only if it can
49                 capture a simple run.
50
51 0.44    2010-09-24 19:10 UTC
52         + Fix : Broken linkage on Windows with gcc 3.4, which appears in
53                 particular when using ActivePerl's default compiler suite.
54                 For those setups, the Variable::Magic shared library will now
55                 be linked against the perl dll directly (instead of the import
56                 library). This (should) fix RT #51483.
57                 Thanks Christian Walde for helping to reproduce this failure
58                 and extra testing.
59         + Rem : Support for development perls from the 5.11 branch but older
60                 than the 5.11.0 release was removed. This could cause more
61                 recent setups to fail.
62         + Tst : Threads tests are now only run on perl 5.13.4 and higher.
63                 They could segfault randomly because of what seems to be an
64                 internal bug of Perl, which has been addressed in 5.13.4.
65                 There is also an environment variable that allows you to
66                 forcefully run those tests, but it should be set only for
67                 author testing and not for end users.
68
69 0.43    2010-06-25 23:35 UTC
70         + Add : The new constant VMG_COMPAT_GLOB_GET tells you whether get magic
71                 is called for globs. It's true starting perl 5.13.2.
72         + Chg : All callbacks are now called within an eval-like context.
73                 Only free callbacks used to be called that way.
74         + Fix : Some exceptions thrown from a free callback could be lost.
75         + Fix : Croak messages could sometimes be repeated several times.
76         + Fix : t/41-clone.t segfaulting with perl 5.13.2.
77
78 0.42    2010-05-19 00:15 UTC
79         This is a maintenance release. The code contains no functional change.
80         Users of 0.41 can skip this update.
81         + Fix : Test failures with perl 5.13.
82         + Tst : Improve coverage.
83
84 0.41    2010-03-15 17:35 UTC
85         + Doc : Tweaks and fixups.
86                 Thanks Shlomi Fish.
87         + Fix : Compatibility with the soon-to-be-released perl 5.12.0.
88         + Fix : Correctly propagate the errors thrown when variable destruction
89                 happens at compile-time and not from inside eval STRING.
90                 Thanks Florian Ragwitz and Ash Berlin for reporting.
91
92 0.40    2010-01-06 23:20 UTC
93         + Fix : Possible memory miswrites when passing data arguments to cast().
94         + Fix : Minor C portability tweaks.
95
96 0.39    2009-12-01 00:05 UTC
97         + Add : You can use a function name as a callback by passing a string
98                 reference to wizard() instead of a code reference.
99         + Fix : Compatiblity with perl 5.11.1 and 5.11.2.
100         + Fix : Scalars stored into the data slot no longer leak.
101         + Fix : Thread destruction should not segfault anymore.
102         + Opt : As a result of removing the deprecated features, less memory is
103                 used for both threaded (a pointer table is used instead of a
104                 hash) and non-threaded (no global structure is needed anymore)
105                 perls.
106         + Rem : As advertised in the precendent version, all the signature
107                 related features were removed. This includes the 'sig' option
108                 to wizard(), the getsig() and gensig() functions, and the SIG_*
109                 constants.
110
111 0.38    2009-10-04 16:10 UTC
112         + Dep : All the signature-related features are DEPRECATED and will be
113                 removed in december 2009. This includes the 'sig' option to
114                 wizard(), the getsig() and gensig() functions, and the SIG_*
115                 constants.
116                 Afaik those features were never used in real life, and they make
117                 the XS code slow and brittle. If you want your wizards to be
118                 globally available, you'll have to handle that yourself by
119                 storing them in a hash.
120         + Doc : More examples in a new COOKBOOK section.
121         + Fix : Compatiblity with the 5.11.0 release. The new compatibility
122                 constant VMG_COMPAT_ARRAY_PUSH_NOLEN_VOID was added to cover
123                 this.
124         + Fix : Work around Kwalitee test misfailures.
125
126 0.37    2009-08-25 15:25 UTC
127         + Add : The new constant VMG_FORKSAFE can be tested to know whether the
128                 module will behave nicely when fork()ing. It's currently always
129                 true except on Windows where you need perl 5.10.1 for it to be
130                 true.
131         + Doc : Nits and clarifications.
132
133 0.36    2009-07-05 16:30 UTC
134         + Chg : getdata() now returns an empty list when no magic is present.
135                 It used to return undef but did not croak as stated in the doc.
136                 Thanks Matt S. Trout for pointing this out.
137         + Fix : Building and tests with ActiveState Perl 5.8 build >= 822.
138
139 0.35    2009-05-15 20:50 UTC
140         This is a maintenance release. Users of 0.34 can skip this update.
141         + Chg : uvar magic used to be enabled for 5.9.5. It now requires 5.10 or
142                 later.
143         + Fix : Silence compilation warnings for cxinc().
144         + Rem : The workaround introduced in 0.31 for the "Unknown errors" issue
145                 was removed, as regression tests show that 0.34 provides a
146                 better fix.
147         + Tst : Skip t/40-threads.t on 5.8.x with old versions of threads and
148                 threads::shared.
149
150 0.34    2009-04-19 16:55 UTC
151         + Fix : Destruction of wizards in require.
152         + Fix : "panic: restartop" in 5.10 when dieing at compile time triggers
153                 a destructor.
154
155 0.33    2009-03-26 00:00 UTC
156         + Chg : cast() and getsig() now croak too when an invalid signature is
157                 passed.
158         + Fix : It was possible to generate with gensig() the same signature
159                 twice before actually defining the wizards.
160         + Tst : More stash tests.
161         + Tst : Test when the magic takes place in some cases.
162         + Tst : Improved coverage for the op object feature.
163
164 0.32    2009-03-01 13:45 UTC
165         + Chg : dispell() and getdata() now croak when an invalid signature is
166                 passed.
167         + Doc : More examples and a brand new synopsis.
168         + Fix : The signature is no longer stored in the mg_private member of
169                 the MAGIC struct. This fixes possible clashes with magics from
170                 other extensions.
171         + Fix : op info objects weren't blessed into the right class.
172         + Fix : Races when initializing the op names cache under threads.
173
174 0.31    2009-02-19 23:50 UTC
175         + Doc : A somewhat better introduction. The FUNCTION section was moved
176                 before CONSTANTS and HISTORY since it's more important. And
177                 'assignation' is really 'assignment', says Ricardo. :)
178         + Fix : The op_info features are now thread safe.
179         + Fix : Segfaults that occured when trying to get the op name during
180                 global destruction.
181         + Fix : Segfaults and wrong "Unknown error" exceptions that happened
182                 when dieing in require caused a free callback to fire.
183                 Thanks Florian Ragwitz for reporting.
184
185 0.30    2009-02-12 17:05 UTC
186         + Add : You can now get in all the callbacks either the name or a B::OP
187                 object representing the current op if you pass the new 'op_info'
188                 option to wizard() with respective values VMG_OP_INFO_NAME and
189                 VMG_OP_INFO_OBJECT.
190         + Doc : Document magic on array/hashes values.
191         + Fix : Completely skip free callbacks during global destruction.
192         + Tst : Tests now pass again on 5.8.3 and lower (they were broken since
193                 0.27).
194         + Tst : Test magic on symbol table and on array/hash values.
195
196 0.29    2009-02-08 11:10 UTC
197         + Add : Set $_[2] to the default length for len magic on scalars.
198         + Chg : Perl 5.8 is required.
199         + Chg : The CLONE method will no longer be defined for non-threaded
200                 perls.
201         + Doc : Nits.
202         + Fix : The logic for turning off the GMAGICAL flag on hashes when no
203                 uvar magic is involved could do nasty things on tied hashes.
204         + Upd : More resources in META.yml.
205
206 0.28    2009-01-24 17:05 UTC
207         + Add : The 'copy_key' option to wizard(), that enables the safe edition
208                 of $_[2] in uvar callbacks to redirect actions to another key.
209         + Fix : Exception objects thrown from callbacks at compile time were not
210                 available in $@.
211         + Fix : free callbacks triggered during global destruction could lead to
212                 segfaults because the wizard was already freed.
213         + Fix : Refcount of scalars with free callback.
214         + Fix : Segfaults when using get or uvar magic simultaneously with clear
215                 magic.
216         + Doc : The documentation about what the callbacks take and should
217                 return is now somewhat clearer.
218
219 0.27    2009-01-18 23:40 UTC
220         + Fix : Offset of 1 with len magic on scalars.
221         + Fix : Segfaults that seem to happen when one croak in a callback at
222                 compile time (thanks Ash Berlin for the testcase).
223         + Upd : Resources in META.yml (Florian Ragwitz)
224         + Tst : Large cleanup resulting in a wider set of tested behaviours.
225
226 0.26    2008-11-29 22:05 UTC
227         + Fix : Leaks of cloned coderefs that access lexicals.
228         + Fix : Building with maint-5.8 and blead (thanks Andreas Koenig).
229
230 0.25    2008-11-12 19:40 UTC
231         + Fix : Compatibility with 5.8.9.
232         + Fix : Old Pod::Coverage don't ignore CLONE.
233         + Upd : META.yml spec updated to 1.4.
234
235 0.24    2008-10-12 14:55 UTC
236         + Fix : Really fix it.
237
238 0.23    2008-10-11 17:25 UTC
239         + Fix : Building on perls with multiplicity but not ithreads.
240
241 0.22    2008-09-29 19:40 UTC
242         + Doc : Explain how magic differs from overloading.
243         + Fix : Disable thread safety for perl 5.8 on Windows. If you want it
244                 enabled, reliable feedback is welcome.
245
246 0.21_02 2008-09-28 23:10 UTC
247         + Fix : Hide previously deleted magic tokens in vmg_svt_free (Yuval
248                 Kogman).
249
250 0.21_01 2008-09-22 13:25 UTC
251         + Chg : Shrink the context data.
252         + Fix : Enable thread safety features for perls that just lack
253                 MY_CXT_CLONE.
254         + Tst : Output threads and threads::shared versions in threads tests.
255
256 0.20    2008-09-20 23:35 UTC
257         + Fix : The module is now thread safe. You can test if it had been
258                 built with thread safety features enabled through the
259                 VMG_THREADSAFE constant.
260         + Fix : Correct backtrace when wizard() croaks.
261         + Fix : 'cast $a, undef' should throw an 'invalid wizard' error instead
262                 of an 'invalid signature'.
263
264 0.19    2008-07-05 15:05 UTC
265         + Add : The patchlevel with which the module has been built is now
266                 exported with the VMG_PERL_PATCHLEVEL constant.
267         + Chg : Version checking macros overhaul.
268         + Fix : 'uvar' magic should only be enabled in maint-5.10 and higher
269                 since it's never going to be backported to 5.8.
270         + Fix : Likewise, the copy callback API change should only be enabled in
271                 5.11 and higher.
272         + Fix : Instead of those ackward fake refcount increments in the wizard
273                 destructor, flag the wizard with SVf_BREAK and force temps
274                 cleanup. This should fix the wizard destruction for all perls,
275                 and solves the leak introduced by the previous solution.
276
277 0.18    2008-07-04 12:20 UTC
278         + Fix : Enable uvar magic when patchlevel >= 28419.
279         + Fix : Set VMG_COMPAT_ARRAY_PUSH_NOLEN for Windows ActiveState Perl
280                 5.8.x.
281
282 0.17    2008-05-11 09:05 UTC
283         + Fix : 5.8.4 and lower don't have mPUSHi. Gah. Yeah, I know, I should
284                 use Devel::PPPort.
285
286 0.16    2008-05-10 22:05 UTC
287         + Add : The samples/copy.pl script.
288         + Chg : The sv_magical() + vmg_mg_magical() combo was simplified into
289                 vmg_sv_magicuvar().
290         + Tst : t/33-code.t was testing scalars, not code.
291         + Tst : is() and like() are better than ok().
292         + Tst : 100% coverage reached.
293
294 0.15    2008-04-11 18:25 UTC
295         + Chg : Factor vmg_cb_call{1,2,3}() into one function.
296         + Fix : len magic is no longer called when taking the length() of a
297                 magical scalar since p32969. The VMG_COMPAT_SCALAR_LENGTH_NOLEN
298                 constant was added to cover this.
299         + Tst : More tests for t/22-len.t.
300
301 0.14    2008-03-24 12:35 UTC
302         + Fix : t/16-huf.t failures on Solaris and FreeBSD caused by not
303                 updating mg->mg_ptr after Renew-ing it on dispell.
304         + Fix : Undefining MGf_DUP caused the wizard's magic to be wrongly
305                 initialized. MGf_DUP now appears as true from the user point of
306                 view, but the dup callback isn't actually set.
307         + Fix : Warnings with blead due to copy callbacks now taking an I32 (API
308                 change #33256).
309         + Fix : vmg_svt_val() and vmg_uvar_del() aren't required if no uvar
310                 magic is available.
311         + Tst : Tests now output the version of optional modules loaded.
312
313 0.13    2008-03-19 14:35 UTC
314         + Doc : Link to coverage report.
315         + Fix : Correct dependencies listing in META.yml.
316         + Tst : Improved test coverage.
317         + Tst : Print the patchlevel as a comment.
318         + Tst : Use is() where it's relevant.
319         + Tst : t/16-huf.t now really tests interaction with H::U::FH.
320
321 0.12    2008-02-07 18:15 UTC
322         + Fix : POD error. Thanks to Chris Williams (BinGOs) for the quick
323                 feedback.
324
325 0.11    2008-02-07 17:55 UTC
326         + Add : Copy callbacks now receive the current key/index in $_[2].
327                 The current value/element is now in $_[3].
328         + Chg : The trigger of copy magic on list assignment with perls greater
329                 than 5.10.0 was caused by uvar magic. Hence,
330                 VMG_COMPAT_HASH_LISTASSIGN_COPY was removed. Use VMG_UVAR
331                 instead.
332         + Fix : Build failures on patched perls.
333         + Tst : Added missing exported symbols to 01-import.t.
334
335 0.10    2008-02-04 11:30 UTC
336         + Add : New script : samples/vm_vs_tie.pl, that benchmarks our uvar
337                 magic versus tied hashes.
338         + Add : The VMG_COMPAT_* constants can be used from userspace to check
339                 perl magic abilities.
340         + Fix : Callbacks that returned undef made us croak, breaking the
341                 variable behaviour (regression test in 14-callbacks.t).
342         + Fix : uvar callbacks weren't tested for non-NULL-ity before being
343                 called (regression test in 28-uvar.t).
344         + Tst : Fix typo in 25-copy.t that prevented Tie::Hash tests to be ran.
345
346 0.09    2008-02-02 11:30 UTC
347         + Doc : Explicitely say that uvar callbacks are safely ignored for
348                 non-hashes.
349         + Doc : Document caveats and fix the usual set of typos.
350         + Fix : vmg_dispell() didn't check if the ext magic were ours when
351                 counting wizards that have uvar callbacks, resulting in a
352                 possible memory misread.
353         + Fix : getdata() now returns directly the data object, and no longer a
354                 copy. This caused a leak.
355         + Tst : Prefix author tests by 9*-.
356         + Tst : New optional author test : 95-portability-files.t, that uses
357                 Test::Portability::Files when it's present.
358         + Tst : New test : 14-self.t, that tests application of magic on the
359                 wizard itself.
360         + Tst : Move Hash::Util::FieldHash tests out of 11-multiple.t to
361                 15-huf.t.
362
363 0.08    2008-02-01 16:55 UTC
364         + Add : copy magic for tied arrays/hashes.
365         + Add : local magic.
366         + Add : uvar magics : fetch, store, exists, delete for hashes.
367
368 0.07_*  2008-01
369         Internal development versions.
370
371 0.06    2007-11-20 10:10 UTC
372         + Chg : 5.7.3 is now officially required.
373         + Fix : "data" test failures on 5.8.{0,2}.
374         + Fix : Drand01() vs rand().
375
376 0.05    2007-11-19 09:10 UTC
377         + Fix : 5.10.0_RC1 compatibility fix.
378
379 0.04    2007-08-28 12:25 UTC
380         + Chg : s/require (XSLoader)/use $1/.
381         + Fix : Tests are now strict.
382         + Fix : Complete dependencies.
383
384 0.03    2007-08-01 17:20 UTC
385         + Add : Passing the signature of an already defined magic to wizard()
386                 now returns the corresponding magic object.
387         + Add : You can pass the numeric signature as the wizard argument of
388                 cast(), dispell() and getdata().
389         + Add : Any argument specified after the wizard (or the signature) in a
390                 call to cast() is now passed to the private data constructor in
391                 $_[1] and after.
392         + Chg : $_[0] is now always a reference to the magic variable in all
393                 callbacks. The reason for changing from the previous behaviour
394                 is that one may want to apply the same magic to a plain scalar
395                 and to a scalar reference, and needs a way to distinguish
396                 between them in the callback (say, ref()).
397         + Fix : Wizard object destruction used not to free the signature.
398
399 0.02    2007-07-27 13:50 UTC
400         + Fix : In response to test report 548152 :
401                 Newx() and SvMAGIC_set() not present on older perls.
402         + Fix : In response to test report 548275 :
403                 Since perl 5.9.5, 'clear' magic is invoked when an array is
404                 undefined (bug #43357). Moreover, 'len' magic is no longer
405                 called by pushing an element since perl 5.9.3.
406         + Fix : Missing glob test in MANIFEST.
407
408 0.01    2007-07-25 16:15 UTC
409         First version, released on an unsuspecting world.
410