Upgrade to Unicode 3.1 beta 2001-03-01.
[p5sagit/p5-mst-13.2.git] / ext / Storable / ChangeLog
CommitLineData
b12202d0 1Sat Feb 17 13:35:00 MET 2001 Raphael Manfredi <Raphael_Manfredi@pobox.com>
2
3. Description:
4
5 Version 1.0.8, binary format 2.4.
6
7 Fixed incorrect error message.
8
9 Now bless objects ASAP at retrieve time, which is meant to fix
10 two bugs:
11
12 * Indirect references to overloaded object were not able to
13 restore overloading if the object was not blessed yet,
14 which was possible since blessing occurred only after the
15 recursive retrieval.
16
17 * Storable hooks asking for serialization of blessed ref could
18 get un-blessed refs at retrieval time, for the very same
19 reason.
20
21 The fix implemented here was suggested by Nick Ing-Simmons.
22
23 Added support for blessed ref to tied structures. This is the
24 cause for the binary format change.
25
26 Added EBCDIC version of the compatibility test with 0.6.11,
27 from Peter Prymmer
28
29 Added tests for the new features, and to make sure the bugs they
30 are meant to fix are indeed fixed.
31
862382c7 32Wed Jan 3 10:43:18 MET 2001 Raphael Manfredi <Raphael_Manfredi@pobox.com>
33
34. Description:
35
36 Removed spurious 'clean' entry in Makefile.PL.
37
38 Added CAN_FLOCK to determine whether we can flock() or not,
39 by inspecting Perl's configuration parameters, as determined
40 by Configure.
41
42 Trace offending package when overloading cannot be restored
43 on a scalar.
44
45 Made context cleanup safer to avoid dup freeing, mostly in the
46 presence of repeated exceptions during store/retrieve (which can
47 cause memory leaks anyway, so it's just additional safety, not a
48 definite fix).
49
90826881 50Sun Nov 5 18:23:48 MET 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
51
52. Description:
53
54 Version 1.0.6.
55
56 Fixed severe "object lost" bug for STORABLE_freeze returns,
57 when refs to lexicals, taken within the hook, were to be
58 serialized by Storable. Enhanced the t/recurse.t test to
59 stress hook a little more with refs to lexicals.
60
212e9bde 61Thu Oct 26 19:14:38 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
62
63. Description:
64
65 Version 1.0.5.
66
67 Documented that store() and retrieve() can return undef.
68 That is, the error reporting is not always made via exceptions,
69 as the paragraph on error reporting was implying.
70
71 Auto requires module of blessed ref when STORABLE_thaw misses.
72 When the Storable engine looks for the STORABLE_thaw hook and
73 does not find it, it now tries to require the package into which
74 the blessed reference is.
75
76 Just check $^O, in t/lock.t: there's no need to pull the whole
77 Config module for that.
78
dd19458b 79Fri Sep 29 21:52:29 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
80
81. Description:
82
83 Version 1.0.3.
84
85 Avoid using "tainted" and "dirty" since Perl remaps them via
86 cpp (i.e. #define). This is deeply harmful when threading
87 is enabled. This concerned both the context structure and
88 local variable and argument names. Brrr..., scary!
89
90Thu Sep 28 23:46:39 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
91
92. Description:
93
94 Version 1.0.2.
95
96 Fixed spelling in README.
97
98 Added lock_store, lock_nstore, and lock_retrieve (advisory locking)
99 after a proposal from Erik Haugan <erik@solbors.no>.
100
101 Perls before 5.004_04 lack newSVpvn, added remapping in XS.
102
103 Fixed stupid typo in the t/utf8.t test.
104
105Sun Sep 17 18:51:10 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
106
107. Description:
108
109 Version 1.0.1, binary format 2.3.
110
111 Documented that doubles are stored stringified by nstore().
112
113 Added Salvador Ortiz Garcia in CREDITS section, He identified
114 a bug in the store hooks and proposed the right fix: the class
115 id was allocated too soon. His bug case was also added to
116 the regression test suite.
117
118 Now only taint retrieved data when source was tainted. A bug
119 discovered by Marc Lehmann.
120
121 Added support for UTF-8 strings, a contribution of Marc Lehmann.
122 This is normally only activated in post-5.6 perls.
123
9e21b3d0 124Thu Aug 31 23:06:06 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
125
126 First official release Storable 1.0, for inclusion in perl 5.7.0.
127 The license scheme is now compatible with Perl's.
128
f0ffaed8 129Thu Aug 24 01:02:02 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
130
131. Description:
132
133
134 ANSI-fied most of the code, preparing for Perl core integration.
135 The next version of Storable will be 0.8, and will be integrated
136 into the Perl core (development branch).
137
138 Dispatch tables were moved upfront to relieve some compilers,
139 especially on AIX and Windows platforms.
140
141 Merged 64-bit fixes from perl5-porters.
142
7a6a85bf 143Mon Aug 14 09:22:04 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
144
145. Description:
146
147 Added a refcnt dec in retrieve_tied_key(): sv_magic() increases
148 the refcnt on the mg_ptr as well.
149
150 Removed spurious dependency to Devel::Peek, which was used for
151 testing only in t/tied_items.t. Thanks to Conrad Heiney
152 <conrad@fringehead.org> for spotting it first.
153
154Sun Aug 13 22:12:59 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
155
156. Description:
157
158 Marc Lehmann kindly contributed code to add overloading support
159 and to handle references to tied variables.
160
161 Rewrote leading blurb about compatibility to make it clearer what
162 "backward compatibility" is about: when I say 0.7 is backward
163 compatible with 0.6, it means the revision 0.7 can read files
164 produced by 0.6.
165
166 Mention new Clone(3) extension in SEE ALSO.
167
168 Was wrongly optimizing for "undef" values in hashes by not
169 fully recursing: as a result, tied "undef" values were incorrectly
170 serialized.
171
172Sun Jul 30 12:59:17 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
173
174 First revision of Storable 0.7.
175
176 The serializing format is new, known as version 2.0. It is fully
177 backward compatible with 0.6. Earlier formats are deprecated and
178 have not even been tested: next version will drop pre-0.6 format.
179
180 Changes since 0.6@11:
181
182 - Moved interface to the "beta" status. Some tiny parts are still
183 subject to change, but nothing important enough to warrant an "alpha"
184 status any longer.
185
186 - Slightly reduced the size of the Storable image by factorizing
187 object class names and removing final object storage notification due
188 to a redesign of the blessed object storing.
189
190 - Classes can now redefine how they wish their instances to be serialized
191 and/or deep cloned. Serializing hooks are written in Perl code.
192
193 - The engine is now fully re-entrant.
194
195Sun Apr 2 23:47:50 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
196
197. Description:
198
199 Added provision to detect more recent binary formats, since
200 the new upcoming Storable-0.7 will use a different format.
201 In order to prevent attempting the de-serialization of newer
202 formats by older versions, I'm adding this now to the 0.6 series.
203
204 I'm expecting this revision to be the last of the 0.6 series.
205 Unless it does not work with perl 5.6, which I don't use yet,
206 and therefore against which I cannot test.
207
208Wed Mar 29 19:55:21 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
209
210. Description:
211
212 Added note about format incompatibilities with old versions
213 (i.e. pre 0.5@9 formats, which cannot be understood as there
214 was no versionning information in the file by then).
215
216 Protect all $@ variables when eval {} used, to avoid corrupting
217 it when store/retrieve is called within an exception handler.
218
219 Mistakenly included "patchlevel.h" instead of <patchlevel.h>,
220 preventing Perl's patchlevel from being included, which is
221 needed starting from 5.6.
222
223Tue May 12 09:15:15 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
224
225. Description:
226
227 Fixed shared "undef" bug in hashes, which did not remain shared
228 through store/retrieve.
229
230Thu Feb 10 19:48:16 MET 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com>
231
232. Description:
233
234 added last_op_in_netorder() predicate
235 documented last_op_in_netorder()
236 added tests for the new last_op_in_netorder() predicate
237
238Wed Oct 20 19:07:36 MEST 1999 Raphael Manfredi <Raphael_Manfredi@pobox.com>
239
240. Description:
241
242 Forgot to update VERSION
243
244Tue Oct 19 21:25:02 MEST 1999 Raphael Manfredi <Raphael_Manfredi@pobox.com>
245
246. Description:
247
248 Added mention of japanese translation for the manual page.
249
250 Fixed typo in macro that made threaded code not compilable,
251 especially on Win32 platforms.
252
253 Changed detection of older perls (pre-5.005) by testing PATCHLEVEL
254 directly instead of relying on internal symbols.
255
256Tue Sep 14 22:13:28 MEST 1999 Raphael Manfredi <Raphael_Manfredi@pobox.com>
257
258. Description:
259
260 Integrated "thread-safe" patch from Murray Nesbitt.
261 Note that this may not be very efficient for threaded code,
262 see comment in the code.
263
264 Try to avoid compilation warning on 64-bit CPUs. Can't test it,
265 since I don't have access to such machines.
266
267Mon Jul 12 14:37:19 METDST 1999 Raphael Manfredi <Raphael_Manfredi@pobox.com>
268
269. Description:
270
271 changed my e-mail to pobox.
272
273 mentionned it is not thread-safe.
274
275 updated version number.
276
277 uses new internal PL_* naming convention.
278
279Fri Jul 3 13:38:16 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
280
281. Description:
282
283 Updated benchmark figures due to recent optimizations done in
284 store(): tagnums are now stored as-is in the hash table, so
285 no surrounding SV is created. And the "shared keys" mode for
286 hash table was turned off.
287
288 Fixed backward compatibility (wrt 0.5@9) for retrieval of
289 blessed refs. That old version did something wrong, but the
290 bugfix prevented correct retrieval of the old format.
291
292Mon Jun 22 11:00:48 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
293
294. Description:
295
296 Changed benchmark figures.
297
298 Adjust refcnt of tied objects after calling sv_magic() to avoid
299 memory leaks. Contributed by Jeff Gresham.
300
301Fri Jun 12 11:50:04 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
302
303. Description:
304
305 Added workaround for persistent LVALUE-ness in perl5.004. All
306 scalars tagged as being an lvalue are handled as if they were
307 not an lvalue at all. Added test for that LVALUE bug workaround.
308
309 Now handles Perl immortal scalars explicitely, by storing &sv_yes
310 as such, explicitely.
311
312 Retrieval of non-immortal undef cannot be shared. Previous
313 version was over-optimizing by not creating a separate SV for
314 all undefined scalars seen.
315
316Thu Jun 4 17:21:51 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
317
318. Description:
319
320 Baseline for Storable-0.6@0.
321
322 This version introduces a binary incompatibility in the generated
323 binary image, which is more compact than older ones by approximatively
324 15%, depending on the exact degree of sharing in your structures.
325
326 The good news is that your older images can still be retrieved with
327 this version, i.e. backward compatibility is preserved. This version
328 of Storable can only generate new binaries however.
329
330 Another good news is that the retrieval of data structure is
331 significantly quicker than before, because a Perl array is used
332 instead of a hash table to keep track of retrieved objects, and
333 also because the image being smaller, less I/O function calls are
334 made.
335
336Tue May 12 09:15:15 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
337
338. Description:
339
340 Version number now got from Storable.pm directly.
341
342 Fixed overzealous sv_type() optimization, which would make
343 Storable fail when faced with an "upgraded" SV to the PVIV
344 or PVNV kind containing a reference.
345
346Thu Apr 30 15:11:30 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
347
348. Description:
349
350 Extended the SYNOPSIS section to give quick overview of the
351 routines and their signature.
352
353 Optimized sv_type() to avoid flags checking when not needed, i.e.
354 when their type makes it impossible for them to be refs or tied.
355 This slightly increases throughput by a few percents when refs
356 and tied variables are marginal occurrences in your data.
357
358 Stubs for XS now use OutputStream and InputStream file types to
359 make it work when the given file is actually a socket. Perl
360 makes a distinction for sockets in its internal I/O structures
361 by having both a read and a write structure, whereas plain files
362 share the same one.
363
364Tue Jun 3 09:41:33 METDST 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
365
366. Description:
367
368 Thanks to a contribution from Benjamin A. Holzman, Storable is now
369 able to correctly serialize tied SVs, i.e. tied arrays, hashes
370 and scalars.
371
372Thu Apr 9 18:07:51 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
373
374. Description:
375
376 I said SvPOK() had changed to SvPOKp(), but that was a lie...
377
378Wed Apr 8 13:14:29 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
379
380. Description:
381
382 Wrote sizeof(SV *) instead of sizeof(I32) when portable, which
383 in effect mangled the object tags and prevented portability
384 accross 32/64 bit architectures!
385
386Wed Mar 25 14:57:02 MET 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
387
388. Description:
389
390 Added code example for store_fd() and retrieve_fd() in the
391 man page, to emphasize that file descriptors must be passed as
392 globs, not as plain strings.
393
394 Cannot use SV addresses as tag when using nstore() on LP64. This
395 was the cause of problems when creating a storable image on an
396 LP64 machine and retrieving it on an ILP32 system, which is
397 exactly what nstore() is meant for...
398
399 However, we continue to use SV addresses as tags for plain store(),
400 because benchamarking shows that it saves up to 8% of the store
401 time, and store() is meant to be fast at the expense of lack
402 of portability.
403
404 This means there will be approximately an 8% degradation of
405 performance for nstore(), but it's now working as expected.
406 That cost may vary on your machine of course, since it is
407 solely caused by the memory allocation overhead used to create
408 unique SV tags for each distinct stored SV.
409
410Tue Jan 20 09:21:53 MET 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
411
412. Description:
413
414 Don't use any '_' in version number.
415
416Tue Jan 13 17:51:50 MET 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
417
418. Description:
419
420 Updated version number.
421
422 added binmode() calls for systems where it matters.
423
424 Be sure to pass globs, not plain file strings, to C routines,
425 so that Storable can be used under the Perl debugger.
426
427Wed Nov 5 10:53:22 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
428
429. Description:
430
431 Fix memory leaks on seen hash table and returned SV refs.
432
433 Storable did not work properly when tainting enabled.
434
435 Fixed "Allocation too large" messages in freeze/thaw and added.
436 proper regression test in t/freeze.t.
437
438Tue Jun 3 09:41:33 METDST 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
439
440. Description:
441
442 Updated version number
443
444 Added freeze/thaw interface and dclone.
445
446Fri May 16 10:45:47 METDST 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
447
448. Description:
449
450 Forgot that AutoLoader does not export its own AUTOLOAD.
451 I could use
452
453 use AutoLoader 'AUTOLOAD';
454
455 but that would not be backward compatible. So the export is
456 done by hand...
457
458Tue Mar 25 11:21:32 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
459
460. Description:
461
462 Empty scalar strings are now "defined" at retrieval time.
463
464 New test to ensure an empty string is defined when retrieved.
465
466Thu Feb 27 16:32:44 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
467
468. Description:
469
470 Updated version number
471
472 Declare VERSION as being used
473
474 Fixed a typo in the PerlIO_putc remapping.
475 PerlIO_read and perlIO_write inverted size/nb_items.
476 (only relevant for pre-perl5.004 versions)
477
478Thu Feb 27 15:58:31 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
479
480. Description:
481
482 Updated version number
483
484 Added VERSION identification
485
486 Allow build with perl5.003, which is ante perlIO time
487
488Mon Jan 13 17:53:18 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
489
490. Description:
491
492 Random code fixes.
493
494Wed Jan 22 15:19:56 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
495
496. Description:
497
498 Updated version number in Makefile.PL.
499
500 Added "thanks to" section to README.
501
502 Documented new forgive_me variable.
503
504 Made 64-bit clean.
505
506 Added forgive_me support to allow store() of data structures
507 containing non-storable items like CODE refs.
508