]> git.vpit.fr Git - perl/modules/autovivification.git/log
perl/modules/autovivification.git
9 years agoSanitize the return value of a_do_multideref()
Vincent Pit [Tue, 12 May 2015 09:38:47 +0000 (11:38 +0200)]
Sanitize the return value of a_do_multideref()

9 years agoSpecify the lists in the iterator object
Vincent Pit [Wed, 29 Apr 2015 14:15:52 +0000 (11:15 -0300)]
Specify the lists in the iterator object

9 years agoAlso test stores in t/44-multideref.t
Vincent Pit [Wed, 29 Apr 2015 14:07:07 +0000 (11:07 -0300)]
Also test stores in t/44-multideref.t

9 years agoSilence a couple of compiler warnings
Vincent Pit [Wed, 29 Apr 2015 12:53:57 +0000 (09:53 -0300)]
Silence a couple of compiler warnings

9 years agoMake multideref work with stores
Vincent Pit [Wed, 29 Apr 2015 12:52:23 +0000 (09:52 -0300)]
Make multideref work with stores

9 years agoAlso check for definedness for MDEREF_[AH]V_vivify_rv2[ah]v_[ah]elem
Vincent Pit [Mon, 27 Apr 2015 15:41:28 +0000 (12:41 -0300)]
Also check for definedness for MDEREF_[AH]V_vivify_rv2[ah]v_[ah]elem

9 years agoAdd a couple of missing break; statements in pp_multideref()
Vincent Pit [Mon, 27 Apr 2015 15:40:37 +0000 (12:40 -0300)]
Add a couple of missing break; statements in pp_multideref()

9 years agoTest multideref support
Vincent Pit [Mon, 27 Apr 2015 14:14:07 +0000 (11:14 -0300)]
Test multideref support

9 years agoAdd support for OP_MULTIDEREF
Vincent Pit [Sat, 25 Apr 2015 01:39:53 +0000 (22:39 -0300)]
Add support for OP_MULTIDEREF

9 years agoMake sure MULTIPLICITY builds set PERL_IMPLICIT_CONTEXT
Vincent Pit [Sat, 25 Apr 2015 01:39:13 +0000 (22:39 -0300)]
Make sure MULTIPLICITY builds set PERL_IMPLICIT_CONTEXT

9 years agoFactor the error messages in a separate helper function
Vincent Pit [Sat, 25 Apr 2015 01:37:03 +0000 (22:37 -0300)]
Factor the error messages in a separate helper function

9 years agoUpdate the ActivePerl/gcc-3.4 hack for EUMM 7.04
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.

9 years agoReplace STATIC by static
Vincent Pit [Thu, 2 Apr 2015 01:35:46 +0000 (22:35 -0300)]
Replace STATIC by static

9 years agoUpdate VPIT::TestHelpers to 3c878c7c
Vincent Pit [Thu, 12 Mar 2015 13:03:57 +0000 (10:03 -0300)]
Update VPIT::TestHelpers to 3c878c7c

9 years agoReally be compatible with the OP_PARENT feature
Vincent Pit [Fri, 6 Feb 2015 12:17:37 +0000 (13:17 +0100)]
Really be compatible with the OP_PARENT feature

OP_SIBLING() has been renamed to OpSIBLING() in perl 5.21.7.

10 years agoThis is 0.14 v0.14
Vincent Pit [Sat, 1 Nov 2014 22:25:34 +0000 (20:25 -0200)]
This is 0.14

10 years agoAlso mark the unstack ops in our peephole optimizer rt99458 rt99904
Vincent Pit [Sat, 1 Nov 2014 21:39:16 +0000 (19:39 -0200)]
Also mark the unstack ops in our peephole optimizer

This prevents infinite recursion at compile time for ... while 1
constructs, where the body may not contain neither nextstates nor
stubs.

This fixes RT #99458 and RT #99904.

10 years agoTest that infinite loops don't crash
Vincent Pit [Mon, 13 Oct 2014 13:05:15 +0000 (10:05 -0300)]
Test that infinite loops don't crash

10 years agoThis is 0.13 v0.13
Vincent Pit [Sat, 4 Oct 2014 17:07:14 +0000 (19:07 +0200)]
This is 0.13

10 years agoBump copyright year
Vincent Pit [Sat, 4 Oct 2014 16:49:23 +0000 (18:49 +0200)]
Bump copyright year

