]> git.vpit.fr Git - perl/modules/autovivification.git/log
perl/modules/autovivification.git
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

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

14 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

14 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

14 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

14 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().

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

14 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

14 years agoTest keys/values @array
Vincent Pit [Sat, 9 Jan 2010 14:56:42 +0000 (15:56 +0100)]
Test keys/values @array

14 years agoRename t/21-hash-specific.t to t/22-hash-kv.t
Vincent Pit [Sat, 9 Jan 2010 14:02:05 +0000 (15:02 +0100)]
Rename t/21-hash-specific.t to t/22-hash-kv.t

14 years agoUpdate ptable.h
Vincent Pit [Tue, 29 Dec 2009 17:17:57 +0000 (18:17 +0100)]
Update ptable.h

15 years agoRe-indent WriteMakefile() arguments
Vincent Pit [Sun, 4 Oct 2009 09:18:03 +0000 (11:18 +0200)]
Re-indent WriteMakefile() arguments

15 years agoBuild the $name and the main $file from $dist
Vincent Pit [Sun, 4 Oct 2009 08:43:29 +0000 (10:43 +0200)]
Build the $name and the main $file from $dist

15 years agoPut prerequisites in their own separate hash
Vincent Pit [Sun, 4 Oct 2009 07:52:30 +0000 (09:52 +0200)]
Put prerequisites in their own separate hash

15 years agoGive an explicit value to dynamic_config
Vincent Pit [Sun, 4 Oct 2009 07:28:22 +0000 (09:28 +0200)]
Give an explicit value to dynamic_config

15 years agoOnly look up to the first require scope for the require propagation workaround
Vincent Pit [Wed, 30 Sep 2009 22:49:16 +0000 (00:49 +0200)]
Only look up to the first require scope for the require propagation workaround

15 years agoKwalitee test overhaul
Vincent Pit [Sat, 26 Sep 2009 09:53:10 +0000 (11:53 +0200)]
Kwalitee test overhaul

15 years agoHandle array and hash slices
Vincent Pit [Wed, 24 Jun 2009 16:50:42 +0000 (18:50 +0200)]
Handle array and hash slices

15 years agoFactor the rv2xv recheck logic
Vincent Pit [Wed, 24 Jun 2009 15:20:14 +0000 (17:20 +0200)]
Factor the rv2xv recheck logic

15 years agoThis is 0.03 v0.03
Vincent Pit [Tue, 23 Jun 2009 22:20:28 +0000 (00:20 +0200)]
This is 0.03

15 years agoEliminate a quadratic behaviour at compile time
Vincent Pit [Tue, 23 Jun 2009 20:42:37 +0000 (22:42 +0200)]
Eliminate a quadratic behaviour at compile time

15 years agoCover a_ck_padsv()
Vincent Pit [Fri, 19 Jun 2009 23:07:40 +0000 (01:07 +0200)]
Cover a_ck_padsv()

15 years agoAlso handle old-style dereferencing "$$hashref{key}"
Vincent Pit [Fri, 19 Jun 2009 22:09:02 +0000 (00:09 +0200)]
Also handle old-style dereferencing "$$hashref{key}"

15 years agoOnly generate the non-ref test once
Vincent Pit [Fri, 19 Jun 2009 15:59:20 +0000 (17:59 +0200)]
Only generate the non-ref test once

15 years agoThe hint in a_hint() need not to be const
Vincent Pit [Thu, 18 Jun 2009 23:28:27 +0000 (01:28 +0200)]
The hint in a_hint() need not to be const

15 years agoStore UVs more portably into the hint
Vincent Pit [Thu, 18 Jun 2009 23:27:58 +0000 (01:27 +0200)]
Store UVs more portably into the hint

15 years agoAlso test arrays without aelemfast optimization
Vincent Pit [Thu, 18 Jun 2009 22:47:45 +0000 (00:47 +0200)]
Also test arrays without aelemfast optimization

15 years agoRename tests
Vincent Pit [Thu, 18 Jun 2009 22:26:23 +0000 (00:26 +0200)]
Rename tests

15 years agoClassify aliasing constructs in the "store" category
Vincent Pit [Thu, 18 Jun 2009 17:54:35 +0000 (19:54 +0200)]
Classify aliasing constructs in the "store" category

There's no way to guess at compile time if the scalar will be modified, such as in "eval '$_ = 1' for $x->{key}". Practically, there's no way to distinguish the xelem op from the one you get for "$x->{key} = $val". I was going against the interpreter's will and this is my defeat.

