Add a new MakeMaker variable PM_FILTER that defines a Unix
[p5sagit/p5-mst-13.2.git] / ext / Storable / ChangeLog
CommitLineData
90826881 1Sun 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
212e9bde 12Thu 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
dd19458b 30Fri 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
41Thu 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
56Sun 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
9e21b3d0 75Thu 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
f0ffaed8 80Thu 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
7a6a85bf 94Mon 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
105Sun 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
123Sun 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
146Sun 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
159Wed 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
174Tue 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
181Thu 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
189Wed Oct 20 19:07:36 MEST 1999 Raphael Manfredi <Raphael_Manfredi@pobox.com>
190
191. Description:
192
193 Forgot to update VERSION
194
195Tue 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
207Tue 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
218Mon 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
230Fri 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
243Mon 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
252Fri 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
267Thu 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
287Tue 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
297Thu 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
315Tue 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
323Thu 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
329Wed 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
337Wed 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
361Tue 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
367Tue 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
378Wed 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
389Tue 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
397Fri 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
409Tue 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
417Thu 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
429Thu 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
439Mon Jan 13 17:53:18 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
440
441. Description:
442
443 Random code fixes.
444
445Wed 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