10 years agoWarn about the global slowdown
Vincent Pit [Sat, 4 Oct 2014 16:37:31 +0000 (18:37 +0200)]
Warn about the global slowdown

10 years agoSilence an "unused variable" compiler warnings on threaded perls
Vincent Pit [Sat, 4 Oct 2014 16:12:42 +0000 (18:12 +0200)]
Silence an "unused variable" compiler warnings on threaded perls

10 years agoAdd support for PERL_OP_PARENT
Vincent Pit [Sat, 4 Oct 2014 16:11:47 +0000 (18:11 +0200)]
Add support for PERL_OP_PARENT

This was introduced in perl 5.21.2.

10 years agoDo nothing after that the thread local storage has been freed
Vincent Pit [Sat, 4 Oct 2014 16:08:16 +0000 (18:08 +0200)]
Do nothing after that the thread local storage has been freed

This de facto disables the pragma for code eval'd during global
destruction of a thread or a pseudo-fork.

10 years agoNullify thread local storage entries when they are freed
Vincent Pit [Sat, 4 Oct 2014 15:39:24 +0000 (17:39 +0200)]
Nullify thread local storage entries when they are freed

This makes possible problems easier to reproduce.

10 years agoDon't cleanup thread local storage before END blocks are executed
Vincent Pit [Sat, 4 Oct 2014 15:37:25 +0000 (17:37 +0200)]
Don't cleanup thread local storage before END blocks are executed

reap.h is no longer necessary.

10 years agoIn the rpeep replacement, don't check every op for recursion
Vincent Pit [Sat, 12 Jul 2014 16:53:52 +0000 (18:53 +0200)]
In the rpeep replacement, don't check every op for recursion

When the rpeep is available (i.e. starting from perl 5.13.4), recursion in
the peephole optimizer replacement seemingly only happens for static
infinite loops (think for (;;) { }), even though the 'seen' pointer table
is checked for every op. This may cause slowdowns even outside of the scope
of the pragma. To mitigate this problem, only check for recursion on
nextstate, dbstate, and stub ops, since one of those three kind of ops must
occur in any loop/block (respectively for non-empty, non-empty debugging
and empty loops).

10 years agoAdd a testdeb target to Makefiles
Vincent Pit [Sat, 12 Jul 2014 16:52:31 +0000 (18:52 +0200)]
Add a testdeb target to Makefiles

10 years agoUse run_perl() from VPIT::TestHelpers rt97703
Vincent Pit [Mon, 1 Sep 2014 13:23:23 +0000 (15:23 +0200)]
Use run_perl() from VPIT::TestHelpers

This updates VPIT::TestHelpers to 4fb18792.

This fixes RT #97703.

11 years agoThis is 0.12 v0.12
Vincent Pit [Thu, 5 Sep 2013 17:21:20 +0000 (19:21 +0200)]
This is 0.12

11 years agoUpdate bundled Test::Leaner to 0.05
Vincent Pit [Sat, 24 Aug 2013 19:26:12 +0000 (16:26 -0300)]
Update bundled Test::Leaner to 0.05

11 years agoMake Perl version numbers more readable
Vincent Pit [Sat, 24 Aug 2013 18:04:04 +0000 (15:04 -0300)]
Make Perl version numbers more readable

11 years agoRemove obsolete kwalitee workarounds
Vincent Pit [Sat, 24 Aug 2013 16:41:23 +0000 (13:41 -0300)]
Remove obsolete kwalitee workarounds

11 years agoNo tabs please
Vincent Pit [Fri, 23 Aug 2013 19:38:22 +0000 (16:38 -0300)]
No tabs please

11 years agoRemove trailing whitespace
Vincent Pit [Fri, 23 Aug 2013 14:03:24 +0000 (11:03 -0300)]
Remove trailing whitespace

11 years agoReplace check functions in a thread-safe way
Vincent Pit [Thu, 22 Aug 2013 21:10:42 +0000 (18:10 -0300)]
Replace check functions in a thread-safe way

11 years agoStop bundling author tests
Vincent Pit [Tue, 20 Aug 2013 21:17:40 +0000 (18:17 -0300)]
Stop bundling author tests

11 years agoUpdate the bug tracker URL in META after the rt.perl.org upgrade
Vincent Pit [Wed, 7 Aug 2013 14:37:23 +0000 (11:37 -0300)]
Update the bug tracker URL in META after the rt.perl.org upgrade

