Upgrade to Unicode 3.1 beta 2001-03-01.
[p5sagit/p5-mst-13.2.git] / ext / Storable / ChangeLog
1 Sat 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
32 Wed 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
50 Sun 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
61 Thu 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
79 Fri 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
90 Thu 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
105 Sun 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
124 Thu 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
129 Thu 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
143 Mon 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
154 Sun 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
172 Sun 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
195 Sun 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
208 Wed 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
223 Tue 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
230 Thu 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
238 Wed Oct 20 19:07:36 MEST 1999   Raphael Manfredi <Raphael_Manfredi@pobox.com>
239
240 . Description:
241
242         Forgot to update VERSION
243
244 Tue 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
256 Tue 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
267 Mon 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
279 Fri 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
292 Mon 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
301 Fri 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
316 Thu 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
336 Tue 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
346 Thu 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
364 Tue 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
372 Thu 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
378 Wed 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
386 Wed 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
410 Tue 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
416 Tue 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
427 Wed 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
438 Tue 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
446 Fri 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
458 Tue 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
466 Thu 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
478 Thu 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
488 Mon Jan 13 17:53:18 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
489
490 . Description:
491
492         Random code fixes.
493
494 Wed 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