1Revision history for autovivification
2
30.18    2017-11-04 15:30 UTC
4        + Fix : [RT #123411] : Compatibility with CV-in-stash optimisation
5                Thanks Father Chrysostomos for reporting and contributing a
6                patch.
7        + Fix : [RT #122956] : strict/warn flags seem to simply do nothing
8                The documentation has been amended to clarify how these two
9                options are supposed to be used.
10                Thanks Christian Walde for reporting.
11
120.17    2017-07-31 17:15 UTC
13        + Chg : A large chunk of boilerplate XS code, which is also used in
14                other XS modules, has been factored out of the main .xs file
15                to a collection of .h files in the xsh subdirectory.
16        + Fix : The new optimization in perl 5.27.3 for scalar(keys(%$hashref))
17                is now correcty supported.
18
190.16    2015-07-01 14:30 UTC
20        + Fix : Broken linkage on Windows.
21
220.15    2015-05-14 20:35 UTC
23        + Chg : The new environment variable to enable thread tests on older
24                perls is PERL_FORCE_TEST_THREADS. Note that this variable
25                should only be turned on by authors.
26        + Fix : The module has been taught about the new multideref
27                optimization, and will function properly on perl 5.21.11 and
28                above.
29        + Fix : The module will no longer crash or behave erratically when it
30                is loaded by several threads (or Windows emulated processes)
31                ran in parallel.
32        + Fix : Update the Windows ActivePerl + gcc 3.4 workaround for
33                ExtUtils::MakeMaker 7.04. Thanks Christian Walde for reporting
34                and feedback on this issue.
35        + Fix : Be really compatible with the optional OP_PARENT feature.
36        + Tst : $ENV{$Config{ldlibpthname}} is now preserved on all platforms,
37                which will address failures of t/43-peep.t and
38                t/51-threads-teardown.t with unusual compilers (like icc) that
39                link all their compiled objects to their own libraries.
40
410.14    2014-11-01 22:25 UTC
42        + Fix : [RT #99458] : AnyEvent::Loop hangs if autovivification 0.13 is
43                loaded
44                [RT #99904] : 'no autovivification' breaks Lingua::EN::Inflect
45                from a distance
46                This was a regression in 0.13 which caused the peephole
47                optimizer to loop infinitely on "... while 1" constructs.
48                However, the Lingua::EN::Inflect problem only occured in perl
49                5.20 and above.
50                Thanks Toshio Ito and Kent Fredric for reporting.
51
520.13    2014-10-04 16:55 UTC
53        This release contains a change that, while being very likely to be safe,
54        can potentially cause freezes during code compilation. Every release
55        should be carefully tested before being put in production, but this is
56        especially true for this one.
57        + Add : Support for the PERL_OP_PARENT optional feature introduced in
58                perl 5.21.2.
59        + Doc : The CAVEATS section now warns about the global slowdown during
60                compilation caused by this pragma.
61        + Fix : [RT #97703] : Android support
62                t/51-threads-teardown.t will no longer fail on Android.
63                Thanks Brian Fraser for reporting.
64        + Fix : Segfaults in eval in an END block of a Win32 pseudo-fork.
65        + Fix : Segfaults during global destruction of a thread or a
66                pseudo-fork.
67        + Opt : The global slowdown caused by this module has been greatly
68                reduced.
69                Thanks Ævar Arnfjörð Bjarmason for reporting and testing the
70                change.
71
720.12    2013-09-05 17:20 UTC
73        + Fix : Check functions are now replaced and restored in a thread-safe
74                manner, either by using the wrap_op_checker() function from perl
75                when it is available (starting from perl 5.16) or by taking the
76                OP_REFCNT mutex on older perls.
77        + Tst : Author tests are no longer bundled with this distribution.
78                They are only made available to authors in the git repository.
79
800.11    2013-02-08 19:25 UTC
81        This is a maintenance release. The code contains no functional change.
82        Satisfied users of version 0.10 can skip this update.
83        + Doc : POD tweaks and clarifications.
84        + Tst : Threads tests will not fail anymore if resources constraints
85                prevent the system from creating all the required threads.
86        + Tst : Author tests overhaul.
87
880.10    2011-08-24 15:00 UTC
89        + Fix : The pragma no longer vivifies the "autovivification" entry
90                in the hints hash %^H on perl 5.8.
91
920.09    2011-01-05 18:40 UTC
93        + Fix : [RT #64435] : Hangs with File::Copy in Config.pm.
94                This was actually a regression introduced together with the new
95                peephole optimizer strategy, and that caused the pragma to hang
96                on constructs like "for (;;) { ... }".
97                Thanks Michael Schilli for reporting.
98
990.08    2011-01-03 21:00 UTC
100        + Fix : Building on Windows.
101
1020.07    2010-12-31 16:20 UTC
103        + Chg : perl 5.8.3 is required.
104        + Doc : Complements and clarifications.
105        + Fix : Segmentation faults and misbehaviours in threaded applications.
106        + Fix : Compatibility with perl 5.13.7.
107                Thanks Andreas J. König for reporting and Andrew Main for
108                providing a fix.
109        + Fix : Broken linkage on Windows with gcc 3.4, which appears in
110                particular when using ActivePerl's default compiler suite.
111                For those setups, the autovivification shared library will now
112                be linked against the perl dll directly (instead of the import
113                library).
114        + Opt : The pragma takes slightly more time at compile-time, but is
115                slightly faster at run-time.
116        + Tst : Lengthy tests have been ported to Test::Leaner, making the
117                whole test suite about 50% faster.
118        + Tst : Threads tests are now only run on perl 5.13.4 and higher.
119                They could segfault randomly because of what seems to be an
120                internal bug of Perl, which has been addressed in 5.13.4.
121                There is also an environment variable that allows you to
122                forcefully run those tests, but it should be set only for
123                author testing and not for end users.
124
1250.06    2010-04-24 17:40 UTC
126        + Add : The A_THREADSAFE and A_FORKSAFE constants.
127        + Fix : [RT #56870] : "no autovivification" vs Regexp::Common.
128                This was a bug in how tied arrays and hashes were handled.
129                Thanks Michael G. Schwern for reporting.
130        + Fix : Scope leaks under perl 5.8-5.10.0.
131        + Fix : Segfaults when first loading the pragma from inside a thread.
132
1330.05    2010-03-05 23:15 UTC
134        + Fix : [RT #55154] : Crashes and assertion failures when deparsing and
135                re-eval-uating some code compiled while autovivification was in
136                use.
137                Thanks Michael G. Schwern for reporting.
138        + Fix : [RT #53647] : "leys" typo in pod.
139                Thanks Hinrik Orn Sigurdsson for reporting.
140
1410.04    2010-01-10 00:30 UTC
142        + Add : Array and hash slices are now handled by the pragma.
143        + Fix : Work around Kwalitee test misfailures.
144
1450.03    2009-06-23 22:20 UTC
146        + Add : Handle old-fashion dereferencing (like $$hashref{key}).
147        + Chg : Aliasing constructs (for ($x{foo}) { ... }) are now covered by
148                the 'store' category (and no longer the 'fetch' one). This is
149                because there's no way to know at compile-time if the alias
150                will be assigned to.
151        + Fix : Quadratic complexity at compile-time.
152        + Fix : Segfaults when dereferencing globals.
153        + Fix : Segfaults on big-endian systems.
154        + Tst : Really test plain arrays and hashes.
155        + Tst : Improved coverage.
156
1570.02    2009-06-17 18:05 UTC
158        + Add : 'fetch' also applies to aliasing ("for ($hashref->{key}) { }").
159        + Fix : Don't segfault on "keys/values %$hashref", and don't vivify if
160                'fetch' is set.
161        + Fix : Plain dereferencing shouldn't have a different behaviour when
162                the pragma is in use.
163        + Tst : Improved coverage.
164
1650.01    2009-06-14 20:10 UTC
166        First version, released on an unsuspecting world.
167
168