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