11 years agoGet rid of t/99-kwalitee.t
Vincent Pit [Tue, 6 Aug 2013 03:26:38 +0000 (00:26 -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.

11 years agoThis is 0.11 v0.11
Vincent Pit [Fri, 8 Feb 2013 19:23:02 +0000 (17:23 -0200)]
This is 0.11

11 years agoBump copyright year
Vincent Pit [Fri, 8 Feb 2013 19:08:42 +0000 (17:08 -0200)]
Bump copyright year

11 years agoUpdate VPIT::TestHelpers to e8344578
Vincent Pit [Wed, 30 Jan 2013 16:36:58 +0000 (14:36 -0200)]
Update VPIT::TestHelpers to e8344578

12 years agoDon't run the POD spelling test in taint mode
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.

12 years agoAdd BUILD_REQUIRES to WriteMakefile()
Vincent Pit [Mon, 29 Oct 2012 12:56:57 +0000 (10:56 -0200)]
Add BUILD_REQUIRES to WriteMakefile()

Also add Config and Exporter to BUILD_REQUIRES.

12 years agoPort module loading in tests to VPIT::TestHelpers
Vincent Pit [Mon, 29 Oct 2012 12:46:34 +0000 (10:46 -0200)]
Port module loading in tests to VPIT::TestHelpers

12 years agoUpdate author tests, and add a POD spelling test
Vincent Pit [Mon, 29 Oct 2012 12:38:29 +0000 (10:38 -0200)]
Update author tests, and add a POD spelling test

Also make sure that the kwalitee test unlinks its byproducts.

12 years agoKill Debian_CPANTS.txt suffixes as well
Vincent Pit [Mon, 29 Oct 2012 12:30:43 +0000 (10:30 -0200)]
Kill Debian_CPANTS.txt suffixes as well

12 years agoSilence "unused return values" for POPs calls
Vincent Pit [Mon, 29 Oct 2012 12:21:44 +0000 (10:21 -0200)]
Silence "unused return values" for POPs calls

12 years agoMore POD and wording tweaks
Vincent Pit [Mon, 29 Oct 2012 12:19:38 +0000 (10:19 -0200)]
More POD and wording tweaks

12 years agoBump copyright year
Vincent Pit [Sat, 16 Jun 2012 08:38:54 +0000 (10:38 +0200)]
Bump copyright year

12 years agoQuote version numbers in Makefile.PL
Vincent Pit [Sat, 16 Jun 2012 08:38:34 +0000 (10:38 +0200)]
Quote version numbers in Makefile.PL

12 years agoRequire Module::ExtractUse 0.24 for the Kwalitee test
Vincent Pit [Sun, 19 Feb 2012 13:09:03 +0000 (14:09 +0100)]
Require Module::ExtractUse 0.24 for the Kwalitee test

12 years agoPreserve the PATH environment variable when running a sub-perl on cygwin
Vincent Pit [Fri, 11 Nov 2011 18:44:47 +0000 (19:44 +0100)]
Preserve the PATH environment variable when running a sub-perl on cygwin

12 years agoThreads tests may not be able to spawn all the threads
Vincent Pit [Fri, 11 Nov 2011 18:41:17 +0000 (19:41 +0100)]
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 ;
- use Test::Leaner instead of Test::More, as older Test::More sometimes
cause out of sequence bugs ;
- last but not least, do not hardcode the plan and use done_testing with
the actual number of spawned threads instead.

12 years agoMake sure the POD headings are linkable
Vincent Pit [Fri, 11 Nov 2011 18:18:18 +0000 (19:18 +0100)]
Make sure the POD headings are linkable

12 years agoReorder the members of the a_op_info struct a bit
Vincent Pit [Fri, 11 Nov 2011 17:58:32 +0000 (18:58 +0100)]
Reorder the members of the a_op_info struct a bit

13 years agoMinor POD tweaks
Vincent Pit [Mon, 17 Oct 2011 23:31:01 +0000 (01:31 +0200)]
Minor POD tweaks

13 years agoThis is 0.10 v0.10
Vincent Pit [Wed, 24 Aug 2011 14:58:40 +0000 (16:58 +0200)]
This is 0.10

13 years agoReplace $] by "$]"
Vincent Pit [Wed, 24 Aug 2011 14:35:32 +0000 (16:35 +0200)]
Replace $] by "$]"

