This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Move List::Util from ext/ to cpan/
[perl5.git] / ext / Storable / ChangeLog
1 Mon May 18 09:38:20 IST 2009   Abhijit Menon-Sen <ams@toroid.org>
2
3     Version 2.20
4
5         Fix bug handling blessed references to overloaded objects, plus
6         other miscellaneous fixes.
7
8         (Version 2.19 was released with 5.8.9.)
9
10 Thu Nov 22 13:24:18 IST 2007   Abhijit Menon-Sen <ams@toroid.org>
11
12     Version 2.18
13
14         Compile fixes for older Perls. (No functional changes.)
15
16 Sat Nov 17 02:12:12 IST 2007   Abhijit Menon-Sen <ams@toroid.org>
17
18     Version 2.17
19
20         Various broken tests fixed. (No functional changes.)
21
22 Sat Mar 31 06:11:06 IST 2007   Abhijit Menon-Sen <ams@toroid.org>
23
24     Version 2.16
25
26         1. Fixes to Storable::dclone, read_magic, retrieve_lscalar
27         2. Storable 0.1 compatibility
28         3. Miscellaneous compile/leak/test/portability fixes
29
30 Mon May 23 22:48:49 IST 2005   Abhijit Menon-Sen <ams@wiw.org>
31
32     Version 2.15
33
34         Minor changes to address a couple of compile problems.
35
36 Mon Apr 25 07:29:14 IST 2005   Abhijit Menon-Sen <ams@wiw.org>
37
38     Version 2.14
39
40         1. Store weak references
41         2. Add STORABLE_attach hook.
42
43 Thu Jun 17 12:26:43 BST 2004   Nicholas Clark <nick@ccl4.org>
44
45     Version 2.13
46
47         1. Don't change the type of top level overloaded references to RV -
48            they are perfectly correct as PVMG
49         2. Storable needs to cope with incoming frozen data that happens to be
50            utf8 encoded.
51
52 Wed Mar 17 15:40:29 GMT 2004   Nicholas Clark <nick@ccl4.org>
53
54     Version 2.12
55
56         1. Add regression tests for the auto-require of STORABLE_thaw
57         2. Add auto-require of modules to restore overloading (and tests)
58         3. Change to no context (should give speedup with ithreads)
59
60 Sat Mar 13 20:11:03 GMT 2004   Nicholas Clark <nick@ccl4.org>
61         
62     Version 2.11
63
64         1. Storing restricted hashes in canonical order would SEGV. Fixed.
65         2. It was impossible to retrieve references to PL_sv_no and and
66            PL_sv_undef from STORABLE_thaw hooks.
67         3. restrict.t was failing on 5.8.0, due to 5.8.0's unique
68            implementation of restricted hashes using PL_sv_undef
69         4. These changes allow a space optimisation for restricted hashes.
70
71 Sat Jan 24 16:22:32 IST 2004   Abhijit Menon-Sen <ams@wiw.org>
72
73     Version 2.10
74
75         1. Thread safety: Storable::CLONE/init_perlinterp() now create
76            a new Perl context for each new ithread.
77            (From Stas Bekman and Jan Dubois.)
78         2. Fix a tag count mismatch with $Storable::Deparse that caused
79            all back-references after a stored sub to be off-by-N (where
80            N was the number of code references in between).
81            (From Sam Vilain.)
82         3. Prevent CODE references from turning into SCALAR references.
83            (From Slaven Rezic.)
84
85 Sat Jan  3 18:49:18 GMT 2004   Nicholas Clark <nick@ccl4.org>
86
87     Version 2.09
88
89         Fix minor problems with the CPAN release
90         1: Make Storable.xs work on 5.8.2 and later (already in the core)
91         2: Ship the linux hints file
92         3: Ship Test::More for the benefit of Perls pre 5.6.2
93         4: Correct Makefile.PL to only install in core for 5.8.0 and later
94
95 Sat Sep  6 01:08:20 IST 2003   Abhijit Menon-Sen <ams@wiw.org>
96
97     Version 2.08
98
99         This release works around a 5.8.0 bug which caused hashes to not
100         be marked as having key flags even though an HEK had HEK_WASUTF8
101         set. (Note that the only reasonable solution is to silently drop
102         the flag from the affected key.)
103
104         Users of RT 3 who were seeing assertion failures should upgrade.
105         (Perl 5.8.1 will have the bug fixed.)
106
107 Mon May  5 10:24:16 IST 2003   Abhijit Menon-Sen <ams@wiw.org>
108
109     Version 2.07
110
111         Minor bugfixes (self-tied objects are now correctly stored, as
112         are the results of additions larger than INT_MAX).
113
114 Mon Oct  7 21:56:38 BST 2002   Nicholas Clark  <nick@ccl4.org>
115
116     Version 2.06
117
118         Remove qr// from t/downgrade.t so that it will run on 5.004
119         Mention $File::Spec::VERSION a second time in t/forgive.t so that it
120         runs without warnings in 5.004 (this may be a 5.00405 bug I'm working
121         round)
122         Fix t/integer.t initialisation to actually generate 64 bits of 9c
123         Fix comparison tests to use eval to get around 64 bit IV conversion
124         issues on 5.6.x, following my t/integer.t ^ precedence bug found by
125         Rafael Garcia-Suarez
126         Alter t/malice.t to work with Test/More.pm in t/, and skip individual
127         subtests that use $Config{ptrsize}, so that the rest of the test can
128         now be run with 5.004
129         Change t/malice.t and the error message in check_magic in Storable.xs
130         from "Pointer integer size" to "Pointer size"
131         Remove prerequisite of Test::More from Makefile.PL
132         Ship Test::Builder, Test::Simple and Test::More in t
133
134 Thu Oct  3 08:57:22 IST 2002   Abhijit Menon-Sen <ams@wiw.org>
135
136     Version 2.05
137
138         Adds support for CODE references from Slaven Rezic
139         <slaven.rezic@berlin.de>.
140
141 Fri Jun  7 23:55:41 BST 2002   Nicholas Clark
142
143     Version 2.04
144
145         Bug fix from Radu Greab <radu@netsoft.ro> (plus regression test)
146         to fix a recently introduced bug detected by Dave Rolsky.
147         Bug was that for a non threaded build, the class information was
148         being lost at freeze time on the first object with a STORABLE_freeze
149         hook. Consequentially the object was not blessed at all when thawed.
150         (The presence (or lack) of STORABLE_thaw was irrelevant; this was
151         a store-time data lost bug, caused by failure to initialize internal
152         context)
153         The bug was introduced as development perl change 16442 (on
154         2002/05/07), so has been present since 2.00.
155         Patches to introduce more regression tests to reduce the chance of
156         a reoccurance of this sort of goof are always welcome.
157         
158 Thu May 30 20:31:08 BST 2002   Nicholas Clark <nick@ccl4.org>
159
160     Version 2.03        Header changes on 5.6.x on Unix where IV is long long
161
162         5.6.x introduced the ability to have IVs as long long.  However,
163         Configure still defined BYTEORDER based on the size of a long.
164         Storable uses the BYTEORDER value as part of the header, but
165         doesn't explicity store sizeof(IV) anywhere in the header.
166         Hence on 5.6.x built with IV as long long on a platform that
167         uses Configure (ie most things except VMS and Windows) headers
168         are identical for the different IV sizes, despite the files
169         containing some fields based on sizeof(IV)
170
171         5.8.0 is consistent; all platforms have BYTEORDER in config.h
172         based on sizeof(IV) rather than sizeof(long).  This means that
173         the value of BYTEORDER will change from (say) 4321 to 87654321
174         between 5.6.1 and 5.8.0 built with the same options to Configure
175         on the same machine.  This means that the Storable header will
176         differ, and the two versions will wrongly thing that they are
177         incompatible.
178
179         For the benefit of long term consistency, Storable now
180         implements the 5.8.0 BYTEORDER policy on 5.6.x.  This means that
181         2.03 onwards default to be incompatible with 2.02 and earlier
182         (ie the large 1.0.x installed base) on the same 5.6.x perl.
183
184         To allow interworking, a new variable
185         $Storable::interwork_56_64bit is introduced. It defaults to
186         false. Set it to true to read and write old format files. Don't
187         use it unless you have existing stored data written with 5.6.x
188         that you couldn't otherwise read, or you need to interwork with
189         a machine running older Storable on a 5.6.x with long long IVs
190         (i.e., you probably don't need to use it).
191
192 Sat May 25 22:38:39 BST 2002   Nicholas Clark <nick@ccl4.org>
193
194     Version 2.02
195                 
196         Rewrite Storable.xs so that the file header structure for write_magic
197         is built at compile time, and check_magic attempts to the header in
198         blocks rather than byte per byte. These changes make the compiled
199         extension 2.25% smaller, but are not significant enough to give a
200         noticeable speed up.
201
202 Thu May 23 22:50:41 BST 2002   Nicholas Clark <nick@ccl4.org>
203
204     Version 2.01
205
206         - New regression tests integer.t
207         - Add code to safely store large unsigned integers.
208         - Change code not to attempt to store large integers (ie > 32 bits)
209           in network order as 32 bits.
210         
211         *Never* underestimate the value of a pathological test suite carefully
212         crafted with maximum malice before writing a line of real code. It
213         prevents crafty bugs from stowing away in your released code.
214         It's much less embarrassing to find them before you ship.
215         (Well, never underestimate it if you ever want to work for me)
216         
217 Fri May 17 22:48:59 BST 2002   Nicholas Clark <nick@ccl4.org>
218
219     Version 2.0, binary format 2.5 (but writes format 2.4 on pre 5.7.3)
220
221         The perl5 porters have decided to make sure that Storable still
222         builds on pre-5.8 perls, and make the 5.8 version available on CPAN.
223         The VERSION is now 2.0, and it passes all tests on 5.005_03, 5.6.1
224         and 5.6.1 with threads. On 5.6.0 t/downgrade.t fails tests 34 and 37,
225         due to a bug in 5.6.0 - upgrade to 5.6.1.
226
227         Jarkko and I have collated the list of changes the perl5 porters have
228         from the perl5 Changes file:
229
230         - data features of upcoming perl 5.8.0 are supported: Unicode hash
231           keys (Unicode hash values have been supported since Storable 1.0.1)
232           and "restricted hashes" (readonly hashes and hash entries)
233         - a newer version of perl can now be used to serialize data which is
234           not supported in earlier perls: Storable will attempt to do the
235           right thing for as long as possible, croaking only when safe data
236           conversion simply isn't possible. Alternatively earlier perls can
237           opt to have a lossy downgrade data instead of croaking
238         - when built with perls pre 5.7.3 this Storable writes out files
239           with binary format 2.4, the same format as Storable 1.0.8 onwards.
240           This should mean that this Storable will inter-operate seamlessly
241           with any Storable 1.0.8 or newer on perls pre 5.7.3
242         - dclone() now works with empty string scalar objects
243         - retrieving of large hashes is now more efficient
244         - more routines autosplit out of the main module, so Storable should
245           load slightly more quickly
246         - better documentation
247         - the internal context objects are now freed explicitly, rather than
248           relying on thread or process exit
249         - bugs fixed in debugging trace code affecting builds made with 64 bit
250           IVs
251         - code tidy-ups to allow clean compiles with more warning options
252           turned on avoid problems with $@ getting corrupted on 5.005_03 if
253           Carp wasn't already loaded
254         - added &show_file_magic, so you can add to /etc/magic and teach
255           Unix's file command about Storable files
256
257         We plan to keep Storable on CPAN in sync with the Perl core, so
258         if you encounter bugs or other problems building or using Storable,
259         please let us know at perl5-porters@perl.org
260         Patches welcome!
261         
262 Sat Dec  1 14:37:54 MET 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
263
264         This is the LAST maintenance release of the Storable module.
265         Indeed, Storable is now part of perl 5.8, and will be maintained
266         as part of Perl.  The CPAN module will remain available there
267         for people running pre-5.8 perls.
268
269         Avoid requiring Fcntl upfront, useful to embedded runtimes.
270         Use an eval {} for testing, instead of making Storable.pm
271         simply fail its compilation in the BEGIN block.
272
273         store_fd() will now correctly autoflush file if needed.
274
275 Tue Aug 28 23:53:20 MEST 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
276
277         Fixed truncation race with lock_retrieve() in lock_store().
278         The file has to be truncated only once the exclusive lock is held.
279
280         Removed spurious debugging messages in .xs file.
281
282 Sun Jul  1 13:27:32 MEST 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
283
284         Systematically use "=over 4" for POD linters.
285         Apparently, POD linters are much stricter than would
286         otherwise be needed, but that's OK.
287
288         Fixed memory corruption on croaks during thaw().  Thanks
289         to Claudio Garcia for reproducing this bug and providing the
290         code to exercise it.  Added test cases for this bug, adapted
291         from Claudio's code.
292
293         Made code compile cleanly with -Wall (from Jarkko Hietaniemi).
294
295         Changed tagnum and classnum from I32 to IV in context.  Also
296         from Jarkko.
297
298 Thu Mar 15 01:22:32 MET 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
299
300         Last version was wrongly compiling with assertions on, due
301         to an edit glitch.  That did not cause any problem (apart from
302         a slight performance loss) excepted on Win* platforms, where the
303         assertion code does not compile.
304
305 Sat Feb 17 13:37:37 MET 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
306
307     Version 1.0.10.
308
309         Forgot to increase version number at previous patch (there were
310         two of them, which is why we jump from 1.0.8 to 1.0.10).
311
312 Sat Feb 17 13:35:00 MET 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
313
314     Version 1.0.8, binary format 2.4.
315
316         Fixed incorrect error message.
317
318         Now bless objects ASAP at retrieve time, which is meant to fix
319         two bugs:
320
321         * Indirect references to overloaded object were not able to
322           restore overloading if the object was not blessed yet,
323           which was possible since blessing occurred only after the
324           recursive retrieval.
325
326         * Storable hooks asking for serialization of blessed ref could
327           get un-blessed refs at retrieval time, for the very same
328           reason.
329
330         The fix implemented here was suggested by Nick Ing-Simmons.
331
332         Added support for blessed ref to tied structures.  This is the
333         cause for the binary format change.
334
335         Added EBCDIC version of the compatibility test with 0.6.11,
336         from Peter Prymmer
337
338         Added tests for the new features, and to make sure the bugs they
339         are meant to fix are indeed fixed.
340
341 Wed Jan  3 10:43:18 MET 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
342
343         Removed spurious 'clean' entry in Makefile.PL.
344
345         Added CAN_FLOCK to determine whether we can flock() or not,
346         by inspecting Perl's configuration parameters, as determined
347         by Configure.
348
349         Trace offending package when overloading cannot be restored
350         on a scalar.
351
352         Made context cleanup safer to avoid dup freeing, mostly in the
353         presence of repeated exceptions during store/retrieve (which can
354         cause memory leaks anyway, so it's just additional safety, not a
355         definite fix).
356
357 Sun Nov  5 18:23:48 MET 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
358
359     Version 1.0.6.
360
361         Fixed severe "object lost" bug for STORABLE_freeze returns,
362         when refs to lexicals, taken within the hook, were to be
363         serialized by Storable.  Enhanced the t/recurse.t test to
364         stress hook a little more with refs to lexicals.
365
366 Thu Oct 26 19:14:38 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
367
368     Version 1.0.5.
369
370         Documented that store() and retrieve() can return undef.
371         That is, the error reporting is not always made via exceptions,
372         as the paragraph on error reporting was implying.
373
374         Auto requires module of blessed ref when STORABLE_thaw misses.
375         When the Storable engine looks for the STORABLE_thaw hook and
376         does not find it, it now tries to require the package into which
377         the blessed reference is.
378
379         Just check $^O, in t/lock.t: there's no need to pull the whole
380         Config module for that.
381
382 Mon Oct 23 20:03:49 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
383
384     Version 1.0.4.
385
386         Protected calls to flock() for DOS platform: apparently, the
387         flock/fcnlt emulation is reported to be broken on that
388         platform.
389
390         Added logcarp emulation if they don't have Log::Agent, since
391         we now use it to carp when lock_store/lock_retrieve is used
392         on DOS.
393
394 Fri Sep 29 21:52:29 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
395
396     Version 1.0.3.
397
398         Avoid using "tainted" and "dirty" since Perl remaps them via
399         cpp (i.e. #define).  This is deeply harmful when threading
400         is enabled.  This concerned both the context structure and
401         local variable and argument names.  Brrr..., scary!
402
403 Thu Sep 28 23:46:39 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
404
405     Version 1.0.2.
406
407         Fixed spelling in README.
408
409         Added lock_store, lock_nstore, and lock_retrieve (advisory locking)
410         after a proposal from Erik Haugan <erik@solbors.no>.
411
412         Perls before 5.004_04 lack newSVpvn, added remapping in XS.
413
414         Fixed stupid typo in the t/utf8.t test.
415
416 Sun Sep 17 18:51:10 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
417
418     Version 1.0.1, binary format 2.3.
419
420         Documented that doubles are stored stringified by nstore().
421
422         Added Salvador Ortiz Garcia in CREDITS section,  He identified
423         a bug in the store hooks and proposed the right fix: the class
424         id was allocated too soon.  His bug case was also added to
425         the regression test suite.
426
427         Now only taint retrieved data when source was tainted.  A bug
428         discovered by Marc Lehmann.
429
430         Added support for UTF-8 strings, a contribution of Marc Lehmann.
431         This is normally only activated in post-5.6 perls.
432
433 Thu Aug 31 23:06:06 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
434
435         First official release Storable 1.0, for inclusion in perl 5.7.0.
436         The license scheme is now compatible with Perl's.
437
438 Thu Aug 24 01:02:02 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
439
440         ANSI-fied most of the code, preparing for Perl core integration.
441         The next version of Storable will be 0.8, and will be integrated
442         into the Perl core (development branch).
443
444         Dispatch tables were moved upfront to relieve some compilers,
445         especially on AIX and Windows platforms.
446
447         Merged 64-bit fixes from perl5-porters.
448
449 Mon Aug 14 09:22:04 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
450
451         Added a refcnt dec in retrieve_tied_key(): sv_magic() increases
452         the refcnt on the mg_ptr as well.
453
454         Removed spurious dependency to Devel::Peek, which was used for
455         testing only in t/tied_items.t.  Thanks to Conrad Heiney
456         <conrad@fringehead.org> for spotting it first.
457
458 Sun Aug 13 22:12:59 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
459
460         Marc Lehmann kindly contributed code to add overloading support
461         and to handle references to tied variables.
462
463         Rewrote leading blurb about compatibility to make it clearer what
464         "backward compatibility" is about: when I say 0.7 is backward
465         compatible with 0.6, it means the revision 0.7 can read files
466         produced by 0.6.
467
468         Mention new Clone(3) extension in SEE ALSO.
469
470         Was wrongly optimizing for "undef" values in hashes by not
471         fully recursing: as a result, tied "undef" values were incorrectly
472         serialized.
473
474 Sun Jul 30 12:59:17 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
475
476     First revision of Storable 0.7.
477
478         The serializing format is new, known as version 2.0.  It is fully
479         backward compatible with 0.6.  Earlier formats are deprecated and
480         have not even been tested: next version will drop pre-0.6 format.
481
482         Changes since 0.6@11:
483
484         - Moved interface to the "beta" status.  Some tiny parts are still
485           subject to change, but nothing important enough to warrant an "alpha"
486           status any longer.
487
488         - Slightly reduced the size of the Storable image by factorizing
489           object class names and removing final object storage notification due
490           to a redesign of the blessed object storing.
491
492         - Classes can now redefine how they wish their instances to be serialized
493           and/or deep cloned.  Serializing hooks are written in Perl code.
494
495         - The engine is now fully re-entrant.
496
497 Sun Apr  2 23:47:50 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
498
499         Added provision to detect more recent binary formats, since
500         the new upcoming Storable-0.7 will use a different format.
501         In order to prevent attempting the de-serialization of newer
502         formats by older versions, I'm adding this now to the 0.6 series.
503
504         I'm expecting this revision to be the last of the 0.6 series.
505         Unless it does not work with perl 5.6, which I don't use yet,
506         and therefore against which I cannot test.
507
508 Wed Mar 29 19:55:21 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
509
510         Added note about format incompatibilities with old versions
511         (i.e. pre 0.5@9 formats, which cannot be understood as there
512         was no versionning information in the file by then).
513
514         Protect all $@ variables when eval {} used, to avoid corrupting
515         it when store/retrieve is called within an exception handler.
516
517         Mistakenly included "patchlevel.h" instead of <patchlevel.h>,
518         preventing Perl's patchlevel from being included, which is
519         needed starting from 5.6.
520
521 Tue May 12 09:15:15 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
522
523         Fixed shared "undef" bug in hashes, which did not remain shared
524         through store/retrieve.
525
526 Thu Feb 10 19:48:16 MET 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
527
528         added last_op_in_netorder() predicate
529         documented last_op_in_netorder()
530         added tests for the new last_op_in_netorder() predicate
531
532 Wed Oct 20 19:07:36 MEST 1999   Raphael Manfredi <Raphael_Manfredi@pobox.com>
533
534         Forgot to update VERSION
535
536 Tue Oct 19 21:25:02 MEST 1999   Raphael Manfredi <Raphael_Manfredi@pobox.com>
537
538         Added mention of japanese translation for the manual page.
539
540         Fixed typo in macro that made threaded code not compilable,
541         especially on Win32 platforms.
542
543         Changed detection of older perls (pre-5.005) by testing PATCHLEVEL
544         directly instead of relying on internal symbols.
545
546 Tue Sep 14 22:13:28 MEST 1999   Raphael Manfredi <Raphael_Manfredi@pobox.com>
547
548         Integrated "thread-safe" patch from Murray Nesbitt.
549         Note that this may not be very efficient for threaded code,
550         see comment in the code.
551
552         Try to avoid compilation warning on 64-bit CPUs. Can't test it,
553         since I don't have access to such machines.
554
555 Mon Jul 12 14:37:19 METDST 1999   Raphael Manfredi <Raphael_Manfredi@pobox.com>
556
557         changed my e-mail to pobox.
558
559         mentionned it is not thread-safe.
560
561         updated version number.
562
563         uses new internal PL_* naming convention.
564
565 Fri Jul  3 13:38:16 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
566
567         Updated benchmark figures due to recent optimizations done in
568         store(): tagnums are now stored as-is in the hash table, so
569         no surrounding SV is created. And the "shared keys" mode for
570         hash table was turned off.
571
572         Fixed backward compatibility (wrt 0.5@9) for retrieval of
573         blessed refs. That old version did something wrong, but the
574         bugfix prevented correct retrieval of the old format.
575
576 Mon Jun 22 11:00:48 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
577
578         Changed benchmark figures.
579
580         Adjust refcnt of tied objects after calling sv_magic() to avoid
581         memory leaks.  Contributed by Jeff Gresham.
582
583 Fri Jun 12 11:50:04 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
584
585         Added workaround for persistent LVALUE-ness in perl5.004. All
586         scalars tagged as being an lvalue are handled as if they were
587         not an lvalue at all.  Added test for that LVALUE bug workaround.
588
589         Now handles Perl immortal scalars explicitely, by storing &sv_yes
590         as such, explicitely.
591
592         Retrieval of non-immortal undef cannot be shared. Previous
593         version was over-optimizing by not creating a separate SV for
594         all undefined scalars seen.
595
596 Thu Jun  4 17:21:51 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
597
598     Baseline for Storable-0.6@0.
599
600         This version introduces a binary incompatibility in the generated
601         binary image, which is more compact than older ones by approximatively
602         15%, depending on the exact degree of sharing in your structures.
603
604         The good news is that your older images can still be retrieved with
605         this version, i.e. backward compatibility is preserved. This version
606         of Storable can only generate new binaries however.
607
608         Another good news is that the retrieval of data structure is
609         significantly quicker than before, because a Perl array is used
610         instead of a hash table to keep track of retrieved objects, and
611         also because the image being smaller, less I/O function calls are
612         made.
613
614 Tue May 12 09:15:15 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
615
616         Version number now got from Storable.pm directly.
617
618         Fixed overzealous sv_type() optimization, which would make
619         Storable fail when faced with an "upgraded" SV to the PVIV
620         or PVNV kind containing a reference.
621
622 Thu Apr 30 15:11:30 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
623
624         Extended the SYNOPSIS section to give quick overview of the
625         routines and their signature.
626
627         Optimized sv_type() to avoid flags checking when not needed, i.e.
628         when their type makes it impossible for them to be refs or tied.
629         This slightly increases throughput by a few percents when refs
630         and tied variables are marginal occurrences in your data.
631
632         Stubs for XS now use OutputStream and InputStream file types to
633         make it work when the given file is actually a socket. Perl
634         makes a distinction for sockets in its internal I/O structures
635         by having both a read and a write structure, whereas plain files
636         share the same one.
637
638 Tue Jun  3 09:41:33 METDST 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
639
640         Thanks to a contribution from Benjamin A. Holzman, Storable is now
641         able to correctly serialize tied SVs, i.e. tied arrays, hashes
642         and scalars.
643
644 Thu Apr  9 18:07:51 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
645
646         I said SvPOK() had changed to SvPOKp(), but that was a lie...
647
648 Wed Apr  8 13:14:29 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
649
650         Wrote sizeof(SV *) instead of sizeof(I32) when portable, which
651         in effect mangled the object tags and prevented portability
652         accross 32/64 bit architectures!
653
654 Wed Mar 25 14:57:02 MET 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
655
656         Added code example for store_fd() and retrieve_fd() in the
657         man page, to emphasize that file descriptors must be passed as
658         globs, not as plain strings.
659
660         Cannot use SV addresses as tag when using nstore() on LP64. This
661         was the cause of problems when creating a storable image on an
662         LP64 machine and retrieving it on an ILP32 system, which is
663         exactly what nstore() is meant for...
664
665         However, we continue to use SV addresses as tags for plain store(),
666         because benchamarking shows that it saves up to 8% of the store
667         time, and store() is meant to be fast at the expense of lack
668         of portability.
669
670         This means there will be approximately an 8% degradation of
671         performance for nstore(), but it's now working as expected.
672         That cost may vary on your machine of course, since it is
673         solely caused by the memory allocation overhead used to create
674         unique SV tags for each distinct stored SV.
675
676 Tue Jan 20 09:21:53 MET 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
677
678         Don't use any '_' in version number.
679
680 Tue Jan 13 17:51:50 MET 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
681
682         Updated version number.
683
684         added binmode() calls for systems where it matters.
685
686         Be sure to pass globs, not plain file strings, to C routines,
687         so that Storable can be used under the Perl debugger.
688
689 Wed Nov  5 10:53:22 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
690
691         Fix memory leaks on seen hash table and returned SV refs.
692
693         Storable did not work properly when tainting enabled.
694
695         Fixed "Allocation too large" messages in freeze/thaw and added.
696         proper regression test in t/freeze.t.
697
698 Tue Jun  3 09:41:33 METDST 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
699
700         Updated version number
701
702         Added freeze/thaw interface and dclone.
703
704 Fri May 16 10:45:47 METDST 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
705
706         Forgot that AutoLoader does not export its own AUTOLOAD.
707         I could use
708
709                 use AutoLoader 'AUTOLOAD';
710         
711         but that would not be backward compatible. So the export is
712         done by hand...
713
714 Tue Mar 25 11:21:32 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
715
716         Empty scalar strings are now "defined" at retrieval time.
717
718         New test to ensure an empty string is defined when retrieved.
719
720 Thu Feb 27 16:32:44 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
721
722         Updated version number
723
724         Declare VERSION as being used
725
726         Fixed a typo in the PerlIO_putc remapping.
727         PerlIO_read and perlIO_write inverted size/nb_items.
728         (only relevant for pre-perl5.004 versions)
729
730 Thu Feb 27 15:58:31 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
731
732         Updated version number
733
734         Added VERSION identification
735
736         Allow build with perl5.003, which is ante perlIO time
737
738 Mon Jan 13 17:53:18 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
739
740         Random code fixes.
741
742 Wed Jan 22 15:19:56 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
743
744         Updated version number in Makefile.PL.
745
746         Added "thanks to" section to README.
747
748         Documented new forgive_me variable.
749
750         Made 64-bit clean.
751
752         Added forgive_me support to allow store() of data structures
753         containing non-storable items like CODE refs.