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