Replace #6705 with a minimal doc patch.
[p5sagit/p5-mst-13.2.git] / ext / Storable / ChangeLog
CommitLineData
7a6a85bf 1Mon 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
12Sun 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
30Sun 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
53Sun 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
66Wed 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
81Tue 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
88Thu 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
96Wed Oct 20 19:07:36 MEST 1999 Raphael Manfredi <Raphael_Manfredi@pobox.com>
97
98. Description:
99
100 Forgot to update VERSION
101
102Tue 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
114Tue 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
125Mon 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
137Fri 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
150Mon 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
159Fri 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
174Thu 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
194Tue 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
204Thu 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
222Tue 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
230Thu 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
236Wed 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
244Wed 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
268Tue 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
274Tue 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
285Wed 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
296Tue 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
304Fri 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
316Tue 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
324Thu 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
336Thu 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
346Mon Jan 13 17:53:18 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
347
348. Description:
349
350 Random code fixes.
351
352Wed 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