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