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