An old bug could cause $] to be initialized to a wrong decimal value.
Since its stringified value was always right, we use it instead.

Occurences of $^V were also replaced by $].

13 years agoAdd META.json
Vincent Pit [Wed, 24 Aug 2011 14:29:42 +0000 (16:29 +0200)]
Add META.json

13 years agoUpdate bundled Test::Leaner to 0.04
Vincent Pit [Wed, 24 Aug 2011 14:24:13 +0000 (16:24 +0200)]
Update bundled Test::Leaner to 0.04

13 years agoIgnore MYMETA.json
Vincent Pit [Wed, 24 Aug 2011 12:53:55 +0000 (14:53 +0200)]
Ignore MYMETA.json

13 years agoEncode the README file in UTF-8
Vincent Pit [Wed, 24 Aug 2011 12:53:06 +0000 (14:53 +0200)]
Encode the README file in UTF-8

13 years agoThe last argument to hv_fetch is the lvalue flag, not the hash
Vincent Pit [Mon, 18 Jul 2011 09:40:23 +0000 (11:40 +0200)]
The last argument to hv_fetch is the lvalue flag, not the hash

This could have caused entry vivifications in %^H on 5.8.

13 years agoThis is 0.09 v0.09
Vincent Pit [Wed, 5 Jan 2011 18:40:45 +0000 (19:40 +0100)]
This is 0.09

13 years agoOnly declare dMY_CXT when really needed
Vincent Pit [Tue, 4 Jan 2011 18:22:12 +0000 (19:22 +0100)]
Only declare dMY_CXT when really needed

