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