This commit partially reverts ddbfd527f4c54458985145aae3a837a8f5868551.

15 years agoReset the original pp whenever possible in pp_rv2xv
Vincent Pit [Thu, 18 Jun 2009 15:41:20 +0000 (17:41 +0200)]
Reset the original pp whenever possible in pp_rv2xv

15 years agorv2xv introducing a gv don't need to be overridden
Vincent Pit [Thu, 18 Jun 2009 14:54:24 +0000 (16:54 +0200)]
rv2xv introducing a gv don't need to be overridden

15 years agoBetter test descriptions
Vincent Pit [Wed, 17 Jun 2009 22:12:56 +0000 (00:12 +0200)]
Better test descriptions

15 years agoReally test non-ref arrays and hashes
Vincent Pit [Wed, 17 Jun 2009 22:04:34 +0000 (00:04 +0200)]
Really test non-ref arrays and hashes

15 years agoThis is 0.02 v0.02
Vincent Pit [Wed, 17 Jun 2009 18:04:37 +0000 (20:04 +0200)]
This is 0.02

15 years agoTest "use autovivification"
Vincent Pit [Wed, 17 Jun 2009 14:22:48 +0000 (16:22 +0200)]
Test "use autovivification"

15 years agoA crude warning test
Vincent Pit [Wed, 17 Jun 2009 14:15:11 +0000 (16:15 +0200)]
A crude warning test

15 years agoTest keys/values on true references
Vincent Pit [Wed, 17 Jun 2009 14:12:56 +0000 (16:12 +0200)]
Test keys/values on true references

15 years agoIf we fetch from the pointer table, the entry must exist (or segfault in a more expli...
Vincent Pit [Wed, 17 Jun 2009 13:47:53 +0000 (15:47 +0200)]
If we fetch from the pointer table, the entry must exist (or segfault in a more explicit way)

15 years agoRun t/23-hash-specific.t under taint mode
Vincent Pit [Wed, 17 Jun 2009 13:34:15 +0000 (15:34 +0200)]
Run t/23-hash-specific.t under taint mode

15 years agoUpdate ck_root() comment
Vincent Pit [Wed, 17 Jun 2009 13:19:53 +0000 (15:19 +0200)]
Update ck_root() comment

15 years agoDon't autovivify in keys/values
Vincent Pit [Wed, 17 Jun 2009 13:06:24 +0000 (15:06 +0200)]
Don't autovivify in keys/values

15 years agoPlain dereferencing shouldn't have a different behaviour
Vincent Pit [Wed, 17 Jun 2009 10:24:41 +0000 (12:24 +0200)]
Plain dereferencing shouldn't have a different behaviour

15 years agoDelete exists/delete ops from the map when the pragma isn't in use
Vincent Pit [Tue, 16 Jun 2009 10:17:27 +0000 (12:17 +0200)]
Delete exists/delete ops from the map when the pragma isn't in use

15 years agoFix segfaults for "keys %$x"
Vincent Pit [Mon, 15 Jun 2009 21:59:02 +0000 (23:59 +0200)]
Fix segfaults for "keys %$x"

15 years agoFactor the common part of t/20-hash.t and t/21-array.t into a new t/lib/autovivificat...
Vincent Pit [Mon, 15 Jun 2009 21:22:43 +0000 (23:22 +0200)]
Factor the common part of t/20-hash.t and t/21-array.t into a new t/lib/autovivification/TestCases.pm

15 years agoRegenerate t/21-array.t without extraneous spaces at the end of each line
Vincent Pit [Mon, 15 Jun 2009 14:44:20 +0000 (16:44 +0200)]
Regenerate t/21-array.t without extraneous spaces at the end of each line

15 years agoDon't vivify when aliasing
Vincent Pit [Mon, 15 Jun 2009 14:41:17 +0000 (16:41 +0200)]
Don't vivify when aliasing

15 years agoHelp the compiler optimize the PL_op->op_private hack
Vincent Pit [Mon, 15 Jun 2009 13:44:06 +0000 (15:44 +0200)]
Help the compiler optimize the PL_op->op_private hack

15 years agoDelete obsolete entries whenever possible
Vincent Pit [Mon, 15 Jun 2009 13:41:13 +0000 (15:41 +0200)]
Delete obsolete entries whenever possible

15 years agoThis is 0.01 v0.01
Vincent Pit [Sun, 14 Jun 2009 20:08:03 +0000 (22:08 +0200)]
This is 0.01

15 years agoInitial import
Vincent Pit [Sun, 14 Jun 2009 20:04:07 +0000 (22:04 +0200)]
Initial import