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