]> git.vpit.fr Git - perl/modules/autovivification.git/log
perl/modules/autovivification.git
9 years agoThis is 0.14 v0.14
Vincent Pit [Sat, 1 Nov 2014 22:25:34 +0000 (20:25 -0200)]
This is 0.14

9 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.

9 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

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

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

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

9 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

9 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.

9 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.

9 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.

9 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.

9 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).

9 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

9 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.

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

10 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

10 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

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

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

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

10 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

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

10 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

10 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

11 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.

11 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.

11 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

11 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.

11 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

11 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

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

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

11 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

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

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

12 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 $].

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

12 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

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

12 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

12 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

13 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.

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

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

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

13 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

13 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.

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

13 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()

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

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

13 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.

13 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

13 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

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

13 years agoThis is 0.06 v0.06
Vincent Pit [Sat, 24 Apr 2010 17:40:36 +0000 (19:40 +0200)]
This is 0.06

13 years agoNote that A_THREADSAFE only has a meaning with a threaded perl
Vincent Pit [Sat, 24 Apr 2010 17:06:13 +0000 (19:06 +0200)]
Note that A_THREADSAFE only has a meaning with a threaded perl

13 years agoWhen a thread exits, teardown what we set up
Vincent Pit [Sat, 24 Apr 2010 15:07:23 +0000 (17:07 +0200)]
When a thread exits, teardown what we set up

13 years agoIntroduce A_THREADSAFE and A_FORKSAFE
Vincent Pit [Sat, 24 Apr 2010 14:27:22 +0000 (16:27 +0200)]
Introduce A_THREADSAFE and A_FORKSAFE

13 years agoFix cloning of hints object when the require propagation workaround is enabled
Vincent Pit [Sat, 24 Apr 2010 13:22:14 +0000 (15:22 +0200)]
Fix cloning of hints object when the require propagation workaround is enabled

Also, get rid of A_HINT_BITS().

13 years agoImprove the require propagation workaround
Vincent Pit [Sat, 24 Apr 2010 12:54:59 +0000 (14:54 +0200)]
Improve the require propagation workaround

Those changes were backported from indirect 0.20.

13 years agoMake sure a_defined() calls get magic before testing for definedness rt56870
Vincent Pit [Fri, 23 Apr 2010 23:23:20 +0000 (01:23 +0200)]
Make sure a_defined() calls get magic before testing for definedness

Before this lvalues never appeared as defined, which caused bugs with multiple
nested tied arrays and hashes.

This fixes RT #56870.

14 years agoThis is 0.05 v0.05
Vincent Pit [Fri, 5 Mar 2010 23:09:29 +0000 (00:09 +0100)]
This is 0.05

14 years agoThis module doesn't care bout MULTIPLICITY, so remove the relevant cruft from Makefile.PL
Vincent Pit [Thu, 4 Mar 2010 12:25:15 +0000 (13:25 +0100)]
This module doesn't care bout MULTIPLICITY, so remove the relevant cruft from Makefile.PL

Thus dynamic_config can now be set to 0.

14 years ago"leys" typo in POD rt53647
Vincent Pit [Thu, 4 Mar 2010 00:27:56 +0000 (01:27 +0100)]
"leys" typo in POD

This fixes RT #53647.

14 years agoHandle non-numeric hints rt55154
Vincent Pit [Thu, 4 Mar 2010 00:22:35 +0000 (01:22 +0100)]
Handle non-numeric hints

We only create our hints as UVs, but we may still be getting non-numeric SVs
if e.g. the autovivification introduction was generated from B::Deparse.

This fixes RT #55154.

14 years agoThis is 0.04 v0.04
Vincent Pit [Sun, 10 Jan 2010 00:25:58 +0000 (01:25 +0100)]
This is 0.04

14 years agoBump copyright year
Vincent Pit [Sun, 10 Jan 2010 00:19:20 +0000 (01:19 +0100)]
Bump copyright year

14 years agoAdd a caveat about dereferencing slices
Vincent Pit [Sun, 10 Jan 2010 00:18:58 +0000 (01:18 +0100)]
Add a caveat about dereferencing slices

14 years agos/specific/kv/ in the array test generator
Vincent Pit [Sat, 9 Jan 2010 15:01:13 +0000 (16:01 +0100)]
s/specific/kv/ in the array test generator