Update to Storable 1.0, from Raphael Manfredi.
[p5sagit/p5-mst-13.2.git] / ext / Storable / ChangeLog
CommitLineData
9e21b3d0 1Thu 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
f0ffaed8 6Thu 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
7a6a85bf 20Mon 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
31Sun 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
49Sun 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
72Sun 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
85Wed 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
100Tue 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
107Thu 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
115Wed Oct 20 19:07:36 MEST 1999 Raphael Manfredi <Raphael_Manfredi@pobox.com>
116
117. Description:
118
119 Forgot to update VERSION
120
121Tue 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
133Tue 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
144Mon 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
156Fri 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
169Mon 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
178Fri 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
193Thu 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
213Tue 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
223Thu 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
241Tue 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
249Thu 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
255Wed 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
263Wed 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
287Tue 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
293Tue 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
304Wed 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
315Tue 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
323Fri 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
335Tue 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
343Thu 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
355Thu 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
365Mon Jan 13 17:53:18 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
366
367. Description:
368
369 Random code fixes.
370
371Wed 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