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