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