Vincent Pit [Tue, 6 Aug 2013 02:55:44 +0000 (23:55 -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 [Fri, 2 Nov 2012 12:35:46 +0000 (10:35 -0200)]
Threads tests may not be able to spawn all the threads
To work around this :
- move all the threads boilerplate to a new helper test module ;
- capture the warnings/errors that threads->create may throw and reprint
them properly as diagnostics ;
- do not hardcode the plan and use 'no_plan' instead.
Vincent Pit [Sat, 26 Feb 2011 19:18:09 +0000 (20:18 +0100)]
Always skip seen ops in our peep replacement
Sometimes, there are loops in the next chain as e.g. with infinite loops
like "for (;;) { ... }". We can't reuse the op_opt member because it's
almost always set after the first pass.
Vincent Pit [Mon, 3 Jan 2011 14:59:22 +0000 (15:59 +0100)]
Skip threads tests unless perl version is 5.13.4 or greater
There was a long standing bug in the handling of GV <-> CV double linkage
that could (and explicitely did with a poisonous perl) cause segfaults at
thread destruction. It got fixed by Dave in commit 803f274 which went in
5.13.3, but the fix was amended for 5.13.4 in commit 09aad8f. Since it's
not really fair for the user to not be able to install the module because
of this, we skip the threads tests unless perl is at least 5.13.4.
Vincent Pit [Mon, 3 Jan 2011 14:46:33 +0000 (15:46 +0100)]
Force linking against the perl dll when using gcc 3.4 on Windows
When a Windows perl links an XS shared object to an import library using
gcc/g++ version 3.4.x, strange breakage happens at load time because the
mutex-related symbols seems not to be reachable. This situation happens
especially for AS perl and the default compiler suite it installs.
We fix this by forcing g++ to link against the dll instead, which should
be in the same directory as the perl executable (at least for AS perl).
This change is the integration of commit 14f8af2 from Variable::Magic's
repository.
Vincent Pit [Sat, 1 Jan 2011 22:21:10 +0000 (23:21 +0100)]
Set the ppaddr member of padsv ops at peep time
There was a race in the "PL_ppaddr[OP_PADSV] save/restore dance" in that
perl might be compiling ops inside and outside the scope of the pragma at
the same time. We solve this by setting the op_ppaddr member of padsv ops
to a_pp_deref during the peephole optimization phase.
Vincent Pit [Fri, 11 Sep 2009 22:57:41 +0000 (00:57 +0200)]
Reset the callbacks when the root interpreter is destroyed
This fix segfaults when the pragma is first loaded from inside a thread.
The global state for the root interpreter is also freed, so it won't leak
anymore.
Vincent Pit [Fri, 11 Sep 2009 21:45:35 +0000 (23:45 +0200)]
Only remap the hint through the pointer table for threaded perls
Also use the hint pointer as the unique identifier for the %^H entry, so
that the pragma no longer leaks when you specify the same hook (i.e. a
reference to the same sub) in two different require scopes.
Vincent Pit [Sat, 4 Jul 2009 10:39:19 +0000 (12:39 +0200)]
Stop leaking the op specific info
This needs extra care under multiplicity perls. We can't actually use a SV because there's no way to free it in the context of the interpreter it was allocated from : it may very well not exist anymore at this point.