This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Bump $VERSION in all dist/IO .pm files
[perl5.git] / dist / Storable / ChangeLog
1 2010-01-27 10:27:00 TonyC
2     version 3.20
3         * fix a format string and arguments for some debugging text
4         * linkify references to alternatives to Storable
5
6 2020-01-27 11:01:00 TonyC
7     version 3.19
8         * add casts to match some I32 parameters to "%d" formats (#17339)
9         * fix dependencies in Makefile.PL -> META (#17422)
10         * make use of note() optional, this requires a newer version of
11           Test::More and there's a circular dependency between later
12           versions of Test::More and Storable  (#17422)
13
14 2019-11-19 07:59:39 TonyC
15     version 3.18
16         * update bug tracker to point at github (#17298)
17         * disallow vstring magic strings over 2GB-1 (#17306)
18         * mark some ASCII dependent tests as ASCII platform only
19
20 2019-08-08 11:48:00 TonyC
21     version 3.17
22         * correct a data type to ensure the check for too large results from
23           STORABLE_freeze() are detected correctly (detected by Coverity)
24         * removed remains of stack size detection from the build process.
25         * moved CAN_FLOCK detection into XS to simplify the build process.
26
27 2019-06-11 10:43:00 TonyC
28     version 3.16
29         * (perl #134179) fix self-referencing structures that include regexps
30         * bless regexps to preserve bless qr//, "Foo"
31
32 2019-04-23 16:00:00 xsawyerx
33     version 3.15
34     * Fix leaking.
35
36 unreleased
37     version 3.14
38         * (perl #133708) don't build-time probe for stack limits at all
39
40 unreleased
41     version 3.12
42         * (perl #133411) don't probe for stack limits with -Dusecrosscompile
43
44 2018-04-27 20:40:00 xsawyerx
45     version 3.11
46         * Fix Strawberry Perl build failures.
47
48 2018-04-21 22:00:00 xsawyerx
49     Version 3.10
50         * Fix binary artifacts from distribution.
51
52 2018-04-21 16:49:00 xsawyerx
53     Version 3.09
54         * Fix "provides" in metadata (META.yml/META.json) to use the Storable
55           template instead of a small other file (which also didn't exist).
56
57 2018-04-21 11:23:00 xsawyerx
58     Version 3.08
59         * (perl #132849) try to disable core files when deliberatly segfaulting.
60         * (perl #127743) don't probe Storable limits so much.
61         * (perl #132893) don't probe for Storable recursion limits on old Win32.
62         * (perl #132870) workaround VC2017 compiler bug.
63         * (perl #127743) re-work for debugging builds with MSVC.
64         * (perl #133039) dont build a Storable.so/.dll with a static perl build.
65
66 2018-02-07 15:08:00 tonyc
67     Version 3.06
68
69         * support large object ids.  The code in theory supported arrays
70         with more than 2**32 elements, but references to the elements
71         emitted at the end of the array with be retrieved as references to
72         the wrong elements.
73         * 32-bit object ids over 2**31-1 weren't correctly handled.
74         * hook object id generation now supports 64-bit ids where needed
75         * writing 64-bit lengths in network order now works
76         * reading 64-bit lengths in network order now reads the components
77         in the correct order.
78         * retrieving large object tags are now only handled on 64-bit
79         platforms, large object tags should only be emitted for objects
80         that are too large for the 32-bit address space, so it was only
81         wasted code.
82         * reading 32-bit lengths for LSCALAR and LUTF8STR as unsigned
83         (perl #131990)
84         * reading flagged large object hashes didn't read the flags
85         * treat the 32-bit size of hook data as unsigned, values over 2GB
86         were treated as large (close to 2**64) parameters to NEWSV().
87         (perl #131999)
88         * added support for hook data over 4GB in size
89         * zero length data receievd from STORABLE_freeze() no longer
90         results in an invalid SV being passed to STORABLE_thaw/_attach()
91         (perl #118551)
92         * where practical, padding is now cleared when emitting a long
93         double (perl #131136)
94         * cache the value of $Storable::DEBUGME (since cperl enabled
95         Storable TRACEME builds for all -DDEBUGGING builds)
96         * no longer discard exceptions thrown by
97         STORABLE_freeze/_thaw/attach() (perl #25933)
98         * fix dependencies used to build Storable.pm from __Storable__.pm
99         * add experimental support for freezing/thawing regular
100         expressions (perl #50608)
101         * re-work recursion limiting to store the limit in a perl variable
102         instead of baked into Storable.$so.  This allows static Storable
103         builds to work, and avoids the kind of circular reference on
104         Storable.$so.
105
106 2017-07-24 13:57:13 rurban
107     Version 3.05_13
108
109         * mingw fix: use safe defaults, not segfaulting defaults.
110         mingw fails on the stacksize binary search, leaving it empty.
111
112 Wed Apr 19 09:11:07 2017 +0200 Reini Urban <rurban@cpan.org>
113     Version 3.05_12
114
115         * enhance stack reserve from 8 to 16
116         * fix LD_LIBRARY_PATH usage for CORE
117         * fixed some coverity warnings and leaks
118         * added a release make target
119
120 Wed Mar 29 21:04:28 2017 +0200 Reini Urban <rurban@cpan.org>
121     Version 3.05_11
122
123         * croak on sizes read > I32_MAX
124         * simplify last_op_in_netorder
125         * protect from empty retrieve_vstring
126         * protect store_other error buf, potential static
127         buffer overflow.
128
129 Tue Mar 14 09:52:20 2017 +0100 Reini Urban <rurban@cpan.org>
130     Version 3.05_10
131
132         * CORE-only improvements to stacksize
133
134 Thu Mar 9 19:20:19 2017 +0100 Reini Urban <rurban@cpan.org>
135     Version 3.05_09
136
137         * compute the stacksizes, improve cleanup within croak
138         from stack exhaustion.
139         * added stack_depth and stack_depth_hash getters.
140
141 Wed Mar  8 21:03:43 CET 2017 Reini Urban <rurban@cpan.org>
142     Version 3.05_08
143
144         * finetune the max stack limit, for C++, DEBUGGING and 32bit.
145         * fix t/blessed.t for cperl5.22
146
147 Sun Mar 5 13:36:47 2017 +0100 Reini Urban <rurban@cpan.org>
148     Version 3.05_07
149
150         * Fixed a podchecker issue
151
152 Sun Mar 5 11:42:04 2017 +0100 Reini Urban <rurban@cpan.org>
153     Version 3.05_06
154
155         * Fixed wrong recursion depth error with large arrays containing
156         another array.
157         L<[cperl #257]|https://github.com/perl11/cperl/issues/257>
158
159 Thu Feb 2 12:40:44 2017 +0100 Reini Urban <rurban@cpanel.net>
160     Version 3.05_05
161
162         * Add leak tests for [cpan #97316], [perl #121928]
163         * Limit the max recursion depth to 1200 on 32bit systems.
164         We have no max_depth option yet, as in JSON::XS.
165
166 Thu Feb 2 11:59:21 2017 +0100 Reini Urban <rurban@cpanel.net>
167     Version 3.05_04
168
169         * Fix retrieve_tied_array which fails since 5.16
170         [cpan #84705]
171         * Improve t/blessed.t in the creation of sv_yes/sv_no
172         with threaded perls.
173
174 Tue Jan 31 02:55:30 2017 +0100 Reini Urban <rurban@cpanel.net>
175     Version 3.05_03
176
177         * Tune t/recurse.t stack-overflow limit more.
178
179 Mon Jan 30 19:50:29 2017 +0100 Reini Urban <rurban@cpanel.net>
180     Version 3.05_02
181
182         * Tune t/recurse.t stack-overflow limit. Small 64bit systems overflow
183         even with depth 3000, where 32bit are ok.
184
185 Mon Jan 30 15:13:38 2017 +0100 Reini Urban <rurban@cpanel.net>
186     Version 3.05_01
187
188         * Protect against stack overflows with nested arrays and hashes
189         [cpan #97526]. This imposes a new limit to your nested structures,
190         but JSON::XS has a limit of 512. We use a max_depth of 3000 for the
191         typical stack limit of 8k.
192
193
194 Sun Jan 29 11:36:43 2017 +0100 Reini Urban <rurban@cpanel.net>
195     Version 3.05
196
197         * Protect against classname len overflow on the stack
198         and 2x on the heap with retrieve_bless and retrieve_hook.
199         A serious security issue with malcrafted storable files or buffers,
200         but p5p accepts no CVE on Storable attacks. See RT #130635
201         (reported by JD).
202         * Fix NULL ptr SEGVs with retrieve_code and retrieve_other.
203         See RT #130098 (reported and fixed by JD)
204         * Fix wrong huge LOBJECT support, broken since 3.00c.
205         Repro with `export PERL_TEST_MEMORY=8`
206         * Fix the few remaining 2-arg open calls.
207         * Portability and backport fixes back to 5.6.2
208
209 Sat Jan 7 09:01:29 2017 +0100 Reini Urban <rurban@cpanel.net>
210     Version 3.04c
211
212         * fix printf types and warnings, esp. for 32bit use64bitint
213         * Change sv_setpvn(…, "…", …) to sv_setpvs(…, "…")
214
215 Tue Jul 26 11:49:33 2016 +1000 Tony Cook <tony@develop-help.com>
216     Version 3.03c
217
218         * remove . from @INC when loading optional modules
219
220 Sun Nov 20 18:06:45 2016 +0100 Reini Urban <rurban@cpanel.net>
221     Version 3.02c
222
223         * Fix -Wc++11-compat warnings, fix -Wchar-subscripts
224
225 Fri Sep 16 01:32:59 2016 +0200 Reini Urban <rurban@cpanel.net>
226     Version 3.01c
227
228         * Added warn_security("Movable-Type CVE-2015-1592 Storable metasploit attack")
229           when detecting the third destructive metasploit vector,
230           thawing bless \"mt-config.cgi", "CGITempFile".
231
232 Thu Mar 31 17:10:27 2016 +0200 Reini Urban <rurban@cpanel.net>
233     Version 3.00c
234
235         * Added support for u64 strings, arrays and hashes >2G
236           via a new LOBJECT tag. This is for 32bit systems and lengths
237           between 2GB and 4GB (I32-U32), and 64bit (>I32).
238         * Bumped STORABLE_BIN_MINOR and STORABLE_BIN_WRITE_MINOR from 10 to 11
239         * fix parallel tests, use unique filenames.
240         * fixed 2 instances of 2arg open,
241         * added optional flag arguments to skip tie and bless on retrieve/thaw,
242         * added SECURITY WARNING and Large data support to docs
243         * compute CAN_FLOCK at compile-time
244         * reformat everything consistently
245         * enable DEBUGME tracing and asserts with -DDEBUGGING
246         * fix all 64 bit compiler warnings
247         * added some abstraction methods to avoid code duplication
248
249 ?????? p5p <perl5-porters@perl.org>
250     Version 2.65
251
252         * Replace multiple 'use vars' by 'our'
253         * remove Config dependency
254
255 Wed Jul  2 16:25:25 IST 2014   Abhijit Menon-Sen <ams@toroid.org>
256     Version 2.51
257
258         * [perl #121928] Fix memory leak for dclone inside freeze hook
259           (Alex Solovey)
260         * Do not call DESTROY for empty objects
261           (Vladimir Timofeev)
262         * Other bugfixes
263
264 Sat Jul 13 18:34:27 IST 2013   Abhijit Menon-Sen <ams@toroid.org>
265     Version 2.45
266
267        * [perl #118829] Memory leaks in STORABLE_attach
268          (Vladimir Timofeev)
269        * [perl #118139] Don't SEGV during global destruction
270          (Nicholas Clark, report/test from Reini Urban)
271        * Added security warnings section (Steffen Mueller)
272        * Update INSTALLDIRS to favour installation in 'site'
273          (James E Keenan)
274
275 Tue 11 Sep 06:51:11 IST 2012   Abhijit Menon-Sen <ams@toroid.org>
276     Version 2.39
277
278         Various bugfixes, including compatibility fixes for older
279         versions of Perl and vstring handling.
280
281 Sun  3 Jul 09:10:11 IST 2011   Abhijit Menon-Sen <ams@toroid.org>
282     Version 2.29
283
284         Various bugfixes, notably including preventing nfreeze from
285         incorrectly stringifying integers.
286
287 Fri  3 Dec 14:12:32 GMT 2010   David Leadbeater <dgl@dgl.cx>
288     Version 2.25
289
290         Support for serializing coderefs containing UTF-8.
291
292 Fri Nov 12 10:52:19 IST 2010   Abhijit Menon-Sen <ams@toroid.org>
293
294     Version 2.24
295
296         Performance improvement for overloaded classes from Benjamin
297         Holzman.
298
299 Fri Nov 12 10:36:22 IST 2010   Abhijit Menon-Sen <ams@toroid.org>
300
301     Version 2.23
302
303         Release the latest version from the Perl repository.
304
305 Thu Aug  6 10:55:50 IST 2009   Abhijit Menon-Sen <ams@toroid.org>
306
307     Version 2.21
308
309         Includes hints/hpux.pl that was inadvertently left out of 2.20.
310
311 Mon May 18 09:38:20 IST 2009   Abhijit Menon-Sen <ams@toroid.org>
312
313     Version 2.20
314
315         Fix bug handling blessed references to overloaded objects, plus
316         other miscellaneous fixes.
317
318         (Version 2.19 was released with 5.8.9.)
319
320 Thu Nov 22 13:24:18 IST 2007   Abhijit Menon-Sen <ams@toroid.org>
321
322     Version 2.18
323
324         Compile fixes for older Perls. (No functional changes.)
325
326 Sat Nov 17 02:12:12 IST 2007   Abhijit Menon-Sen <ams@toroid.org>
327
328     Version 2.17
329
330         Various broken tests fixed. (No functional changes.)
331
332 Sat Mar 31 06:11:06 IST 2007   Abhijit Menon-Sen <ams@toroid.org>
333
334     Version 2.16
335
336         1. Fixes to Storable::dclone, read_magic, retrieve_lscalar
337         2. Storable 0.1 compatibility
338         3. Miscellaneous compile/leak/test/portability fixes
339
340 Mon May 23 22:48:49 IST 2005   Abhijit Menon-Sen <ams@wiw.org>
341
342     Version 2.15
343
344         Minor changes to address a couple of compile problems.
345
346 Mon Apr 25 07:29:14 IST 2005   Abhijit Menon-Sen <ams@wiw.org>
347
348     Version 2.14
349
350         1. Store weak references
351         2. Add STORABLE_attach hook.
352
353 Thu Jun 17 12:26:43 BST 2004   Nicholas Clark <nick@ccl4.org>
354
355     Version 2.13
356
357         1. Don't change the type of top level overloaded references to RV -
358            they are perfectly correct as PVMG
359         2. Storable needs to cope with incoming frozen data that happens to be
360            utf8 encoded.
361
362 Wed Mar 17 15:40:29 GMT 2004   Nicholas Clark <nick@ccl4.org>
363
364     Version 2.12
365
366         1. Add regression tests for the auto-require of STORABLE_thaw
367         2. Add auto-require of modules to restore overloading (and tests)
368         3. Change to no context (should give speedup with ithreads)
369
370 Sat Mar 13 20:11:03 GMT 2004   Nicholas Clark <nick@ccl4.org>
371         
372     Version 2.11
373
374         1. Storing restricted hashes in canonical order would SEGV. Fixed.
375         2. It was impossible to retrieve references to PL_sv_no and
376            PL_sv_undef from STORABLE_thaw hooks.
377         3. restrict.t was failing on 5.8.0, due to 5.8.0's unique
378            implementation of restricted hashes using PL_sv_undef
379         4. These changes allow a space optimisation for restricted hashes.
380
381 Sat Jan 24 16:22:32 IST 2004   Abhijit Menon-Sen <ams@wiw.org>
382
383     Version 2.10
384
385         1. Thread safety: Storable::CLONE/init_perlinterp() now create
386            a new Perl context for each new ithread.
387            (From Stas Bekman and Jan Dubois.)
388         2. Fix a tag count mismatch with $Storable::Deparse that caused
389            all back-references after a stored sub to be off-by-N (where
390            N was the number of code references in between).
391            (From Sam Vilain.)
392         3. Prevent CODE references from turning into SCALAR references.
393            (From Slaven Rezic.)
394
395 Sat Jan  3 18:49:18 GMT 2004   Nicholas Clark <nick@ccl4.org>
396
397     Version 2.09
398
399         Fix minor problems with the CPAN release
400         1: Make Storable.xs work on 5.8.2 and later (already in the core)
401         2: Ship the linux hints file
402         3: Ship Test::More for the benefit of Perls pre 5.6.2
403         4: Correct Makefile.PL to only install in core for 5.8.0 and later
404
405 Sat Sep  6 01:08:20 IST 2003   Abhijit Menon-Sen <ams@wiw.org>
406
407     Version 2.08
408
409         This release works around a 5.8.0 bug which caused hashes to not
410         be marked as having key flags even though an HEK had HEK_WASUTF8
411         set. (Note that the only reasonable solution is to silently drop
412         the flag from the affected key.)
413
414         Users of RT 3 who were seeing assertion failures should upgrade.
415         (Perl 5.8.1 will have the bug fixed.)
416
417 Mon May  5 10:24:16 IST 2003   Abhijit Menon-Sen <ams@wiw.org>
418
419     Version 2.07
420
421         Minor bugfixes (self-tied objects are now correctly stored, as
422         are the results of additions larger than INT_MAX).
423
424 Mon Oct  7 21:56:38 BST 2002   Nicholas Clark  <nick@ccl4.org>
425
426     Version 2.06
427
428         Remove qr// from t/downgrade.t so that it will run on 5.004
429         Mention $File::Spec::VERSION a second time in t/forgive.t so that it
430         runs without warnings in 5.004 (this may be a 5.00405 bug I'm working
431         round)
432         Fix t/integer.t initialisation to actually generate 64 bits of 9c
433         Fix comparison tests to use eval to get around 64 bit IV conversion
434         issues on 5.6.x, following my t/integer.t ^ precedence bug found by
435         Rafael Garcia-Suarez
436         Alter t/malice.t to work with Test/More.pm in t/, and skip individual
437         subtests that use $Config{ptrsize}, so that the rest of the test can
438         now be run with 5.004
439         Change t/malice.t and the error message in check_magic in Storable.xs
440         from "Pointer integer size" to "Pointer size"
441         Remove prerequisite of Test::More from Makefile.PL
442         Ship Test::Builder, Test::Simple and Test::More in t
443
444 Thu Oct  3 08:57:22 IST 2002   Abhijit Menon-Sen <ams@wiw.org>
445
446     Version 2.05
447
448         Adds support for CODE references from Slaven Rezic
449         <slaven.rezic@berlin.de>.
450
451 Fri Jun  7 23:55:41 BST 2002   Nicholas Clark
452
453     Version 2.04
454
455         Bug fix from Radu Greab <radu@netsoft.ro> (plus regression test)
456         to fix a recently introduced bug detected by Dave Rolsky.
457         Bug was that for a non threaded build, the class information was
458         being lost at freeze time on the first object with a STORABLE_freeze
459         hook. Consequentially the object was not blessed at all when thawed.
460         (The presence (or lack) of STORABLE_thaw was irrelevant; this was
461         a store-time data lost bug, caused by failure to initialize internal
462         context)
463         The bug was introduced as development perl change 16442 (on
464         2002/05/07), so has been present since 2.00.
465         Patches to introduce more regression tests to reduce the chance of
466         a reoccurrence of this sort of goof are always welcome.
467         
468 Thu May 30 20:31:08 BST 2002   Nicholas Clark <nick@ccl4.org>
469
470     Version 2.03        Header changes on 5.6.x on Unix where IV is long long
471
472         5.6.x introduced the ability to have IVs as long long.  However,
473         Configure still defined BYTEORDER based on the size of a long.
474         Storable uses the BYTEORDER value as part of the header, but
475         doesn't explicitly store sizeof(IV) anywhere in the header.
476         Hence on 5.6.x built with IV as long long on a platform that
477         uses Configure (ie most things except VMS and Windows) headers
478         are identical for the different IV sizes, despite the files
479         containing some fields based on sizeof(IV)
480
481         5.8.0 is consistent; all platforms have BYTEORDER in config.h
482         based on sizeof(IV) rather than sizeof(long).  This means that
483         the value of BYTEORDER will change from (say) 4321 to 87654321
484         between 5.6.1 and 5.8.0 built with the same options to Configure
485         on the same machine.  This means that the Storable header will
486         differ, and the two versions will wrongly thing that they are
487         incompatible.
488
489         For the benefit of long term consistency, Storable now
490         implements the 5.8.0 BYTEORDER policy on 5.6.x.  This means that
491         2.03 onwards default to be incompatible with 2.02 and earlier
492         (ie the large 1.0.x installed base) on the same 5.6.x perl.
493
494         To allow interworking, a new variable
495         $Storable::interwork_56_64bit is introduced. It defaults to
496         false. Set it to true to read and write old format files. Don't
497         use it unless you have existing stored data written with 5.6.x
498         that you couldn't otherwise read, or you need to interwork with
499         a machine running older Storable on a 5.6.x with long long IVs
500         (i.e., you probably don't need to use it).
501
502 Sat May 25 22:38:39 BST 2002   Nicholas Clark <nick@ccl4.org>
503
504     Version 2.02
505                 
506         Rewrite Storable.xs so that the file header structure for write_magic
507         is built at compile time, and check_magic attempts to the header in
508         blocks rather than byte per byte. These changes make the compiled
509         extension 2.25% smaller, but are not significant enough to give a
510         noticeable speed up.
511
512 Thu May 23 22:50:41 BST 2002   Nicholas Clark <nick@ccl4.org>
513
514     Version 2.01
515
516         - New regression tests integer.t
517         - Add code to safely store large unsigned integers.
518         - Change code not to attempt to store large integers (ie > 32 bits)
519           in network order as 32 bits.
520         
521         *Never* underestimate the value of a pathological test suite carefully
522         crafted with maximum malice before writing a line of real code. It
523         prevents crafty bugs from stowing away in your released code.
524         It's much less embarrassing to find them before you ship.
525         (Well, never underestimate it if you ever want to work for me)
526         
527 Fri May 17 22:48:59 BST 2002   Nicholas Clark <nick@ccl4.org>
528
529     Version 2.0, binary format 2.5 (but writes format 2.4 on pre 5.7.3)
530
531         The perl5 porters have decided to make sure that Storable still
532         builds on pre-5.8 perls, and make the 5.8 version available on CPAN.
533         The VERSION is now 2.0, and it passes all tests on 5.005_03, 5.6.1
534         and 5.6.1 with threads. On 5.6.0 t/downgrade.t fails tests 34 and 37,
535         due to a bug in 5.6.0 - upgrade to 5.6.1.
536
537         Jarkko and I have collated the list of changes the perl5 porters have
538         from the perl5 Changes file:
539
540         - data features of upcoming perl 5.8.0 are supported: Unicode hash
541           keys (Unicode hash values have been supported since Storable 1.0.1)
542           and "restricted hashes" (readonly hashes and hash entries)
543         - a newer version of perl can now be used to serialize data which is
544           not supported in earlier perls: Storable will attempt to do the
545           right thing for as long as possible, croaking only when safe data
546           conversion simply isn't possible. Alternatively earlier perls can
547           opt to have a lossy downgrade data instead of croaking
548         - when built with perls pre 5.7.3 this Storable writes out files
549           with binary format 2.4, the same format as Storable 1.0.8 onwards.
550           This should mean that this Storable will inter-operate seamlessly
551           with any Storable 1.0.8 or newer on perls pre 5.7.3
552         - dclone() now works with empty string scalar objects
553         - retrieving of large hashes is now more efficient
554         - more routines autosplit out of the main module, so Storable should
555           load slightly more quickly
556         - better documentation
557         - the internal context objects are now freed explicitly, rather than
558           relying on thread or process exit
559         - bugs fixed in debugging trace code affecting builds made with 64 bit
560           IVs
561         - code tidy-ups to allow clean compiles with more warning options
562           turned on avoid problems with $@ getting corrupted on 5.005_03 if
563           Carp wasn't already loaded
564         - added &show_file_magic, so you can add to /etc/magic and teach
565           Unix's file command about Storable files
566
567         We plan to keep Storable on CPAN in sync with the Perl core, so
568         if you encounter bugs or other problems building or using Storable,
569         please let us know at perl5-porters@perl.org
570         Patches welcome!
571         
572 Sat Dec  1 14:37:54 MET 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
573
574         This is the LAST maintenance release of the Storable module.
575         Indeed, Storable is now part of perl 5.8, and will be maintained
576         as part of Perl.  The CPAN module will remain available there
577         for people running pre-5.8 perls.
578
579         Avoid requiring Fcntl upfront, useful to embedded runtimes.
580         Use an eval {} for testing, instead of making Storable.pm
581         simply fail its compilation in the BEGIN block.
582
583         store_fd() will now correctly autoflush file if needed.
584
585 Tue Aug 28 23:53:20 MEST 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
586
587         Fixed truncation race with lock_retrieve() in lock_store().
588         The file has to be truncated only once the exclusive lock is held.
589
590         Removed spurious debugging messages in .xs file.
591
592 Sun Jul  1 13:27:32 MEST 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
593
594         Systematically use "=over 4" for POD linters.
595         Apparently, POD linters are much stricter than would
596         otherwise be needed, but that's OK.
597
598         Fixed memory corruption on croaks during thaw().  Thanks
599         to Claudio Garcia for reproducing this bug and providing the
600         code to exercise it.  Added test cases for this bug, adapted
601         from Claudio's code.
602
603         Made code compile cleanly with -Wall (from Jarkko Hietaniemi).
604
605         Changed tagnum and classnum from I32 to IV in context.  Also
606         from Jarkko.
607
608 Thu Mar 15 01:22:32 MET 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
609
610         Last version was wrongly compiling with assertions on, due
611         to an edit glitch.  That did not cause any problem (apart from
612         a slight performance loss) excepted on Win* platforms, where the
613         assertion code does not compile.
614
615 Sat Feb 17 13:37:37 MET 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
616
617     Version 1.0.10.
618
619         Forgot to increase version number at previous patch (there were
620         two of them, which is why we jump from 1.0.8 to 1.0.10).
621
622 Sat Feb 17 13:35:00 MET 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
623
624     Version 1.0.8, binary format 2.4.
625
626         Fixed incorrect error message.
627
628         Now bless objects ASAP at retrieve time, which is meant to fix
629         two bugs:
630
631         * Indirect references to overloaded object were not able to
632           restore overloading if the object was not blessed yet,
633           which was possible since blessing occurred only after the
634           recursive retrieval.
635
636         * Storable hooks asking for serialization of blessed ref could
637           get un-blessed refs at retrieval time, for the very same
638           reason.
639
640         The fix implemented here was suggested by Nick Ing-Simmons.
641
642         Added support for blessed ref to tied structures.  This is the
643         cause for the binary format change.
644
645         Added EBCDIC version of the compatibility test with 0.6.11,
646         from Peter Prymmer
647
648         Added tests for the new features, and to make sure the bugs they
649         are meant to fix are indeed fixed.
650
651 Wed Jan  3 10:43:18 MET 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
652
653         Removed spurious 'clean' entry in Makefile.PL.
654
655         Added CAN_FLOCK to determine whether we can flock() or not,
656         by inspecting Perl's configuration parameters, as determined
657         by Configure.
658
659         Trace offending package when overloading cannot be restored
660         on a scalar.
661
662         Made context cleanup safer to avoid dup freeing, mostly in the
663         presence of repeated exceptions during store/retrieve (which can
664         cause memory leaks anyway, so it's just additional safety, not a
665         definite fix).
666
667 Sun Nov  5 18:23:48 MET 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
668
669     Version 1.0.6.
670
671         Fixed severe "object lost" bug for STORABLE_freeze returns,
672         when refs to lexicals, taken within the hook, were to be
673         serialized by Storable.  Enhanced the t/recurse.t test to
674         stress hook a little more with refs to lexicals.
675
676 Thu Oct 26 19:14:38 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
677
678     Version 1.0.5.
679
680         Documented that store() and retrieve() can return undef.
681         That is, the error reporting is not always made via exceptions,
682         as the paragraph on error reporting was implying.
683
684         Auto requires module of blessed ref when STORABLE_thaw misses.
685         When the Storable engine looks for the STORABLE_thaw hook and
686         does not find it, it now tries to require the package into which
687         the blessed reference is.
688
689         Just check $^O, in t/lock.t: there's no need to pull the whole
690         Config module for that.
691
692 Mon Oct 23 20:03:49 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
693
694     Version 1.0.4.
695
696         Protected calls to flock() for DOS platform: apparently, the
697         flock/fcnlt emulation is reported to be broken on that
698         platform.
699
700         Added logcarp emulation if they don't have Log::Agent, since
701         we now use it to carp when lock_store/lock_retrieve is used
702         on DOS.
703
704 Fri Sep 29 21:52:29 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
705
706     Version 1.0.3.
707
708         Avoid using "tainted" and "dirty" since Perl remaps them via
709         cpp (i.e. #define).  This is deeply harmful when threading
710         is enabled.  This concerned both the context structure and
711         local variable and argument names.  Brrr..., scary!
712
713 Thu Sep 28 23:46:39 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
714
715     Version 1.0.2.
716
717         Fixed spelling in README.
718
719         Added lock_store, lock_nstore, and lock_retrieve (advisory locking)
720         after a proposal from Erik Haugan <erik@solbors.no>.
721
722         Perls before 5.004_04 lack newSVpvn, added remapping in XS.
723
724         Fixed stupid typo in the t/utf8.t test.
725
726 Sun Sep 17 18:51:10 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
727
728     Version 1.0.1, binary format 2.3.
729
730         Documented that doubles are stored stringified by nstore().
731
732         Added Salvador Ortiz Garcia in CREDITS section,  He identified
733         a bug in the store hooks and proposed the right fix: the class
734         id was allocated too soon.  His bug case was also added to
735         the regression test suite.
736
737         Now only taint retrieved data when source was tainted.  A bug
738         discovered by Marc Lehmann.
739
740         Added support for UTF-8 strings, a contribution of Marc Lehmann.
741         This is normally only activated in post-5.6 perls.
742
743 Thu Aug 31 23:06:06 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
744
745         First official release Storable 1.0, for inclusion in perl 5.7.0.
746         The license scheme is now compatible with Perl's.
747
748 Thu Aug 24 01:02:02 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
749
750         ANSI-fied most of the code, preparing for Perl core integration.
751         The next version of Storable will be 0.8, and will be integrated
752         into the Perl core (development branch).
753
754         Dispatch tables were moved upfront to relieve some compilers,
755         especially on AIX and Windows platforms.
756
757         Merged 64-bit fixes from perl5-porters.
758
759 Mon Aug 14 09:22:04 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
760
761         Added a refcnt dec in retrieve_tied_key(): sv_magic() increases
762         the refcnt on the mg_ptr as well.
763
764         Removed spurious dependency to Devel::Peek, which was used for
765         testing only in t/tied_items.t.  Thanks to Conrad Heiney
766         <conrad@fringehead.org> for spotting it first.
767
768 Sun Aug 13 22:12:59 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
769
770         Marc Lehmann kindly contributed code to add overloading support
771         and to handle references to tied variables.
772
773         Rewrote leading blurb about compatibility to make it clearer what
774         "backward compatibility" is about: when I say 0.7 is backward
775         compatible with 0.6, it means the revision 0.7 can read files
776         produced by 0.6.
777
778         Mention new Clone(3) extension in SEE ALSO.
779
780         Was wrongly optimizing for "undef" values in hashes by not
781         fully recursing: as a result, tied "undef" values were incorrectly
782         serialized.
783
784 Sun Jul 30 12:59:17 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
785
786     First revision of Storable 0.7.
787
788         The serializing format is new, known as version 2.0.  It is fully
789         backward compatible with 0.6.  Earlier formats are deprecated and
790         have not even been tested: next version will drop pre-0.6 format.
791
792         Changes since 0.6@11:
793
794         - Moved interface to the "beta" status.  Some tiny parts are still
795           subject to change, but nothing important enough to warrant an "alpha"
796           status any longer.
797
798         - Slightly reduced the size of the Storable image by factorizing
799           object class names and removing final object storage notification due
800           to a redesign of the blessed object storing.
801
802         - Classes can now redefine how they wish their instances to be serialized
803           and/or deep cloned.  Serializing hooks are written in Perl code.
804
805         - The engine is now fully re-entrant.
806
807 Sun Apr  2 23:47:50 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
808
809         Added provision to detect more recent binary formats, since
810         the new upcoming Storable-0.7 will use a different format.
811         In order to prevent attempting the de-serialization of newer
812         formats by older versions, I'm adding this now to the 0.6 series.
813
814         I'm expecting this revision to be the last of the 0.6 series.
815         Unless it does not work with perl 5.6, which I don't use yet,
816         and therefore against which I cannot test.
817
818 Wed Mar 29 19:55:21 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
819
820         Added note about format incompatibilities with old versions
821         (i.e. pre 0.5@9 formats, which cannot be understood as there
822         was no versionning information in the file by then).
823
824         Protect all $@ variables when eval {} used, to avoid corrupting
825         it when store/retrieve is called within an exception handler.
826
827         Mistakenly included "patchlevel.h" instead of <patchlevel.h>,
828         preventing Perl's patchlevel from being included, which is
829         needed starting from 5.6.
830
831 Tue May 12 09:15:15 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
832
833         Fixed shared "undef" bug in hashes, which did not remain shared
834         through store/retrieve.
835
836 Thu Feb 10 19:48:16 MET 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
837
838         added last_op_in_netorder() predicate
839         documented last_op_in_netorder()
840         added tests for the new last_op_in_netorder() predicate
841
842 Wed Oct 20 19:07:36 MEST 1999   Raphael Manfredi <Raphael_Manfredi@pobox.com>
843
844         Forgot to update VERSION
845
846 Tue Oct 19 21:25:02 MEST 1999   Raphael Manfredi <Raphael_Manfredi@pobox.com>
847
848         Added mention of japanese translation for the manual page.
849
850         Fixed typo in macro that made threaded code not compilable,
851         especially on Win32 platforms.
852
853         Changed detection of older perls (pre-5.005) by testing PATCHLEVEL
854         directly instead of relying on internal symbols.
855
856 Tue Sep 14 22:13:28 MEST 1999   Raphael Manfredi <Raphael_Manfredi@pobox.com>
857
858         Integrated "thread-safe" patch from Murray Nesbitt.
859         Note that this may not be very efficient for threaded code,
860         see comment in the code.
861
862         Try to avoid compilation warning on 64-bit CPUs. Can't test it,
863         since I don't have access to such machines.
864
865 Mon Jul 12 14:37:19 METDST 1999   Raphael Manfredi <Raphael_Manfredi@pobox.com>
866
867         changed my e-mail to pobox.
868
869         mentioned it is not thread-safe.
870
871         updated version number.
872
873         uses new internal PL_* naming convention.
874
875 Fri Jul  3 13:38:16 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
876
877         Updated benchmark figures due to recent optimizations done in
878         store(): tagnums are now stored as-is in the hash table, so
879         no surrounding SV is created. And the "shared keys" mode for
880         hash table was turned off.
881
882         Fixed backward compatibility (wrt 0.5@9) for retrieval of
883         blessed refs. That old version did something wrong, but the
884         bugfix prevented correct retrieval of the old format.
885
886 Mon Jun 22 11:00:48 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
887
888         Changed benchmark figures.
889
890         Adjust refcnt of tied objects after calling sv_magic() to avoid
891         memory leaks.  Contributed by Jeff Gresham.
892
893 Fri Jun 12 11:50:04 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
894
895         Added workaround for persistent LVALUE-ness in perl5.004. All
896         scalars tagged as being an lvalue are handled as if they were
897         not an lvalue at all.  Added test for that LVALUE bug workaround.
898
899         Now handles Perl immortal scalars explicitly, by storing &sv_yes
900         as such, explicitly.
901
902         Retrieval of non-immortal undef cannot be shared. Previous
903         version was over-optimizing by not creating a separate SV for
904         all undefined scalars seen.
905
906 Thu Jun  4 17:21:51 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
907
908     Baseline for Storable-0.6@0.
909
910         This version introduces a binary incompatibility in the generated
911         binary image, which is more compact than older ones by approximatively
912         15%, depending on the exact degree of sharing in your structures.
913
914         The good news is that your older images can still be retrieved with
915         this version, i.e. backward compatibility is preserved. This version
916         of Storable can only generate new binaries however.
917
918         Another good news is that the retrieval of data structure is
919         significantly quicker than before, because a Perl array is used
920         instead of a hash table to keep track of retrieved objects, and
921         also because the image being smaller, less I/O function calls are
922         made.
923
924 Tue May 12 09:15:15 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
925
926         Version number now got from Storable.pm directly.
927
928         Fixed overzealous sv_type() optimization, which would make
929         Storable fail when faced with an "upgraded" SV to the PVIV
930         or PVNV kind containing a reference.
931
932 Thu Apr 30 15:11:30 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
933
934         Extended the SYNOPSIS section to give quick overview of the
935         routines and their signature.
936
937         Optimized sv_type() to avoid flags checking when not needed, i.e.
938         when their type makes it impossible for them to be refs or tied.
939         This slightly increases throughput by a few percents when refs
940         and tied variables are marginal occurrences in your data.
941
942         Stubs for XS now use OutputStream and InputStream file types to
943         make it work when the given file is actually a socket. Perl
944         makes a distinction for sockets in its internal I/O structures
945         by having both a read and a write structure, whereas plain files
946         share the same one.
947
948 Tue Jun  3 09:41:33 METDST 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
949
950         Thanks to a contribution from Benjamin A. Holzman, Storable is now
951         able to correctly serialize tied SVs, i.e. tied arrays, hashes
952         and scalars.
953
954 Thu Apr  9 18:07:51 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
955
956         I said SvPOK() had changed to SvPOKp(), but that was a lie...
957
958 Wed Apr  8 13:14:29 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
959
960         Wrote sizeof(SV *) instead of sizeof(I32) when portable, which
961         in effect mangled the object tags and prevented portability
962         across 32/64 bit architectures!
963
964 Wed Mar 25 14:57:02 MET 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
965
966         Added code example for store_fd() and retrieve_fd() in the
967         man page, to emphasize that file descriptors must be passed as
968         globs, not as plain strings.
969
970         Cannot use SV addresses as tag when using nstore() on LP64. This
971         was the cause of problems when creating a storable image on an
972         LP64 machine and retrieving it on an ILP32 system, which is
973         exactly what nstore() is meant for...
974
975         However, we continue to use SV addresses as tags for plain store(),
976         because benchmarking shows that it saves up to 8% of the store
977         time, and store() is meant to be fast at the expense of lack
978         of portability.
979
980         This means there will be approximately an 8% degradation of
981         performance for nstore(), but it's now working as expected.
982         That cost may vary on your machine of course, since it is
983         solely caused by the memory allocation overhead used to create
984         unique SV tags for each distinct stored SV.
985
986 Tue Jan 20 09:21:53 MET 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
987
988         Don't use any '_' in version number.
989
990 Tue Jan 13 17:51:50 MET 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
991
992         Updated version number.
993
994         added binmode() calls for systems where it matters.
995
996         Be sure to pass globs, not plain file strings, to C routines,
997         so that Storable can be used under the Perl debugger.
998
999 Wed Nov  5 10:53:22 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1000
1001         Fix memory leaks on seen hash table and returned SV refs.
1002
1003         Storable did not work properly when tainting enabled.
1004
1005         Fixed "Allocation too large" messages in freeze/thaw and added.
1006         proper regression test in t/freeze.t.
1007
1008 Tue Jun  3 09:41:33 METDST 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1009
1010         Updated version number
1011
1012         Added freeze/thaw interface and dclone.
1013
1014 Fri May 16 10:45:47 METDST 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1015
1016         Forgot that AutoLoader does not export its own AUTOLOAD.
1017         I could use
1018
1019                 use AutoLoader 'AUTOLOAD';
1020         
1021         but that would not be backward compatible. So the export is
1022         done by hand...
1023
1024 Tue Mar 25 11:21:32 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1025
1026         Empty scalar strings are now "defined" at retrieval time.
1027
1028         New test to ensure an empty string is defined when retrieved.
1029
1030 Thu Feb 27 16:32:44 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1031
1032         Updated version number
1033
1034         Declare VERSION as being used
1035
1036         Fixed a typo in the PerlIO_putc remapping.
1037         PerlIO_read and perlIO_write inverted size/nb_items.
1038         (only relevant for pre-perl5.004 versions)
1039
1040 Thu Feb 27 15:58:31 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1041
1042         Updated version number
1043
1044         Added VERSION identification
1045
1046         Allow build with perl5.003, which is ante perlIO time
1047
1048 Mon Jan 13 17:53:18 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1049
1050         Random code fixes.
1051
1052 Wed Jan 22 15:19:56 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1053
1054         Updated version number in Makefile.PL.
1055
1056         Added "thanks to" section to README.
1057
1058         Documented new forgive_me variable.
1059
1060         Made 64-bit clean.
1061
1062         Added forgive_me support to allow store() of data structures
1063         containing non-storable items like CODE refs.