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