1 Thu Aug 31 23:06:06 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
3 First official release Storable 1.0, for inclusion in perl 5.7.0.
4 The license scheme is now compatible with Perl's.
6 Thu Aug 24 01:02:02 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
11 ANSI-fied most of the code, preparing for Perl core integration.
12 The next version of Storable will be 0.8, and will be integrated
13 into the Perl core (development branch).
15 Dispatch tables were moved upfront to relieve some compilers,
16 especially on AIX and Windows platforms.
18 Merged 64-bit fixes from perl5-porters.
20 Mon Aug 14 09:22:04 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
24 Added a refcnt dec in retrieve_tied_key(): sv_magic() increases
25 the refcnt on the mg_ptr as well.
27 Removed spurious dependency to Devel::Peek, which was used for
28 testing only in t/tied_items.t. Thanks to Conrad Heiney
29 <conrad@fringehead.org> for spotting it first.
31 Sun Aug 13 22:12:59 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
35 Marc Lehmann kindly contributed code to add overloading support
36 and to handle references to tied variables.
38 Rewrote leading blurb about compatibility to make it clearer what
39 "backward compatibility" is about: when I say 0.7 is backward
40 compatible with 0.6, it means the revision 0.7 can read files
43 Mention new Clone(3) extension in SEE ALSO.
45 Was wrongly optimizing for "undef" values in hashes by not
46 fully recursing: as a result, tied "undef" values were incorrectly
49 Sun Jul 30 12:59:17 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
51 First revision of Storable 0.7.
53 The serializing format is new, known as version 2.0. It is fully
54 backward compatible with 0.6. Earlier formats are deprecated and
55 have not even been tested: next version will drop pre-0.6 format.
59 - Moved interface to the "beta" status. Some tiny parts are still
60 subject to change, but nothing important enough to warrant an "alpha"
63 - Slightly reduced the size of the Storable image by factorizing
64 object class names and removing final object storage notification due
65 to a redesign of the blessed object storing.
67 - Classes can now redefine how they wish their instances to be serialized
68 and/or deep cloned. Serializing hooks are written in Perl code.
70 - The engine is now fully re-entrant.
72 Sun Apr 2 23:47:50 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
76 Added provision to detect more recent binary formats, since
77 the new upcoming Storable-0.7 will use a different format.
78 In order to prevent attempting the de-serialization of newer
79 formats by older versions, I'm adding this now to the 0.6 series.
81 I'm expecting this revision to be the last of the 0.6 series.
82 Unless it does not work with perl 5.6, which I don't use yet,
83 and therefore against which I cannot test.
85 Wed Mar 29 19:55:21 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
89 Added note about format incompatibilities with old versions
90 (i.e. pre 0.5@9 formats, which cannot be understood as there
91 was no versionning information in the file by then).
93 Protect all $@ variables when eval {} used, to avoid corrupting
94 it when store/retrieve is called within an exception handler.
96 Mistakenly included "patchlevel.h" instead of <patchlevel.h>,
97 preventing Perl's patchlevel from being included, which is
98 needed starting from 5.6.
100 Tue May 12 09:15:15 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
104 Fixed shared "undef" bug in hashes, which did not remain shared
105 through store/retrieve.
107 Thu Feb 10 19:48:16 MET 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
111 added last_op_in_netorder() predicate
112 documented last_op_in_netorder()
113 added tests for the new last_op_in_netorder() predicate
115 Wed Oct 20 19:07:36 MEST 1999 Raphael Manfredi <Raphael_Manfredi@pobox.com>
119 Forgot to update VERSION
121 Tue Oct 19 21:25:02 MEST 1999 Raphael Manfredi <Raphael_Manfredi@pobox.com>
125 Added mention of japanese translation for the manual page.
127 Fixed typo in macro that made threaded code not compilable,
128 especially on Win32 platforms.
130 Changed detection of older perls (pre-5.005) by testing PATCHLEVEL
131 directly instead of relying on internal symbols.
133 Tue Sep 14 22:13:28 MEST 1999 Raphael Manfredi <Raphael_Manfredi@pobox.com>
137 Integrated "thread-safe" patch from Murray Nesbitt.
138 Note that this may not be very efficient for threaded code,
139 see comment in the code.
141 Try to avoid compilation warning on 64-bit CPUs. Can't test it,
142 since I don't have access to such machines.
144 Mon Jul 12 14:37:19 METDST 1999 Raphael Manfredi <Raphael_Manfredi@pobox.com>
148 changed my e-mail to pobox.
150 mentionned it is not thread-safe.
152 updated version number.
154 uses new internal PL_* naming convention.
156 Fri Jul 3 13:38:16 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
160 Updated benchmark figures due to recent optimizations done in
161 store(): tagnums are now stored as-is in the hash table, so
162 no surrounding SV is created. And the "shared keys" mode for
163 hash table was turned off.
165 Fixed backward compatibility (wrt 0.5@9) for retrieval of
166 blessed refs. That old version did something wrong, but the
167 bugfix prevented correct retrieval of the old format.
169 Mon Jun 22 11:00:48 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
173 Changed benchmark figures.
175 Adjust refcnt of tied objects after calling sv_magic() to avoid
176 memory leaks. Contributed by Jeff Gresham.
178 Fri Jun 12 11:50:04 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
182 Added workaround for persistent LVALUE-ness in perl5.004. All
183 scalars tagged as being an lvalue are handled as if they were
184 not an lvalue at all. Added test for that LVALUE bug workaround.
186 Now handles Perl immortal scalars explicitely, by storing &sv_yes
187 as such, explicitely.
189 Retrieval of non-immortal undef cannot be shared. Previous
190 version was over-optimizing by not creating a separate SV for
191 all undefined scalars seen.
193 Thu Jun 4 17:21:51 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
197 Baseline for Storable-0.6@0.
199 This version introduces a binary incompatibility in the generated
200 binary image, which is more compact than older ones by approximatively
201 15%, depending on the exact degree of sharing in your structures.
203 The good news is that your older images can still be retrieved with
204 this version, i.e. backward compatibility is preserved. This version
205 of Storable can only generate new binaries however.
207 Another good news is that the retrieval of data structure is
208 significantly quicker than before, because a Perl array is used
209 instead of a hash table to keep track of retrieved objects, and
210 also because the image being smaller, less I/O function calls are
213 Tue May 12 09:15:15 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
217 Version number now got from Storable.pm directly.
219 Fixed overzealous sv_type() optimization, which would make
220 Storable fail when faced with an "upgraded" SV to the PVIV
221 or PVNV kind containing a reference.
223 Thu Apr 30 15:11:30 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
227 Extended the SYNOPSIS section to give quick overview of the
228 routines and their signature.
230 Optimized sv_type() to avoid flags checking when not needed, i.e.
231 when their type makes it impossible for them to be refs or tied.
232 This slightly increases throughput by a few percents when refs
233 and tied variables are marginal occurrences in your data.
235 Stubs for XS now use OutputStream and InputStream file types to
236 make it work when the given file is actually a socket. Perl
237 makes a distinction for sockets in its internal I/O structures
238 by having both a read and a write structure, whereas plain files
241 Tue Jun 3 09:41:33 METDST 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
245 Thanks to a contribution from Benjamin A. Holzman, Storable is now
246 able to correctly serialize tied SVs, i.e. tied arrays, hashes
249 Thu Apr 9 18:07:51 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
253 I said SvPOK() had changed to SvPOKp(), but that was a lie...
255 Wed Apr 8 13:14:29 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
259 Wrote sizeof(SV *) instead of sizeof(I32) when portable, which
260 in effect mangled the object tags and prevented portability
261 accross 32/64 bit architectures!
263 Wed Mar 25 14:57:02 MET 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
267 Added code example for store_fd() and retrieve_fd() in the
268 man page, to emphasize that file descriptors must be passed as
269 globs, not as plain strings.
271 Cannot use SV addresses as tag when using nstore() on LP64. This
272 was the cause of problems when creating a storable image on an
273 LP64 machine and retrieving it on an ILP32 system, which is
274 exactly what nstore() is meant for...
276 However, we continue to use SV addresses as tags for plain store(),
277 because benchamarking shows that it saves up to 8% of the store
278 time, and store() is meant to be fast at the expense of lack
281 This means there will be approximately an 8% degradation of
282 performance for nstore(), but it's now working as expected.
283 That cost may vary on your machine of course, since it is
284 solely caused by the memory allocation overhead used to create
285 unique SV tags for each distinct stored SV.
287 Tue Jan 20 09:21:53 MET 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
291 Don't use any '_' in version number.
293 Tue Jan 13 17:51:50 MET 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
297 Updated version number.
299 added binmode() calls for systems where it matters.
301 Be sure to pass globs, not plain file strings, to C routines,
302 so that Storable can be used under the Perl debugger.
304 Wed Nov 5 10:53:22 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
308 Fix memory leaks on seen hash table and returned SV refs.
310 Storable did not work properly when tainting enabled.
312 Fixed "Allocation too large" messages in freeze/thaw and added.
313 proper regression test in t/freeze.t.
315 Tue Jun 3 09:41:33 METDST 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
319 Updated version number
321 Added freeze/thaw interface and dclone.
323 Fri May 16 10:45:47 METDST 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
327 Forgot that AutoLoader does not export its own AUTOLOAD.
330 use AutoLoader 'AUTOLOAD';
332 but that would not be backward compatible. So the export is
335 Tue Mar 25 11:21:32 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
339 Empty scalar strings are now "defined" at retrieval time.
341 New test to ensure an empty string is defined when retrieved.
343 Thu Feb 27 16:32:44 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
347 Updated version number
349 Declare VERSION as being used
351 Fixed a typo in the PerlIO_putc remapping.
352 PerlIO_read and perlIO_write inverted size/nb_items.
353 (only relevant for pre-perl5.004 versions)
355 Thu Feb 27 15:58:31 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
359 Updated version number
361 Added VERSION identification
363 Allow build with perl5.003, which is ante perlIO time
365 Mon Jan 13 17:53:18 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
371 Wed Jan 22 15:19:56 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
375 Updated version number in Makefile.PL.
377 Added "thanks to" section to README.
379 Documented new forgive_me variable.
383 Added forgive_me support to allow store() of data structures
384 containing non-storable items like CODE refs.