]> git.vpit.fr Git - perl/modules/Variable-Magic.git/blobdiff - Changes
This is 0.60
[perl/modules/Variable-Magic.git] / Changes
diff --git a/Changes b/Changes
index 771c22e71a74d45517c90372f7e9a7daf26e1d20..c7cd521d6cf1aa12c892055a5813ce60ed6407fa 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,388 @@
 Revision history for Variable-Magic
 
+0.60    2016-09-06 22:30 UTC
+        + Chg : A large chunk of boilerplate XS code, which is also used in
+                other XS modules, has been factored out of the main .xs file
+                to a collection of .h files in the xsh subdirectory.
+        + Fix : [RT #128989] : Bleadperl v5.25.3-266-g1d7e644 breaks V::M.
+                Len magic is no longer called for negative array indices
+                fetches, so the relevant tests are now skipped.
+                Thanks Andreas Koenig for reporting.
+
+0.59    2015-10-05 19:05 UTC
+        + Chg : The magic callbacks are now always executed in a new stack.
+                This should have no negative impact (performance-wise or
+                behaviour-wise) on your code, but may actually fix some obscure
+                bugs.
+        + Fix : [RT #107294] : Crash during install of Variable-Magic-0.58
+                running "t\18-opinfo.t".
+                A recent change in the core implementation of transliterations
+                caused an undefined behaviour when it interacted with this
+                module, which resulted in visible stack corruption on Win32
+                perls compiled with MSVC when the op_info feature was enabled.
+                This was fixed by using a separate stack for the magic
+                callbacks.
+                Thanks Peter Stokes for reporting and providing greatly
+                helpful feedback.
+        + Fix : The object op_info feature will now handle correctly Unicode
+                transliteration, multideref and custom ops.
+
+0.58    2015-07-21 16:00 UTC
+        + Add : If a non-len magic callback returns a reference, it will now
+                only be freed at the end of the statement that caused the
+                magic to trigger. This allows the user to attach free magic
+                (or a plain destructor) to a token returned from the callbacks
+                in order to defer an action after the magic is processed by
+                perl.
+        + Fix : Test failures of threads tests on systems with harsh resource
+                constraints causing the threads to exit() during run.
+
+0.57    2015-04-17 15:20 UTC
+        + Chg : The new environment variable to enable thread tests on older
+                perls is PERL_FORCE_TEST_THREADS. Note that this variable
+                should only be turned on by authors.
+        + Fix : Segfaults when the module is loaded by several threads (or
+                Windows emulated processes) ran in parallel.
+        + Fix : Segfaults when the module is loaded in a thread, which spawns
+                itself a new thread, and that child thread outlives its parent.
+        + Fix : Small memory leaks of structures required for thread safety.
+        + Fix : Update the Windows ActivePerl + gcc 3.4 workaround for
+                ExtUtils::MakeMaker 7.04. Thanks Christian Walde for reporting
+                and feedback on this issue.
+        + Tst : The global destruction test will now be exercised on any perl
+                that has DEBUGGING set.
+        + Tst : Optional capturing tests in t/17-ctl.t that were only run when
+                Capture::Tiny was present were converted to an IPC::Open3
+                based helper and will now be run everywhere.
+
+0.56    2015-03-11 15:15 UTC
+        + Fix : [RT #101410] : Install fails in blead
+                Even though the change that caused this error was reverted from
+                blead, lvalue uses of ERRSV have been removed from this module
+                so that there will be no breakage when this change is possibly
+                reintroduced in the following months.
+                Thanks Dave Rolsky for reporting.
+        + Tst : $ENV{$Config{ldlibpthname}} is now preserved on all platforms,
+                which will address failures of t/17-ctl.t with unusual
+                compilers (like icc) that link all their compiled objects to
+                their own libraries.
+        + Tst : The global destruction test is now only run on perl 5.13.4 and
+                higher, and only if either Perl::Destruct::Level is installed
+                or PERL_DESTRUCT_LEVEL is set and the perl is a debugging perl.
+                This will solve rare crashes of t/15-self.t on perl 5.13.3 and
+                older.
+
+0.55    2014-10-20 23:45 UTC
+        + Fix : [RT #99319] : t/18-opinfo.t: test failure due to change in
+                perl 5 blead
+                The new METHOP op class added in perl 5.21.5 is now supported.
+                Thanks James E Keenan for reporting.
+
+0.54    2014-09-22 17:30 UTC
+        + Add : The new constant VMG_COMPAT_CODE_COPY_CLONE evaluates to true
+                if your perl calls 'copy' magic when a magical code prototype
+                is cloned, which is currently the case for perl 5.17.0 and
+                above.
+        + Fix : [RT #90205] : copy magic on subs puts raw CV in $_[3]
+                $_[3] will now contain a reference to the cloned code when
+                'copy' magic is called for a coderef.
+                Thanks Lukas Mai for reporting.
+        + Fix : t/35-stash.t has been taught about perl 5.21.4.
+        + Fix : Tests using run_perl() in t/17-ctl.t will no longer fail on
+                Android.
+
+0.53    2013-09-01 17:50 UTC
+        This is a maintenance release. The code contains no functional change.
+        Satisfied users of version 0.52 can skip this update.
+        + Fix : [RT #86338] : typo fix.
+                Thanks dsteinbrunner@pobox.com for the patch.
+        + Tst : Author tests are no longer bundled with this distribution.
+                They are only made available to authors in the git repository.
+
+0.52    2012-11-05 02:30 UTC
+        + Add : The new constant VMG_COMPAT_SCALAR_NOLEN evaluates to true
+                when your perl does not call 'len' magic for scalars, which
+                is the case for perl 5.17.4 and above.
+                This fixes RT #80388.
+        + Tst : t/35-stash.t has been taught about perl 5.17.4.
+        + Tst : Author tests overhaul.
+
+0.51    2012-08-18 15:00 UTC
+        + Fix : It is now safe to call dispell() from inside 'free', 'copy' and
+                'uvar' callbacks to dispell the magic currently in use.
+                Thanks Clinton Gormley for reporting.
+        + Fix : Exceptions thrown from inside a 'free' callback are now always
+                consistently propagated outside of the callback. They used to
+                be lost when the 'free' callback was invoked at the end of an
+                eval block or string.
+        + Fix : The 'reset RMG flag' workaroundn used to allow wizards with
+                both 'uvar' and 'clear' magics to be cast onto a hash, has been
+                made thread-safe.
+
+0.50    2012-06-24 23:00 UTC
+        + Fix : Less memory is leaked when a wizard is freed during global
+                destruction, or when an exception is thrown from a 'free'
+                callback.
+        + Fix : [RT #77991] : t/17-ctl.t fails on perl 5.14 and 5.16.
+                This was actually an issue with ActivePerl, and this test
+                has learned to cope with it.
+                Thanks Gisle Aas for reporting.
+        + Tst : t/35-stash.t has been taught about perl 5.17.1.
+        + Doc : Many clarifications.
+
+0.49    2012-06-05 21:40 UTC
+        This is a maintenance release. The code contains no functional change.
+        Satisfied users of version 0.48 can skip this update.
+        + Fix : [RT #77644] : t/17_ctl.t fails in test 44 since 5.17.0.
+                This test has been taught about perl 5.17.0.
+                Thanks Reini Urban for reporting.
+        + Tst : t/99-kwalitee.t will be skipped when only problematic versions
+                of its dependencies are available.
+
+0.48    2012-02-17 23:40 UTC
+        + Add : You can now pass a reference to undef as the magic callback in
+                order to install a no-op callback.
+                Thanks Florian Ragwitz for the suggestion.
+
+0.47    2011-10-27 16:55 UTC
+        + Add : The new constant VMG_COMPAT_HASH_DELETE_NOUVAR_VOID evaluates
+                to true when "delete $hash{key}" does not call 'delete' uvar
+                magic in void context.
+        + Chg : The MAGIC tokens created by this module no longer use the
+                mg_private member for storing a "magical" signature.
+        + Fix : Triggering magic in a thread on a variable cloned from the main
+                interpreter, and when the wizard already went out of scope,
+                will not segfault anymore.
+        + Opt : The pointer table is no longer needed to ensure thread safety.
+                The size of the object code is about 8% smaller for threaded
+                perls.
+        + Tst : Threads tests will not fail anymore if resources constraints
+                prevent the system from creating all the required threads.
+
+0.46    2011-01-23 16:45 UTC
+        + Fix : [RT #64866] : Assertion failure with perl 5.13.9.
+                The real problem was that dispell() wasn't properly resetting
+                the magical sv flags, which became visible in the test suite
+                only with perl 5.13.9.
+                Thanks Joshua ben Jore for reporting.
+
+0.45    2010-11-21 23:15 UTC
+        This is a maintenance release. The code contains no functional change.
+        Users of 0.44 can skip this update.
+        + Doc : C++ compilers are officially NOT supported.
+        + Doc : The minimum perl 5.10.0 requirement for uvar magic has been
+                made more explicit.
+                Thanks Peter Rabbitson for pointing this out and contributing a
+                patch.
+        + Tst : Tune for perl 5.13.7.
+        + Tst : Capture::Tiny will be used in t/17-ctl.t if and only if it can
+                capture a simple run.
+
+0.44    2010-09-24 19:10 UTC
+        + Fix : Broken linkage on Windows with gcc 3.4, which appears in
+                particular when using ActivePerl's default compiler suite.
+                For those setups, the Variable::Magic shared library will now
+                be linked against the perl dll directly (instead of the import
+                library). This (should) fix RT #51483.
+                Thanks Christian Walde for helping to reproduce this failure
+                and extra testing.
+        + Rem : Support for development perls from the 5.11 branch but older
+                than the 5.11.0 release was removed. This could cause more
+                recent setups to fail.
+        + Tst : Threads tests are now only run on perl 5.13.4 and higher.
+                They could segfault randomly because of what seems to be an
+                internal bug of Perl, which has been addressed in 5.13.4.
+                There is also an environment variable that allows you to
+                forcefully run those tests, but it should be set only for
+                author testing and not for end users.
+
+0.43    2010-06-25 23:35 UTC
+        + Add : The new constant VMG_COMPAT_GLOB_GET tells you whether get magic
+                is called for globs. It's true starting perl 5.13.2.
+        + Chg : All callbacks are now called within an eval-like context.
+                Only free callbacks used to be called that way.
+        + Fix : Some exceptions thrown from a free callback could be lost.
+        + Fix : Croak messages could sometimes be repeated several times.
+        + Fix : t/41-clone.t segfaulting with perl 5.13.2.
+
+0.42    2010-05-19 00:15 UTC
+        This is a maintenance release. The code contains no functional change.
+        Users of 0.41 can skip this update.
+        + Fix : Test failures with perl 5.13.
+        + Tst : Improve coverage.
+
+0.41    2010-03-15 17:35 UTC
+        + Doc : Tweaks and fixups.
+                Thanks Shlomi Fish.
+        + Fix : Compatibility with the soon-to-be-released perl 5.12.0.
+        + Fix : Correctly propagate the errors thrown when variable destruction
+                happens at compile-time and not from inside eval STRING.
+                Thanks Florian Ragwitz and Ash Berlin for reporting.
+
+0.40    2010-01-06 23:20 UTC
+        + Fix : Possible memory miswrites when passing data arguments to cast().
+        + Fix : Minor C portability tweaks.
+
+0.39    2009-12-01 00:05 UTC
+        + Add : You can use a function name as a callback by passing a string
+                reference to wizard() instead of a code reference.
+        + Fix : Compatiblity with perl 5.11.1 and 5.11.2.
+        + Fix : Scalars stored into the data slot no longer leak.
+        + Fix : Thread destruction should not segfault anymore.
+        + Opt : As a result of removing the deprecated features, less memory is
+                used for both threaded (a pointer table is used instead of a
+                hash) and non-threaded (no global structure is needed anymore)
+                perls.
+        + Rem : As advertised in the precendent version, all the signature
+                related features were removed. This includes the 'sig' option
+                to wizard(), the getsig() and gensig() functions, and the SIG_*
+                constants.
+
+0.38    2009-10-04 16:10 UTC
+        + Dep : All the signature-related features are DEPRECATED and will be
+                removed in december 2009. This includes the 'sig' option to
+                wizard(), the getsig() and gensig() functions, and the SIG_*
+                constants.
+                Afaik those features were never used in real life, and they make
+                the XS code slow and brittle. If you want your wizards to be
+                globally available, you'll have to handle that yourself by
+                storing them in a hash.
+        + Doc : More examples in a new COOKBOOK section.
+        + Fix : Compatiblity with the 5.11.0 release. The new compatibility
+                constant VMG_COMPAT_ARRAY_PUSH_NOLEN_VOID was added to cover
+                this.
+        + Fix : Work around Kwalitee test misfailures.
+
+0.37    2009-08-25 15:25 UTC
+        + Add : The new constant VMG_FORKSAFE can be tested to know whether the
+                module will behave nicely when fork()ing. It's currently always
+                true except on Windows where you need perl 5.10.1 for it to be
+                true.
+        + Doc : Nits and clarifications.
+
+0.36    2009-07-05 16:30 UTC
+        + Chg : getdata() now returns an empty list when no magic is present.
+                It used to return undef but did not croak as stated in the doc.
+                Thanks Matt S. Trout for pointing this out.
+        + Fix : Building and tests with ActiveState Perl 5.8 build >= 822.
+
+0.35    2009-05-15 20:50 UTC
+        This is a maintenance release. Users of 0.34 can skip this update.
+        + Chg : uvar magic used to be enabled for 5.9.5. It now requires 5.10 or
+                later.
+        + Fix : Silence compilation warnings for cxinc().
+        + Rem : The workaround introduced in 0.31 for the "Unknown errors" issue
+                was removed, as regression tests show that 0.34 provides a
+                better fix.
+        + Tst : Skip t/40-threads.t on 5.8.x with old versions of threads and
+                threads::shared.
+
+0.34    2009-04-19 16:55 UTC
+        + Fix : Destruction of wizards in require.
+        + Fix : "panic: restartop" in 5.10 when dieing at compile time triggers
+                a destructor.
+
+0.33    2009-03-26 00:00 UTC
+        + Chg : cast() and getsig() now croak too when an invalid signature is
+                passed.
+        + Fix : It was possible to generate with gensig() the same signature
+                twice before actually defining the wizards.
+        + Tst : More stash tests.
+        + Tst : Test when the magic takes place in some cases.
+        + Tst : Improved coverage for the op object feature.
+
+0.32    2009-03-01 13:45 UTC
+        + Chg : dispell() and getdata() now croak when an invalid signature is
+                passed.
+        + Doc : More examples and a brand new synopsis.
+        + Fix : The signature is no longer stored in the mg_private member of
+                the MAGIC struct. This fixes possible clashes with magics from
+                other extensions.
+        + Fix : op info objects weren't blessed into the right class.
+        + Fix : Races when initializing the op names cache under threads.
+
+0.31    2009-02-19 23:50 UTC
+        + Doc : A somewhat better introduction. The FUNCTION section was moved
+                before CONSTANTS and HISTORY since it's more important. And
+                'assignation' is really 'assignment', says Ricardo. :)
+        + Fix : The op_info features are now thread safe.
+        + Fix : Segfaults that occured when trying to get the op name during
+                global destruction.
+        + Fix : Segfaults and wrong "Unknown error" exceptions that happened
+                when dieing in require caused a free callback to fire.
+                Thanks Florian Ragwitz for reporting.
+
+0.30    2009-02-12 17:05 UTC
+        + Add : You can now get in all the callbacks either the name or a B::OP
+                object representing the current op if you pass the new 'op_info'
+                option to wizard() with respective values VMG_OP_INFO_NAME and
+                VMG_OP_INFO_OBJECT.
+        + Doc : Document magic on array/hashes values.
+        + Fix : Completely skip free callbacks during global destruction.
+        + Tst : Tests now pass again on 5.8.3 and lower (they were broken since
+                0.27).
+        + Tst : Test magic on symbol table and on array/hash values.
+
+0.29    2009-02-08 11:10 UTC
+        + Add : Set $_[2] to the default length for len magic on scalars.
+        + Chg : Perl 5.8 is required.
+        + Chg : The CLONE method will no longer be defined for non-threaded
+                perls.
+        + Doc : Nits.
+        + Fix : The logic for turning off the GMAGICAL flag on hashes when no
+                uvar magic is involved could do nasty things on tied hashes.
+        + Upd : More resources in META.yml.
+
+0.28    2009-01-24 17:05 UTC
+        + Add : The 'copy_key' option to wizard(), that enables the safe edition
+                of $_[2] in uvar callbacks to redirect actions to another key.
+        + Fix : Exception objects thrown from callbacks at compile time were not
+                available in $@.
+        + Fix : free callbacks triggered during global destruction could lead to
+                segfaults because the wizard was already freed.
+        + Fix : Refcount of scalars with free callback.
+        + Fix : Segfaults when using get or uvar magic simultaneously with clear
+                magic.
+        + Doc : The documentation about what the callbacks take and should
+                return is now somewhat clearer.
+
+0.27    2009-01-18 23:40 UTC
+        + Fix : Offset of 1 with len magic on scalars.
+        + Fix : Segfaults that seem to happen when one croak in a callback at
+                compile time (thanks Ash Berlin for the testcase).
+        + Upd : Resources in META.yml (Florian Ragwitz)
+        + Tst : Large cleanup resulting in a wider set of tested behaviours.
+
+0.26    2008-11-29 22:05 UTC
+        + Fix : Leaks of cloned coderefs that access lexicals.
+        + Fix : Building with maint-5.8 and blead (thanks Andreas Koenig).
+
+0.25    2008-11-12 19:40 UTC
+        + Fix : Compatibility with 5.8.9.
+        + Fix : Old Pod::Coverage don't ignore CLONE.
+        + Upd : META.yml spec updated to 1.4.
+
+0.24    2008-10-12 14:55 UTC
+        + Fix : Really fix it.
+
+0.23    2008-10-11 17:25 UTC
+        + Fix : Building on perls with multiplicity but not ithreads.
+
+0.22    2008-09-29 19:40 UTC
+        + Doc : Explain how magic differs from overloading.
+        + Fix : Disable thread safety for perl 5.8 on Windows. If you want it
+                enabled, reliable feedback is welcome.
+
+0.21_02 2008-09-28 23:10 UTC
+        + Fix : Hide previously deleted magic tokens in vmg_svt_free (Yuval
+                Kogman).
+
+0.21_01 2008-09-22 13:25 UTC
+        + Chg : Shrink the context data.
+        + Fix : Enable thread safety features for perls that just lack
+                MY_CXT_CLONE.
+        + Tst : Output threads and threads::shared versions in threads tests.
+
 0.20    2008-09-20 23:35 UTC
         + Fix : The module is now thread safe. You can test if it had been
                 built with thread safety features enabled through the