13 years agoAlways skip seen ops in our peep replacement rt64435
Vincent Pit [Tue, 4 Jan 2011 18:10:07 +0000 (19:10 +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.

This fixes RT #64435.

13 years agoThis is 0.08 v0.08
Vincent Pit [Mon, 3 Jan 2011 20:53:49 +0000 (21:53 +0100)]
This is 0.08

13 years agoBump copyright year
Vincent Pit [Mon, 3 Jan 2011 20:40:18 +0000 (21:40 +0100)]
Bump copyright year

13 years agoSwitch to qw<>
Vincent Pit [Mon, 3 Jan 2011 20:39:55 +0000 (21:39 +0100)]
Switch to qw<>

13 years agoFix building on Windows
Vincent Pit [Mon, 3 Jan 2011 20:36:51 +0000 (21:36 +0100)]
Fix building on Windows

13 years agoThis is 0.07 v0.07
Vincent Pit [Fri, 31 Dec 2010 16:17:47 +0000 (17:17 +0100)]
This is 0.07

13 years agoClarify our policy towards C++ compilers
Vincent Pit [Fri, 31 Dec 2010 15:45:43 +0000 (16:45 +0100)]
Clarify our policy towards C++ compilers

13 years agoSpaces vs tabs
Vincent Pit [Fri, 31 Dec 2010 15:42:56 +0000 (16:42 +0100)]
Spaces vs tabs

13 years agoGet rid of ENTERn/LEAVEn
Vincent Pit [Fri, 31 Dec 2010 15:42:28 +0000 (16:42 +0100)]
Get rid of ENTERn/LEAVEn

They are no longer needed since daea523653756bb45d89c7b17bbc6ac70f37019d.

13 years agoMove all run-time tweaks to the peephole optimizer
Vincent Pit [Fri, 31 Dec 2010 15:39:57 +0000 (16:39 +0100)]
Move all run-time tweaks to the peephole optimizer

This should remove all the remaining races, but it requires perl 5.8.3
since 5.8.2 has a buggy peephole optimizer.

13 years agoFix rare segfaults and bugs with threads
Vincent Pit [Fri, 31 Dec 2010 14:05:15 +0000 (15:05 +0100)]
Fix rare segfaults and bugs with threads

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.

13 years agoMake it easier to tweak the parameters of t/50-threads.t
Vincent Pit [Thu, 30 Dec 2010 22:58:04 +0000 (23:58 +0100)]
Make it easier to tweak the parameters of t/50-threads.t

13 years agoRemove trailing whitespace
Vincent Pit [Thu, 30 Dec 2010 22:35:10 +0000 (23:35 +0100)]
Remove trailing whitespace

13 years agoRemove the #ifdef wrapping the mutex locks/unlocks
Vincent Pit [Thu, 30 Dec 2010 14:54:13 +0000 (15:54 +0100)]
Remove the #ifdef wrapping the mutex locks/unlocks

13 years agoForce linking against the perl dll when using gcc 3.4 on Windows
Vincent Pit [Wed, 29 Dec 2010 23:25:59 +0000 (00:25 +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.

13 years agoCompatibility fix for perl 5.13.7 and greater rt62800
Andrew Main [Wed, 29 Dec 2010 23:03:09 +0000 (00:03 +0100)]
Compatibility fix for perl 5.13.7 and greater

This fixes RT #62800.

13 years agoUpdate ptable.h
Vincent Pit [Wed, 29 Dec 2010 22:48:28 +0000 (23:48 +0100)]
Update ptable.h

13 years agoRun lengthy tests with Test::Leaner
Vincent Pit [Wed, 29 Dec 2010 22:13:43 +0000 (23:13 +0100)]
Run lengthy tests with Test::Leaner

This includes Test::Leaner 0.02.

13 years agoDocument and test vivification of function arguments
Vincent Pit [Thu, 23 Dec 2010 13:56:37 +0000 (14:56 +0100)]
Document and test vivification of function arguments

13 years agoPOD overhaul
Vincent Pit [Thu, 23 Dec 2010 13:34:28 +0000 (14:34 +0100)]
POD overhaul

14 years agoSkip threads tests unless perl version is 5.13.4 or greater
Vincent Pit [Sun, 3 Oct 2010 00:31:48 +0000 (02:31 +0200)]
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.

14 years agoIgnore MYMETA.yml
Vincent Pit [Sun, 3 Oct 2010 00:26:00 +0000 (02:26 +0200)]
Ignore MYMETA.yml

14 years agoGet rid of CALL_FPTR()
Vincent Pit [Sun, 3 Oct 2010 00:25:28 +0000 (02:25 +0200)]
Get rid of CALL_FPTR()

14 years agoTest numerous autovivifications
Vincent Pit [Sat, 26 Jun 2010 14:09:05 +0000 (16:09 +0200)]
Test numerous autovivifications

14 years agoUse the new CLONE_PARAMS API with perl 5.13.2
Vincent Pit [Sat, 26 Jun 2010 13:43:21 +0000 (15:43 +0200)]
Use the new CLONE_PARAMS API with perl 5.13.2

14 years agoMake a_map_fetch() a simple macro around ptable_fetch() in the non-threaded case
Vincent Pit [Mon, 21 Jun 2010 23:25:51 +0000 (01:25 +0200)]
Make a_map_fetch() a simple macro around ptable_fetch() in the non-threaded case

This removes a bit of the run-time performance penalty caused by the pragma.

14 years agoImprove the benchmark
Vincent Pit [Mon, 21 Jun 2010 22:50:03 +0000 (00:50 +0200)]
Improve the benchmark

14 years agoReplace !a_defined() by a_undef()
Vincent Pit [Sat, 19 Jun 2010 15:20:13 +0000 (17:20 +0200)]
Replace !a_defined() by a_undef()

14 years agoBench several levels of dereferenciation
Vincent Pit [Sat, 19 Jun 2010 14:58:10 +0000 (16:58 +0200)]
Bench several levels of dereferenciation

14 years agoAdd a sample benchmark
Vincent Pit [Sat, 19 Jun 2010 13:14:56 +0000 (15:14 +0200)]
Add a sample benchmark

14 years agoImprove the thread destructor trick
Vincent Pit [Tue, 1 Jun 2010 16:20:35 +0000 (18:20 +0200)]
Improve the thread destructor trick

It's currently only used before 5.10.1, so it wasn't really broken by the
recent changes to blead. But the new technique is cleaner and easier to
maintain.

14 years agoAdd a basic thread safety test in t/50-threads.t
Vincent Pit [Tue, 1 Jun 2010 16:08:12 +0000 (18:08 +0200)]
Add a basic thread safety test in t/50-threads.t

14 years agoUse a PPCODE: section in CLONE
Vincent Pit [Tue, 18 May 2010 21:34:50 +0000 (23:34 +0200)]
Use a PPCODE: section in CLONE

14 years agoRequire perl 5.8.1
Vincent Pit [Tue, 18 May 2010 21:33:31 +0000 (23:33 +0200)]
Require perl 5.8.1