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