perl/modules/autovivification.git
3 years agoThis is 0.18 master v0.18
Vincent Pit [Sat, 4 Nov 2017 15:27:57 +0000 (16:27 +0100)]
This is 0.18

3 years agoClarify how 'strict' and 'warn' currently work rt122956
Vincent Pit [Sat, 4 Nov 2017 15:13:47 +0000 (16:13 +0100)]
Clarify how 'strict' and 'warn' currently work

This fixes [RT #122956].

3 years agoUpdate VPIT::TestHelpers to 15e8aee3 rt123411
Vincent Pit [Sat, 4 Nov 2017 14:57:21 +0000 (15:57 +0100)]
Update VPIT::TestHelpers to 15e8aee3

3 years agoThis is 0.17 v0.17
Vincent Pit [Mon, 31 Jul 2017 17:15:20 +0000 (19:15 +0200)]
This is 0.17

3 years agoUpdate VPIT::XSHelpers to 18554226
Vincent Pit [Mon, 31 Jul 2017 15:58:07 +0000 (17:58 +0200)]
Update VPIT::XSHelpers to 18554226

3 years agoProtect against d_cplusplus perls
Vincent Pit [Mon, 21 Dec 2015 14:58:25 +0000 (15:58 +0100)]
Protect against d_cplusplus perls

It's only a matter of time before someone uses this in the wild.

3 years agoBump copyright year
Vincent Pit [Mon, 31 Jul 2017 15:47:18 +0000 (17:47 +0200)]
Bump copyright year

3 years agoRevamp a_map_update_flags_topdown()
Vincent Pit [Mon, 31 Jul 2017 15:45:52 +0000 (17:45 +0200)]
Revamp a_map_update_flags_topdown()

Make it take a mask so that it seems less magical.  Also get rid of
a_map_cancel().

3 years agoFix autovivification for scalar(keys(%)) in perl 5.27.3
Vincent Pit [Mon, 31 Jul 2017 14:46:17 +0000 (16:46 +0200)]
Fix autovivification for scalar(keys(%)) in perl 5.27.3

3 years agoAdd separate hint values for keys/values
Vincent Pit [Mon, 31 Jul 2017 11:30:26 +0000 (13:30 +0200)]
Add separate hint values for keys/values

3 years agoRemove the only use of bool
Vincent Pit [Mon, 31 Jul 2017 10:31:35 +0000 (12:31 +0200)]
Remove the only use of bool

5 years agoThe Big Boilerplate Factorization
Vincent Pit [Wed, 4 Nov 2015 13:37:21 +0000 (11:37 -0200)]
The Big Boilerplate Factorization

5 years agoRemove the code coverage link
Vincent Pit [Fri, 31 Jul 2015 18:56:56 +0000 (15:56 -0300)]
Remove the code coverage link

It's outdated and now covered by cpancover.

5 years agoMake sure asserts are only checked on DEBUGGING builds
Vincent Pit [Fri, 31 Jul 2015 17:25:47 +0000 (14:25 -0300)]
Make sure asserts are only checked on DEBUGGING builds

5 years agoCorrect a copypasted comment
Vincent Pit [Fri, 31 Jul 2015 17:17:58 +0000 (14:17 -0300)]
Correct a copypasted comment

5 years agoHarden t/50-threads.t against stray exits
Vincent Pit [Fri, 31 Jul 2015 15:53:38 +0000 (12:53 -0300)]
Harden t/50-threads.t against stray exits

5 years agoHarden t/09-load-threads.t against stray exits
Vincent Pit [Fri, 31 Jul 2015 15:51:28 +0000 (12:51 -0300)]
Harden t/09-load-threads.t against stray exits

5 years agoUpdate VPIT::TestHelpers to ba865c42
Vincent Pit [Fri, 31 Jul 2015 15:50:28 +0000 (12:50 -0300)]
Update VPIT::TestHelpers to ba865c42

5 years agoThis is 0.16 v0.16
Vincent Pit [Wed, 1 Jul 2015 14:30:47 +0000 (11:30 -0300)]
This is 0.16

5 years agoUpdate VPIT::TestHelpers to 3ba261a5
Vincent Pit [Wed, 1 Jul 2015 02:18:19 +0000 (23:18 -0300)]
Update VPIT::TestHelpers to 3ba261a5

5 years agoNo tabs please
Vincent Pit [Wed, 1 Jul 2015 02:08:49 +0000 (23:08 -0300)]
No tabs please

5 years agoBundle vivify_ref()
Vincent Pit [Wed, 1 Jul 2015 02:08:19 +0000 (23:08 -0300)]
Bundle vivify_ref()

It is not exported by perl, so the module did not build on Windows (where
export lists are explicit).

5 years agoThis is 0.15 v0.15
Vincent Pit [Thu, 14 May 2015 20:35:22 +0000 (22:35 +0200)]
This is 0.15

5 years agoDestroy the op map mutex at end time
Vincent Pit [Thu, 14 May 2015 20:07:27 +0000 (22:07 +0200)]
Destroy the op map mutex at end time

5 years agoAdd a missing aTHX for Win32 builds
Vincent Pit [Thu, 14 May 2015 19:59:57 +0000 (21:59 +0200)]
Add a missing aTHX for Win32 builds

5 years agoMake sure gv ops seen by multideref are cleaned from the global table
Vincent Pit [Thu, 14 May 2015 15:38:01 +0000 (17:38 +0200)]
Make sure gv ops seen by multideref are cleaned from the global table

Since they are created in the peephole optimizer, multideref ops have to
rely on getting the lexical scope hints from their first kid. It might have
happened that the kid of one such op was a gv op compiled in the scope of
the pragma, and was then reused outside of the scope of the pragma again
as the first kid of another multideref op. In that case, the multideref op
was wrongly replaced. This is solved by always clearing gv ops entries in
ck_rv2xv() from the global op map.

This solves random failures of test 12 from t/40-scope.t.

5 years agoBump copyright year
Vincent Pit [Thu, 14 May 2015 15:07:44 +0000 (17:07 +0200)]
Bump copyright year

5 years agoUpdate ptable.h
Vincent Pit [Thu, 14 May 2015 15:07:23 +0000 (17:07 +0200)]
Update ptable.h

5 years agoRevamp module setup/teardown
Vincent Pit [Thu, 14 May 2015 14:25:45 +0000 (16:25 +0200)]
Revamp module setup/teardown

This fixes crashes and bugs when loading the pragma in several threads run
in parallel.

5 years agoRename A_CHECK_MUTEX_* to A_CHECK_*
Vincent Pit [Tue, 12 May 2015 10:05:05 +0000 (12:05 +0200)]
Rename A_CHECK_MUTEX_* to A_CHECK_*

5 years agoUpdate VPIT::TestHelpers to 2a6ac0f1
Vincent Pit [Tue, 12 May 2015 09:56:00 +0000 (11:56 +0200)]
Update VPIT::TestHelpers to 2a6ac0f1

And port the tests to the new interfaces.

5 years agoDocument that the multideref implementation is only used for exists/delete
Vincent Pit [Tue, 12 May 2015 09:54:07 +0000 (11:54 +0200)]
Document that the multideref implementation is only used for exists/delete

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

5 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

5 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

5 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

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

5 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

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

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

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

5 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

5 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

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

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

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

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

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

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

6 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

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

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

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

6 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

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

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

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

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

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

6 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

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

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

7 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

7 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

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

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

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

7 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

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

7 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

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

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

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

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

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

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

8 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

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

8 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

8 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

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

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

8 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

9 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

9 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

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

9 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

9 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

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

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

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

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

9 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

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

9 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

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

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

10 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

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

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