Add Storable 0.7.2 from Raphael Manfredi,
[p5sagit/p5-mst-13.2.git] / ext / Storable / ChangeLog
1 Mon Aug 14 09:22:04 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
2
3 . Description:
4
5         Added a refcnt dec in retrieve_tied_key(): sv_magic() increases
6         the refcnt on the mg_ptr as well.
7
8         Removed spurious dependency to Devel::Peek, which was used for
9         testing only in t/tied_items.t.  Thanks to Conrad Heiney
10         <conrad@fringehead.org> for spotting it first.
11
12 Sun Aug 13 22:12:59 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
13
14 . Description:
15
16         Marc Lehmann kindly contributed code to add overloading support
17         and to handle references to tied variables.
18
19         Rewrote leading blurb about compatibility to make it clearer what
20         "backward compatibility" is about: when I say 0.7 is backward
21         compatible with 0.6, it means the revision 0.7 can read files
22         produced by 0.6.
23
24         Mention new Clone(3) extension in SEE ALSO.
25
26         Was wrongly optimizing for "undef" values in hashes by not
27         fully recursing: as a result, tied "undef" values were incorrectly
28         serialized.
29
30 Sun Jul 30 12:59:17 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
31
32         First revision of Storable 0.7.
33
34         The serializing format is new, known as version 2.0.  It is fully
35         backward compatible with 0.6.  Earlier formats are deprecated and
36         have not even been tested: next version will drop pre-0.6 format.
37
38         Changes since 0.6@11:
39
40         - Moved interface to the "beta" status.  Some tiny parts are still
41           subject to change, but nothing important enough to warrant an "alpha"
42           status any longer.
43
44         - Slightly reduced the size of the Storable image by factorizing
45           object class names and removing final object storage notification due
46           to a redesign of the blessed object storing.
47
48         - Classes can now redefine how they wish their instances to be serialized
49           and/or deep cloned.  Serializing hooks are written in Perl code.
50
51         - The engine is now fully re-entrant.
52
53 Sun Apr  2 23:47:50 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
54
55 . Description:
56
57         Added provision to detect more recent binary formats, since
58         the new upcoming Storable-0.7 will use a different format.
59         In order to prevent attempting the de-serialization of newer
60         formats by older versions, I'm adding this now to the 0.6 series.
61
62         I'm expecting this revision to be the last of the 0.6 series.
63         Unless it does not work with perl 5.6, which I don't use yet,
64         and therefore against which I cannot test.
65
66 Wed Mar 29 19:55:21 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
67
68 . Description:
69
70         Added note about format incompatibilities with old versions
71         (i.e. pre 0.5@9 formats, which cannot be understood as there
72         was no versionning information in the file by then).
73
74         Protect all $@ variables when eval {} used, to avoid corrupting
75         it when store/retrieve is called within an exception handler.
76
77         Mistakenly included "patchlevel.h" instead of <patchlevel.h>,
78         preventing Perl's patchlevel from being included, which is
79         needed starting from 5.6.
80
81 Tue May 12 09:15:15 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
82
83 . Description:
84
85         Fixed shared "undef" bug in hashes, which did not remain shared
86         through store/retrieve.
87
88 Thu Feb 10 19:48:16 MET 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
89
90 . Description:
91
92         added last_op_in_netorder() predicate
93         documented last_op_in_netorder()
94         added tests for the new last_op_in_netorder() predicate
95
96 Wed Oct 20 19:07:36 MEST 1999   Raphael Manfredi <Raphael_Manfredi@pobox.com>
97
98 . Description:
99
100         Forgot to update VERSION
101
102 Tue Oct 19 21:25:02 MEST 1999   Raphael Manfredi <Raphael_Manfredi@pobox.com>
103
104 . Description:
105
106         Added mention of japanese translation for the manual page.
107
108         Fixed typo in macro that made threaded code not compilable,
109         especially on Win32 platforms.
110
111         Changed detection of older perls (pre-5.005) by testing PATCHLEVEL
112         directly instead of relying on internal symbols.
113
114 Tue Sep 14 22:13:28 MEST 1999   Raphael Manfredi <Raphael_Manfredi@pobox.com>
115
116 . Description:
117
118         Integrated "thread-safe" patch from Murray Nesbitt.
119         Note that this may not be very efficient for threaded code,
120         see comment in the code.
121
122         Try to avoid compilation warning on 64-bit CPUs. Can't test it,
123         since I don't have access to such machines.
124
125 Mon Jul 12 14:37:19 METDST 1999   Raphael Manfredi <Raphael_Manfredi@pobox.com>
126
127 . Description:
128
129         changed my e-mail to pobox.
130
131         mentionned it is not thread-safe.
132
133         updated version number.
134
135         uses new internal PL_* naming convention.
136
137 Fri Jul  3 13:38:16 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
138
139 . Description:
140
141         Updated benchmark figures due to recent optimizations done in
142         store(): tagnums are now stored as-is in the hash table, so
143         no surrounding SV is created. And the "shared keys" mode for
144         hash table was turned off.
145
146         Fixed backward compatibility (wrt 0.5@9) for retrieval of
147         blessed refs. That old version did something wrong, but the
148         bugfix prevented correct retrieval of the old format.
149
150 Mon Jun 22 11:00:48 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
151
152 . Description:
153
154         Changed benchmark figures.
155
156         Adjust refcnt of tied objects after calling sv_magic() to avoid
157         memory leaks.  Contributed by Jeff Gresham.
158
159 Fri Jun 12 11:50:04 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
160
161 . Description:
162
163         Added workaround for persistent LVALUE-ness in perl5.004. All
164         scalars tagged as being an lvalue are handled as if they were
165         not an lvalue at all.  Added test for that LVALUE bug workaround.
166
167         Now handles Perl immortal scalars explicitely, by storing &sv_yes
168         as such, explicitely.
169
170         Retrieval of non-immortal undef cannot be shared. Previous
171         version was over-optimizing by not creating a separate SV for
172         all undefined scalars seen.
173
174 Thu Jun  4 17:21:51 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
175
176 . Description:
177
178         Baseline for Storable-0.6@0.
179
180         This version introduces a binary incompatibility in the generated
181         binary image, which is more compact than older ones by approximatively
182         15%, depending on the exact degree of sharing in your structures.
183
184         The good news is that your older images can still be retrieved with
185         this version, i.e. backward compatibility is preserved. This version
186         of Storable can only generate new binaries however.
187
188         Another good news is that the retrieval of data structure is
189         significantly quicker than before, because a Perl array is used
190         instead of a hash table to keep track of retrieved objects, and
191         also because the image being smaller, less I/O function calls are
192         made.
193
194 Tue May 12 09:15:15 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
195
196 . Description:
197
198         Version number now got from Storable.pm directly.
199
200         Fixed overzealous sv_type() optimization, which would make
201         Storable fail when faced with an "upgraded" SV to the PVIV
202         or PVNV kind containing a reference.
203
204 Thu Apr 30 15:11:30 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
205
206 . Description:
207
208         Extended the SYNOPSIS section to give quick overview of the
209         routines and their signature.
210
211         Optimized sv_type() to avoid flags checking when not needed, i.e.
212         when their type makes it impossible for them to be refs or tied.
213         This slightly increases throughput by a few percents when refs
214         and tied variables are marginal occurrences in your data.
215
216         Stubs for XS now use OutputStream and InputStream file types to
217         make it work when the given file is actually a socket. Perl
218         makes a distinction for sockets in its internal I/O structures
219         by having both a read and a write structure, whereas plain files
220         share the same one.
221
222 Tue Jun  3 09:41:33 METDST 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
223
224 . Description:
225
226         Thanks to a contribution from Benjamin A. Holzman, Storable is now
227         able to correctly serialize tied SVs, i.e. tied arrays, hashes
228         and scalars.
229
230 Thu Apr  9 18:07:51 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
231
232 . Description:
233
234         I said SvPOK() had changed to SvPOKp(), but that was a lie...
235
236 Wed Apr  8 13:14:29 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
237
238 . Description:
239
240         Wrote sizeof(SV *) instead of sizeof(I32) when portable, which
241         in effect mangled the object tags and prevented portability
242         accross 32/64 bit architectures!
243
244 Wed Mar 25 14:57:02 MET 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
245
246 . Description:
247
248         Added code example for store_fd() and retrieve_fd() in the
249         man page, to emphasize that file descriptors must be passed as
250         globs, not as plain strings.
251
252         Cannot use SV addresses as tag when using nstore() on LP64. This
253         was the cause of problems when creating a storable image on an
254         LP64 machine and retrieving it on an ILP32 system, which is
255         exactly what nstore() is meant for...
256
257         However, we continue to use SV addresses as tags for plain store(),
258         because benchamarking shows that it saves up to 8% of the store
259         time, and store() is meant to be fast at the expense of lack
260         of portability.
261
262         This means there will be approximately an 8% degradation of
263         performance for nstore(), but it's now working as expected.
264         That cost may vary on your machine of course, since it is
265         solely caused by the memory allocation overhead used to create
266         unique SV tags for each distinct stored SV.
267
268 Tue Jan 20 09:21:53 MET 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
269
270 . Description:
271
272         Don't use any '_' in version number.
273
274 Tue Jan 13 17:51:50 MET 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
275
276 . Description:
277
278         Updated version number.
279
280         added binmode() calls for systems where it matters.
281
282         Be sure to pass globs, not plain file strings, to C routines,
283         so that Storable can be used under the Perl debugger.
284
285 Wed Nov  5 10:53:22 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
286
287 . Description:
288
289         Fix memory leaks on seen hash table and returned SV refs.
290
291         Storable did not work properly when tainting enabled.
292
293         Fixed "Allocation too large" messages in freeze/thaw and added.
294         proper regression test in t/freeze.t.
295
296 Tue Jun  3 09:41:33 METDST 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
297
298 . Description:
299
300         Updated version number
301
302         Added freeze/thaw interface and dclone.
303
304 Fri May 16 10:45:47 METDST 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
305
306 . Description:
307
308         Forgot that AutoLoader does not export its own AUTOLOAD.
309         I could use
310
311                 use AutoLoader 'AUTOLOAD';
312         
313         but that would not be backward compatible. So the export is
314         done by hand...
315
316 Tue Mar 25 11:21:32 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
317
318 . Description:
319
320         Empty scalar strings are now "defined" at retrieval time.
321
322         New test to ensure an empty string is defined when retrieved.
323
324 Thu Feb 27 16:32:44 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
325
326 . Description:
327
328         Updated version number
329
330         Declare VERSION as being used
331
332         Fixed a typo in the PerlIO_putc remapping.
333         PerlIO_read and perlIO_write inverted size/nb_items.
334         (only relevant for pre-perl5.004 versions)
335
336 Thu Feb 27 15:58:31 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
337
338 . Description:
339
340         Updated version number
341
342         Added VERSION identification
343
344         Allow build with perl5.003, which is ante perlIO time
345
346 Mon Jan 13 17:53:18 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
347
348 . Description:
349
350         Random code fixes.
351
352 Wed Jan 22 15:19:56 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
353
354 . Description:
355
356         Updated version number in Makefile.PL.
357
358         Added "thanks to" section to README.
359
360         Documented new forgive_me variable.
361
362         Made 64-bit clean.
363
364         Added forgive_me support to allow store() of data structures
365         containing non-storable items like CODE refs.
366