1 Sun Nov 5 18:23:48 MET 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
7 Fixed severe "object lost" bug for STORABLE_freeze returns,
8 when refs to lexicals, taken within the hook, were to be
9 serialized by Storable. Enhanced the t/recurse.t test to
10 stress hook a little more with refs to lexicals.
12 Thu Oct 26 19:14:38 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
18 Documented that store() and retrieve() can return undef.
19 That is, the error reporting is not always made via exceptions,
20 as the paragraph on error reporting was implying.
22 Auto requires module of blessed ref when STORABLE_thaw misses.
23 When the Storable engine looks for the STORABLE_thaw hook and
24 does not find it, it now tries to require the package into which
25 the blessed reference is.
27 Just check $^O, in t/lock.t: there's no need to pull the whole
28 Config module for that.
30 Fri Sep 29 21:52:29 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
36 Avoid using "tainted" and "dirty" since Perl remaps them via
37 cpp (i.e. #define). This is deeply harmful when threading
38 is enabled. This concerned both the context structure and
39 local variable and argument names. Brrr..., scary!
41 Thu Sep 28 23:46:39 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
47 Fixed spelling in README.
49 Added lock_store, lock_nstore, and lock_retrieve (advisory locking)
50 after a proposal from Erik Haugan <erik@solbors.no>.
52 Perls before 5.004_04 lack newSVpvn, added remapping in XS.
54 Fixed stupid typo in the t/utf8.t test.
56 Sun Sep 17 18:51:10 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
60 Version 1.0.1, binary format 2.3.
62 Documented that doubles are stored stringified by nstore().
64 Added Salvador Ortiz Garcia in CREDITS section, He identified
65 a bug in the store hooks and proposed the right fix: the class
66 id was allocated too soon. His bug case was also added to
67 the regression test suite.
69 Now only taint retrieved data when source was tainted. A bug
70 discovered by Marc Lehmann.
72 Added support for UTF-8 strings, a contribution of Marc Lehmann.
73 This is normally only activated in post-5.6 perls.
75 Thu Aug 31 23:06:06 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
77 First official release Storable 1.0, for inclusion in perl 5.7.0.
78 The license scheme is now compatible with Perl's.
80 Thu Aug 24 01:02:02 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
85 ANSI-fied most of the code, preparing for Perl core integration.
86 The next version of Storable will be 0.8, and will be integrated
87 into the Perl core (development branch).
89 Dispatch tables were moved upfront to relieve some compilers,
90 especially on AIX and Windows platforms.
92 Merged 64-bit fixes from perl5-porters.
94 Mon Aug 14 09:22:04 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
98 Added a refcnt dec in retrieve_tied_key(): sv_magic() increases
99 the refcnt on the mg_ptr as well.
101 Removed spurious dependency to Devel::Peek, which was used for
102 testing only in t/tied_items.t. Thanks to Conrad Heiney
103 <conrad@fringehead.org> for spotting it first.
105 Sun Aug 13 22:12:59 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
109 Marc Lehmann kindly contributed code to add overloading support
110 and to handle references to tied variables.
112 Rewrote leading blurb about compatibility to make it clearer what
113 "backward compatibility" is about: when I say 0.7 is backward
114 compatible with 0.6, it means the revision 0.7 can read files
117 Mention new Clone(3) extension in SEE ALSO.
119 Was wrongly optimizing for "undef" values in hashes by not
120 fully recursing: as a result, tied "undef" values were incorrectly
123 Sun Jul 30 12:59:17 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
125 First revision of Storable 0.7.
127 The serializing format is new, known as version 2.0. It is fully
128 backward compatible with 0.6. Earlier formats are deprecated and
129 have not even been tested: next version will drop pre-0.6 format.
131 Changes since 0.6@11:
133 - Moved interface to the "beta" status. Some tiny parts are still
134 subject to change, but nothing important enough to warrant an "alpha"
137 - Slightly reduced the size of the Storable image by factorizing
138 object class names and removing final object storage notification due
139 to a redesign of the blessed object storing.
141 - Classes can now redefine how they wish their instances to be serialized
142 and/or deep cloned. Serializing hooks are written in Perl code.
144 - The engine is now fully re-entrant.
146 Sun Apr 2 23:47:50 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
150 Added provision to detect more recent binary formats, since
151 the new upcoming Storable-0.7 will use a different format.
152 In order to prevent attempting the de-serialization of newer
153 formats by older versions, I'm adding this now to the 0.6 series.
155 I'm expecting this revision to be the last of the 0.6 series.
156 Unless it does not work with perl 5.6, which I don't use yet,
157 and therefore against which I cannot test.
159 Wed Mar 29 19:55:21 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
163 Added note about format incompatibilities with old versions
164 (i.e. pre 0.5@9 formats, which cannot be understood as there
165 was no versionning information in the file by then).
167 Protect all $@ variables when eval {} used, to avoid corrupting
168 it when store/retrieve is called within an exception handler.
170 Mistakenly included "patchlevel.h" instead of <patchlevel.h>,
171 preventing Perl's patchlevel from being included, which is
172 needed starting from 5.6.
174 Tue May 12 09:15:15 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
178 Fixed shared "undef" bug in hashes, which did not remain shared
179 through store/retrieve.
181 Thu Feb 10 19:48:16 MET 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
185 added last_op_in_netorder() predicate
186 documented last_op_in_netorder()
187 added tests for the new last_op_in_netorder() predicate
189 Wed Oct 20 19:07:36 MEST 1999 Raphael Manfredi <Raphael_Manfredi@pobox.com>
193 Forgot to update VERSION
195 Tue Oct 19 21:25:02 MEST 1999 Raphael Manfredi <Raphael_Manfredi@pobox.com>
199 Added mention of japanese translation for the manual page.
201 Fixed typo in macro that made threaded code not compilable,
202 especially on Win32 platforms.
204 Changed detection of older perls (pre-5.005) by testing PATCHLEVEL
205 directly instead of relying on internal symbols.
207 Tue Sep 14 22:13:28 MEST 1999 Raphael Manfredi <Raphael_Manfredi@pobox.com>
211 Integrated "thread-safe" patch from Murray Nesbitt.
212 Note that this may not be very efficient for threaded code,
213 see comment in the code.
215 Try to avoid compilation warning on 64-bit CPUs. Can't test it,
216 since I don't have access to such machines.
218 Mon Jul 12 14:37:19 METDST 1999 Raphael Manfredi <Raphael_Manfredi@pobox.com>
222 changed my e-mail to pobox.
224 mentionned it is not thread-safe.
226 updated version number.
228 uses new internal PL_* naming convention.
230 Fri Jul 3 13:38:16 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
234 Updated benchmark figures due to recent optimizations done in
235 store(): tagnums are now stored as-is in the hash table, so
236 no surrounding SV is created. And the "shared keys" mode for
237 hash table was turned off.
239 Fixed backward compatibility (wrt 0.5@9) for retrieval of
240 blessed refs. That old version did something wrong, but the
241 bugfix prevented correct retrieval of the old format.
243 Mon Jun 22 11:00:48 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
247 Changed benchmark figures.
249 Adjust refcnt of tied objects after calling sv_magic() to avoid
250 memory leaks. Contributed by Jeff Gresham.
252 Fri Jun 12 11:50:04 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
256 Added workaround for persistent LVALUE-ness in perl5.004. All
257 scalars tagged as being an lvalue are handled as if they were
258 not an lvalue at all. Added test for that LVALUE bug workaround.
260 Now handles Perl immortal scalars explicitely, by storing &sv_yes
261 as such, explicitely.
263 Retrieval of non-immortal undef cannot be shared. Previous
264 version was over-optimizing by not creating a separate SV for
265 all undefined scalars seen.
267 Thu Jun 4 17:21:51 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
271 Baseline for Storable-0.6@0.
273 This version introduces a binary incompatibility in the generated
274 binary image, which is more compact than older ones by approximatively
275 15%, depending on the exact degree of sharing in your structures.
277 The good news is that your older images can still be retrieved with
278 this version, i.e. backward compatibility is preserved. This version
279 of Storable can only generate new binaries however.
281 Another good news is that the retrieval of data structure is
282 significantly quicker than before, because a Perl array is used
283 instead of a hash table to keep track of retrieved objects, and
284 also because the image being smaller, less I/O function calls are
287 Tue May 12 09:15:15 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
291 Version number now got from Storable.pm directly.
293 Fixed overzealous sv_type() optimization, which would make
294 Storable fail when faced with an "upgraded" SV to the PVIV
295 or PVNV kind containing a reference.
297 Thu Apr 30 15:11:30 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
301 Extended the SYNOPSIS section to give quick overview of the
302 routines and their signature.
304 Optimized sv_type() to avoid flags checking when not needed, i.e.
305 when their type makes it impossible for them to be refs or tied.
306 This slightly increases throughput by a few percents when refs
307 and tied variables are marginal occurrences in your data.
309 Stubs for XS now use OutputStream and InputStream file types to
310 make it work when the given file is actually a socket. Perl
311 makes a distinction for sockets in its internal I/O structures
312 by having both a read and a write structure, whereas plain files
315 Tue Jun 3 09:41:33 METDST 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
319 Thanks to a contribution from Benjamin A. Holzman, Storable is now
320 able to correctly serialize tied SVs, i.e. tied arrays, hashes
323 Thu Apr 9 18:07:51 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
327 I said SvPOK() had changed to SvPOKp(), but that was a lie...
329 Wed Apr 8 13:14:29 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
333 Wrote sizeof(SV *) instead of sizeof(I32) when portable, which
334 in effect mangled the object tags and prevented portability
335 accross 32/64 bit architectures!
337 Wed Mar 25 14:57:02 MET 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
341 Added code example for store_fd() and retrieve_fd() in the
342 man page, to emphasize that file descriptors must be passed as
343 globs, not as plain strings.
345 Cannot use SV addresses as tag when using nstore() on LP64. This
346 was the cause of problems when creating a storable image on an
347 LP64 machine and retrieving it on an ILP32 system, which is
348 exactly what nstore() is meant for...
350 However, we continue to use SV addresses as tags for plain store(),
351 because benchamarking shows that it saves up to 8% of the store
352 time, and store() is meant to be fast at the expense of lack
355 This means there will be approximately an 8% degradation of
356 performance for nstore(), but it's now working as expected.
357 That cost may vary on your machine of course, since it is
358 solely caused by the memory allocation overhead used to create
359 unique SV tags for each distinct stored SV.
361 Tue Jan 20 09:21:53 MET 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
365 Don't use any '_' in version number.
367 Tue Jan 13 17:51:50 MET 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
371 Updated version number.
373 added binmode() calls for systems where it matters.
375 Be sure to pass globs, not plain file strings, to C routines,
376 so that Storable can be used under the Perl debugger.
378 Wed Nov 5 10:53:22 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
382 Fix memory leaks on seen hash table and returned SV refs.
384 Storable did not work properly when tainting enabled.
386 Fixed "Allocation too large" messages in freeze/thaw and added.
387 proper regression test in t/freeze.t.
389 Tue Jun 3 09:41:33 METDST 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
393 Updated version number
395 Added freeze/thaw interface and dclone.
397 Fri May 16 10:45:47 METDST 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
401 Forgot that AutoLoader does not export its own AUTOLOAD.
404 use AutoLoader 'AUTOLOAD';
406 but that would not be backward compatible. So the export is
409 Tue Mar 25 11:21:32 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
413 Empty scalar strings are now "defined" at retrieval time.
415 New test to ensure an empty string is defined when retrieved.
417 Thu Feb 27 16:32:44 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
421 Updated version number
423 Declare VERSION as being used
425 Fixed a typo in the PerlIO_putc remapping.
426 PerlIO_read and perlIO_write inverted size/nb_items.
427 (only relevant for pre-perl5.004 versions)
429 Thu Feb 27 15:58:31 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
433 Updated version number
435 Added VERSION identification
437 Allow build with perl5.003, which is ante perlIO time
439 Mon Jan 13 17:53:18 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
445 Wed Jan 22 15:19:56 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
449 Updated version number in Makefile.PL.
451 Added "thanks to" section to README.
453 Documented new forgive_me variable.
457 Added forgive_me support to allow store() of data structures
458 containing non-storable items like CODE refs.