]>
git.vpit.fr Git - perl/modules/Variable-Magic.git/log
Vincent Pit [Thu, 16 Apr 2015 19:24:18 +0000 (16:24 -0300)]
Also test cloning in t/09-load-threads.t
Vincent Pit [Tue, 14 Apr 2015 17:12:44 +0000 (14:12 -0300)]
vmg_teardown() should also be called at the end of cloned threads
This is achieved by removing the "top interpreter" guard in vmg_teardown(),
which has been obsoleted by our new loaded refcount.
Vincent Pit [Tue, 14 Apr 2015 17:07:43 +0000 (14:07 -0300)]
Update VPIT::TestHelpers to
6d578776
And list the dependencies for the 'capture' feature in BUILD_REQUIRES.
Vincent Pit [Tue, 14 Apr 2015 17:01:55 +0000 (14:01 -0300)]
Make sure t/40-threads.t does not use the CLONE method
This is t/41-clone.t's job.
Vincent Pit [Tue, 14 Apr 2015 16:53:04 +0000 (13:53 -0300)]
Update VPIT::TestHelpers to
3edc6d15
POSIX is now correctly required.
Vincent Pit [Tue, 14 Apr 2015 16:50:58 +0000 (13:50 -0300)]
Allow disabling thread safety in Makefile.PL
Note that thread safety still cannot be forcefully enabled if the necessary
macros are not defined.
Vincent Pit [Tue, 14 Apr 2015 14:46:12 +0000 (11:46 -0300)]
Make sure the load refcount is reset on global setup
Vincent Pit [Thu, 9 Apr 2015 18:12:26 +0000 (15:12 -0300)]
Don't lock the VMG_LOADED mutex across global destruction
If this mutex falls back to the OP_REFCNT mutex, and that a coderef is
freed during global destruction, the mutex is taken twice and the process
hangs. As a general rule, it does not seem very safe so we just set
vmg_loaded to zero early and only run the global teardown callback if
it is zero. This ensures that this callback will only be called once.
Vincent Pit [Thu, 9 Apr 2015 16:57:47 +0000 (13:57 -0300)]
Update VPIT::TestHelpers to
f24eb57f
And port t/17-ctl.t to the new 'capture' feature. Capture::Tiny is no
longer needed for the optional external tests.
Vincent Pit [Wed, 8 Apr 2015 12:24:50 +0000 (09:24 -0300)]
Reference-count global setup/teardown
This fixes surprises like this one : module loaded in thread 1, then in
thread 2, then thread 1 ends and now the module does not work anymore in
thread 2 (even though it should).
Vincent Pit [Mon, 6 Apr 2015 18:50:05 +0000 (15:50 -0300)]
Update t/09-load-test.t
It now has better diagnostics in case of failure, and it tests asymetrical
thread termination.
Vincent Pit [Tue, 31 Mar 2015 20:18:40 +0000 (17:18 -0300)]
Make sure MULTIPLICITY builds set PERL_IMPLICIT_CONTEXT
Vincent Pit [Tue, 31 Mar 2015 17:22:15 +0000 (14:22 -0300)]
Add a missing volatile qualifier
Vincent Pit [Tue, 31 Mar 2015 17:14:53 +0000 (14:14 -0300)]
Improve scheduling for the parallel loading test
Vincent Pit [Mon, 30 Mar 2015 20:45:56 +0000 (17:45 -0300)]
Revamp the setup boot logic
All of this just to fix a couple of leaks!
Vincent Pit [Mon, 30 Mar 2015 20:01:51 +0000 (17:01 -0300)]
Set PERL_DESTRUCT_LEVEL through the environment variable on debugging perls
Vincent Pit [Mon, 30 Mar 2015 19:39:04 +0000 (16:39 -0300)]
Always honor $ENV{PERL_DESTRUCT_LEVEL} when it's set for a debugging perl
I.e. don't fall back to Perl::Destruct::Level if the level is not high
enough.
Vincent Pit [Mon, 30 Mar 2015 17:16:21 +0000 (14:16 -0300)]
Use PERL_FORCE_TEST_THREADS to force testing global destruction
Vincent Pit [Mon, 30 Mar 2015 17:14:20 +0000 (14:14 -0300)]
Revamp PERL_DESTRUCT_LEVEL handling
Vincent Pit [Mon, 30 Mar 2015 17:13:40 +0000 (14:13 -0300)]
Allow passing level 0 to Variable::Magic::TestGlobalDestruction::import
Vincent Pit [Sat, 28 Mar 2015 00:41:12 +0000 (21:41 -0300)]
Port thread tests to the new VPIT::TestHelpers interface
The new 'force threads test' environment variable is
PERL_FORCE_TEST_THREADS.
Vincent Pit [Sat, 28 Mar 2015 00:32:38 +0000 (21:32 -0300)]
Thoroughly test module loading in threads
Vincent Pit [Sat, 28 Mar 2015 00:31:52 +0000 (21:31 -0300)]
Update VPIT::TestHelpers to
4eeb5afc
Vincent Pit [Tue, 24 Mar 2015 19:54:30 +0000 (16:54 -0300)]
Update the ActivePerl/gcc-3.4 hack for EUMM 7.04
Starting from this version, PERL_ARCHIVE is quoted so we can no longer set
it to the empty string. Instead, we remove all occurrences of PERL_ARCHIVE
in the linking step section of the Makefile, which is OK since we specify
the perl DLL in other variables. This new technique is still valid for
older versions of EUMM.
Vincent Pit [Wed, 11 Mar 2015 15:07:32 +0000 (12:07 -0300)]
This is 0.56
Vincent Pit [Wed, 11 Mar 2015 15:01:22 +0000 (12:01 -0300)]
Bump copyright year
Vincent Pit [Wed, 11 Mar 2015 14:39:51 +0000 (11:39 -0300)]
Update VPIT::TestHelpers to
3d200396
Vincent Pit [Wed, 11 Mar 2015 13:25:06 +0000 (10:25 -0300)]
Add lib.pm to BUILD_REQUIRES
Vincent Pit [Wed, 11 Mar 2015 01:30:07 +0000 (22:30 -0300)]
Replace STATIC by static
Vincent Pit [Wed, 11 Mar 2015 01:04:33 +0000 (22:04 -0300)]
Set the mg_flags inside vmg_sv_magicext() according to the vtbl entries
Vincent Pit [Wed, 11 Mar 2015 00:58:17 +0000 (21:58 -0300)]
Factor the sv_magicext() calls into one vmg_sv_magicext()
This new function effectively steals the given object.
Vincent Pit [Wed, 11 Mar 2015 00:41:08 +0000 (21:41 -0300)]
Add a couple of missing SvREFCNT_dec() after sv_magicext()
Vincent Pit [Tue, 10 Mar 2015 20:02:17 +0000 (17:02 -0300)]
Simplify vmg_propagate_errsv_free() so that ERRSV is not used as a lvalue
Vincent Pit [Tue, 10 Mar 2015 20:01:30 +0000 (17:01 -0300)]
Simplify vmg_pp_propagate_errsv() so that ERRSV is not used as a lvalue
Vincent Pit [Tue, 10 Mar 2015 19:33:52 +0000 (16:33 -0300)]
Simplify vmg_call_sv() so that ERRSV is no longer used as a lvalue
It's less hackish and more resilient to core changes.
Vincent Pit [Tue, 10 Mar 2015 19:10:36 +0000 (16:10 -0300)]
Code cleanups in Variable::Magic::TestGlobalDestruction::import
Vincent Pit [Tue, 10 Mar 2015 19:08:30 +0000 (16:08 -0300)]
Make Variable::Magic::TestGlobalDestruction::import return its result
Vincent Pit [Tue, 10 Mar 2015 19:07:08 +0000 (16:07 -0300)]
Output a diagnostic if global destruction is not tested
Vincent Pit [Tue, 10 Mar 2015 19:05:26 +0000 (16:05 -0300)]
Only test global destruction on perl 5.13.4+
Or if PERL_VARIABLE_MAGIC_TEST_THREADS is set, for debugging purpose.
Vincent Pit [Tue, 10 Mar 2015 18:55:52 +0000 (15:55 -0300)]
Remove taint mode from t/15-self.t
Or Config::Perl::V will never be used.
Vincent Pit [Tue, 10 Mar 2015 18:55:18 +0000 (15:55 -0300)]
Better logic for deciding if this perl has DEBUGGING enabled
In particular, it uses Config::Perl::V if it is present.
Vincent Pit [Mon, 20 Oct 2014 23:45:33 +0000 (21:45 -0200)]
This is 0.55
Vincent Pit [Mon, 20 Oct 2014 23:33:59 +0000 (21:33 -0200)]
Remove test dependencies list in POD
Vincent Pit [Mon, 20 Oct 2014 21:39:48 +0000 (19:39 -0200)]
Add support for METHOP ops
This new op class has been introduced with perl commit
b46e009d9 , which was
published with perl 5.21.5.
This fixes RT #99319.
Vincent Pit [Mon, 20 Oct 2014 21:31:50 +0000 (19:31 -0200)]
Don't hardcode the OPc_* values
This simplifies the addition of new op classes.
Vincent Pit [Mon, 22 Sep 2014 17:30:47 +0000 (19:30 +0200)]
This is 0.54
Vincent Pit [Mon, 22 Sep 2014 17:09:53 +0000 (19:09 +0200)]
Bump copyright year
Vincent Pit [Mon, 22 Sep 2014 17:07:25 +0000 (19:07 +0200)]
Add support for copy magic on code prototype clone
This introduces the constant VMG_COMPAT_CODE_COPY_CLONE.
Vincent Pit [Mon, 22 Sep 2014 16:20:30 +0000 (18:20 +0200)]
Really make t/35-stash.t pass on 5.21.4
Looks like the core was changed between commit
31d52b17 and the release
of perl 5.21.4.
Vincent Pit [Mon, 1 Sep 2014 12:57:05 +0000 (14:57 +0200)]
Use run_perl() from VPIT::TestHelpers
This updates VPIT::TestHelpers to
4fb18792 .
Vincent Pit [Mon, 1 Sep 2014 12:09:07 +0000 (14:09 +0200)]
Make t/35-stash.t pass on 5.21.4
Vincent Pit [Sun, 1 Sep 2013 17:50:02 +0000 (19:50 +0200)]
This is 0.53
Vincent Pit [Sun, 1 Sep 2013 17:42:32 +0000 (19:42 +0200)]
Bump copyright year
Vincent Pit [Sat, 24 Aug 2013 18:19:32 +0000 (15:19 -0300)]
Make Perl version numbers more readable
Vincent Pit [Sat, 24 Aug 2013 16:40:45 +0000 (13:40 -0300)]
Remove obsolete kwalitee workarounds
Vincent Pit [Fri, 23 Aug 2013 19:37:57 +0000 (16:37 -0300)]
No tabs please
Vincent Pit [Tue, 20 Aug 2013 21:17:15 +0000 (18:17 -0300)]
Stop bundling author tests
Vincent Pit [Tue, 6 Aug 2013 03:23:30 +0000 (00:23 -0300)]
Get rid of t/99-kwalitee.t
New versions started to throw warnings if specific environment variables
are not set. This may be appropriate for dist manager users, but not really
for the rest of the world.
Since kwalitee metrics are either obvious or useless, there's no big loss
in removing this test anyway.
Vincent Pit [Sun, 23 Jun 2013 02:24:58 +0000 (23:24 -0300)]
Update the bug tracker URL in META after the rt.perl.org upgrade
Vincent Pit [Sun, 23 Jun 2013 02:23:02 +0000 (23:23 -0300)]
Typo in POD
Reported by dsteinbrunner@pobox.com.
This fixes RT #86338.
Vincent Pit [Wed, 30 Jan 2013 17:10:51 +0000 (15:10 -0200)]
Update VPIT::TestHelpers to
e8344578
Vincent Pit [Mon, 5 Nov 2012 02:30:14 +0000 (00:30 -0200)]
This is 0.52
Vincent Pit [Mon, 5 Nov 2012 02:11:20 +0000 (00:11 -0200)]
Add VMG_COMPAT_SCALAR_NOLEN
Starting from perl 5.17.4, perl no longer calls 'len' magic on scalars.
This new compatibility macro reflects this change.
This fixes RT #80388.
Vincent Pit [Mon, 5 Nov 2012 01:36:33 +0000 (23:36 -0200)]
Make t/35-stash.t pass with perl 5.17.4 and above
Since this version, delete on a stash does no longer calls 'store' uvar
magic twice.
Vincent Pit [Fri, 2 Nov 2012 01:08:09 +0000 (23:08 -0200)]
Simplify Config loading in Makefile.PL
Vincent Pit [Fri, 2 Nov 2012 00:27:25 +0000 (22:27 -0200)]
Don't run the POD spelling test in taint mode
This causes the test to crash on perl 5.12 and below with sensitive
architectures like FreeBSD. Ultimately the root of the issue seems to have
been https://rt.perl.org/rt3/Public/Bug/Display.html?id=60378.
Thanks Slaven Rezic for debugging this.
Vincent Pit [Wed, 22 Aug 2012 10:14:10 +0000 (12:14 +0200)]
Update author tests requirements
Vincent Pit [Wed, 22 Aug 2012 10:12:49 +0000 (12:12 +0200)]
Add BUILD_REQUIRES to WriteMakefile()
Vincent Pit [Mon, 20 Aug 2012 17:39:21 +0000 (19:39 +0200)]
Check destruction order for exceptions thrown in free callbacks
Vincent Pit [Mon, 20 Aug 2012 17:03:06 +0000 (19:03 +0200)]
Update how author tests load their dependencies
Also make sure that the kwalitee test unlinks its byproducts.
Vincent Pit [Sat, 18 Aug 2012 15:00:32 +0000 (17:00 +0200)]
This is 0.51
Vincent Pit [Sat, 18 Aug 2012 14:33:43 +0000 (16:33 +0200)]
Documentation tweaks
In particular, document how 'free' callbacks propagate exceptions.
Vincent Pit [Sat, 18 Aug 2012 13:48:41 +0000 (15:48 +0200)]
Properly propagate exceptions when a free callback dies at the end of eval
Vincent Pit [Sat, 18 Aug 2012 13:46:50 +0000 (15:46 +0200)]
Kill Debian_CPANTS.txt suffixes as well
Vincent Pit [Sun, 12 Aug 2012 17:14:00 +0000 (19:14 +0200)]
Make the 'reset RMG flag' workaround thread-safe
This uses trampoline ops for threaded perls, where it is not allowed to
modify the contents PL_op points to, but just what PL_op points at.
Vincent Pit [Sun, 12 Aug 2012 17:11:01 +0000 (19:11 +0200)]
Reset the SV each time for the 'reset RMG flag' workaround
This bug caused the workaround to only update the flag of the first hash
that it was called for, regardless of subsequent calls with different
hashes.
Vincent Pit [Sat, 11 Aug 2012 10:28:29 +0000 (12:28 +0200)]
Remove an unused variable
Vincent Pit [Sat, 11 Aug 2012 10:27:57 +0000 (12:27 +0200)]
Prettify the default no-op callback
Vincent Pit [Sun, 5 Aug 2012 20:39:43 +0000 (22:39 +0200)]
Don't crash if dispell is called in a clear, free or uvar callback
Vincent Pit [Fri, 10 Aug 2012 16:47:59 +0000 (18:47 +0200)]
Rename vmg_uvar_del() to vmg_mg_del() to reuse its logic
The new vmg_mg_del() is now also used to remove our PERL_MAGIC_ext tokens.
Vincent Pit [Sat, 4 Aug 2012 23:18:02 +0000 (01:18 +0200)]
Make sure all entries of MY_CXT.b__op_stashes are initialized
Otherwise CLONE may be testing uninitialized memory areas.
Vincent Pit [Sat, 4 Aug 2012 21:50:23 +0000 (23:50 +0200)]
Fix indentation in vmg_call_sv()
The previous commit just made it obvious that it was misindented.
Vincent Pit [Sat, 4 Aug 2012 21:47:31 +0000 (23:47 +0200)]
Port the svt_free-specific part of vmg_call_sv() to a customizable hook
Vincent Pit [Sun, 5 Aug 2012 10:39:26 +0000 (12:39 +0200)]
Always enable VMG_SAVE_LAST_CX
This allows to remove the special case of only setting in_eval when we are
in a destructor.
Vincent Pit [Thu, 2 Aug 2012 21:52:18 +0000 (23:52 +0200)]
Make the uvar user data into a proper struct
Vincent Pit [Sun, 24 Jun 2012 23:00:56 +0000 (01:00 +0200)]
This is 0.50
Vincent Pit [Sun, 24 Jun 2012 22:51:11 +0000 (00:51 +0200)]
Improve Capture::Tiny discovery in t/17-ctl.t
Vincent Pit [Sun, 24 Jun 2012 22:50:26 +0000 (00:50 +0200)]
Don't use the main:: stash in the last test of t/17-ctl.t
As it is less subject to extra lookups.
This fixes RT #77991 in a better way.
Vincent Pit [Sun, 24 Jun 2012 22:30:12 +0000 (00:30 +0200)]
Consistently format magic types with I<>
Vincent Pit [Sun, 24 Jun 2012 22:08:08 +0000 (00:08 +0200)]
Remove a couple of commented asserts
Vincent Pit [Sun, 24 Jun 2012 22:07:45 +0000 (00:07 +0200)]
Leak less memory when an exception is thrown from a free callback
Vincent Pit [Sun, 24 Jun 2012 21:45:52 +0000 (23:45 +0200)]
Move the global destruction logic of t/15-self.t out in an helper module
Vincent Pit [Sun, 24 Jun 2012 19:19:50 +0000 (21:19 +0200)]
Lower t/17-ctl.t's last test expectations
With ActivePerl, there's only one line produced by this test because of
some strange interference between local *_, loading Exporter.pm and
compiling '-d _'. Since this test has also been broken recently by a
change in the core, it is more reliable to stop asking for the exact
count of matches.
This fixes RT #77991.
Vincent Pit [Sat, 23 Jun 2012 21:39:11 +0000 (23:39 +0200)]
Don't leak vtables and wizards freed during global destruction
At this time, we cannot access the callbacks, but we are still allowed
to call Safefree() and PerlMemShared_free().
Vincent Pit [Sat, 23 Jun 2012 21:20:48 +0000 (23:20 +0200)]
Cleaner version numbers
Vincent Pit [Sat, 23 Jun 2012 21:16:51 +0000 (23:16 +0200)]
Remove one extra mention to MGf_COPY
Also explicitely state from which perl versions the MGf_* constants are
available.
Vincent Pit [Sat, 23 Jun 2012 20:02:16 +0000 (22:02 +0200)]
Jumbo POD overhaul
Lots of rewordings and clarifications.
Vincent Pit [Thu, 21 Jun 2012 16:50:19 +0000 (18:50 +0200)]
Teach t/35-stash.t about perl 5.17.1
Vincent Pit [Tue, 5 Jun 2012 21:39:00 +0000 (23:39 +0200)]
This is 0.49
Vincent Pit [Tue, 5 Jun 2012 21:06:47 +0000 (23:06 +0200)]
Teach t/17-ctl.t about perl 5.17.0