12021-08-30 07:46:52 nwclark
2    version 3.25
3        * No changes from previous version
4
52021-08-25 08:05:16 nwclark
6    version 3.24_50
7        * Remove code and tests only present to support perls before 5.6.1
8          Storable implicitly needs >= v5.6.1.
9        * Use SvPVCLEAR from ppport.h
10        * Remove XS code "commented" out with #if 0
11        * Refactor store_lhash() to remove some code duplication
12        * Avoid calling hv_iterval() twice for each hash entry
13        * Fix a bug in the recursion depth check in store_lhash()
14
15unreleased
16    version 3.24
17        * Fix a (possible) typo in Sntohl
18
19unreleased
20    version 3.23
21        * Fix typos
22        * avoid stderr noise in t/canonical.t
23
242020-07-31 19:36:37 atoomic
25    version 3.22
26        * use PERL_COMPARE macros
27
282020-04-23 13:33:05 ilmari
29    version 3.21
30        * fix repeated-word typos
31        * fix t/huge.t PERL_TEST_MEMORY diagnostic messages
32
332020-01-27 10:27:00 TonyC
34    version 3.20
35        * fix a format string and arguments for some debugging text
36        * linkify references to alternatives to Storable
37
382020-01-27 11:01:00 TonyC
39    version 3.19
40        * add casts to match some I32 parameters to "%d" formats (#17339)
41        * fix dependencies in Makefile.PL -> META (#17422)
42        * make use of note() optional, this requires a newer version of
43          Test::More and there's a circular dependency between later
44          versions of Test::More and Storable  (#17422)
45
462019-11-19 07:59:39 TonyC
47    version 3.18
48        * update bug tracker to point at github (#17298)
49        * disallow vstring magic strings over 2GB-1 (#17306)
50        * mark some ASCII dependent tests as ASCII platform only
51
522019-08-08 11:48:00 TonyC
53    version 3.17
54        * correct a data type to ensure the check for too large results from
55	  STORABLE_freeze() are detected correctly (detected by Coverity)
56	* removed remains of stack size detection from the build process.
57	* moved CAN_FLOCK detection into XS to simplify the build process.
58
592019-06-11 10:43:00 TonyC
60    version 3.16
61        * (perl #134179) fix self-referencing structures that include regexps
62        * bless regexps to preserve bless qr//, "Foo"
63
642019-04-23 16:00:00 xsawyerx
65    version 3.15
66    * Fix leaking.
67
68unreleased
69    version 3.14
70	* (perl #133708) don't build-time probe for stack limits at all
71
72unreleased
73    version 3.12
74        * (perl #133411) don't probe for stack limits with -Dusecrosscompile
75
762018-04-27 20:40:00 xsawyerx
77    version 3.11
78        * Fix Strawberry Perl build failures.
79
802018-04-21 22:00:00 xsawyerx
81    Version 3.10
82        * Fix binary artifacts from distribution.
83
842018-04-21 16:49:00 xsawyerx
85    Version 3.09
86        * Fix "provides" in metadata (META.yml/META.json) to use the Storable
87          template instead of a small other file (which also didn't exist).
88
892018-04-21 11:23:00 xsawyerx
90    Version 3.08
91        * (perl #132849) try to disable core files when deliberatly segfaulting.
92        * (perl #127743) don't probe Storable limits so much.
93        * (perl #132893) don't probe for Storable recursion limits on old Win32.
94        * (perl #132870) workaround VC2017 compiler bug.
95        * (perl #127743) re-work for debugging builds with MSVC.
96        * (perl #133039) dont build a Storable.so/.dll with a static perl build.
97
982018-02-07 15:08:00 tonyc
99    Version 3.06
100
101        * support large object ids.  The code in theory supported arrays
102        with more than 2**32 elements, but references to the elements
103        emitted at the end of the array with be retrieved as references to
104        the wrong elements.
105        * 32-bit object ids over 2**31-1 weren't correctly handled.
106        * hook object id generation now supports 64-bit ids where needed
107        * writing 64-bit lengths in network order now works
108        * reading 64-bit lengths in network order now reads the components
109        in the correct order.
110        * retrieving large object tags are now only handled on 64-bit
111        platforms, large object tags should only be emitted for objects
112        that are too large for the 32-bit address space, so it was only
113        wasted code.
114        * reading 32-bit lengths for LSCALAR and LUTF8STR as unsigned
115        (perl #131990)
116        * reading flagged large object hashes didn't read the flags
117        * treat the 32-bit size of hook data as unsigned, values over 2GB
118        were treated as large (close to 2**64) parameters to NEWSV().
119        (perl #131999)
120        * added support for hook data over 4GB in size
121        * zero length data receievd from STORABLE_freeze() no longer
122        results in an invalid SV being passed to STORABLE_thaw/_attach()
123        (perl #118551)
124        * where practical, padding is now cleared when emitting a long
125        double (perl #131136)
126        * cache the value of $Storable::DEBUGME (since cperl enabled
127        Storable TRACEME builds for all -DDEBUGGING builds)
128        * no longer discard exceptions thrown by
129        STORABLE_freeze/_thaw/attach() (perl #25933)
130        * fix dependencies used to build Storable.pm from __Storable__.pm
131        * add experimental support for freezing/thawing regular
132        expressions (perl #50608)
133        * re-work recursion limiting to store the limit in a perl variable
134        instead of baked into Storable.$so.  This allows static Storable
135        builds to work, and avoids the kind of circular reference on
136        Storable.$so.
137
1382017-07-24 13:57:13 rurban
139    Version 3.05_13
140
141        * mingw fix: use safe defaults, not segfaulting defaults.
142        mingw fails on the stacksize binary search, leaving it empty.
143
144Wed Apr 19 09:11:07 2017 +0200 Reini Urban <rurban@cpan.org>
145    Version 3.05_12
146
147        * enhance stack reserve from 8 to 16
148        * fix LD_LIBRARY_PATH usage for CORE
149        * fixed some coverity warnings and leaks
150        * added a release make target
151
152Wed Mar 29 21:04:28 2017 +0200 Reini Urban <rurban@cpan.org>
153    Version 3.05_11
154
155        * croak on sizes read > I32_MAX
156        * simplify last_op_in_netorder
157        * protect from empty retrieve_vstring
158        * protect store_other error buf, potential static
159        buffer overflow.
160
161Tue Mar 14 09:52:20 2017 +0100 Reini Urban <rurban@cpan.org>
162    Version 3.05_10
163
164        * CORE-only improvements to stacksize
165
166Thu Mar 9 19:20:19 2017 +0100 Reini Urban <rurban@cpan.org>
167    Version 3.05_09
168
169        * compute the stacksizes, improve cleanup within croak
170        from stack exhaustion.
171        * added stack_depth and stack_depth_hash getters.
172
173Wed Mar  8 21:03:43 CET 2017 Reini Urban <rurban@cpan.org>
174    Version 3.05_08
175
176        * finetune the max stack limit, for C++, DEBUGGING and 32bit.
177        * fix t/blessed.t for cperl5.22
178
179Sun Mar 5 13:36:47 2017 +0100 Reini Urban <rurban@cpan.org>
180    Version 3.05_07
181
182        * Fixed a podchecker issue
183
184Sun Mar 5 11:42:04 2017 +0100 Reini Urban <rurban@cpan.org>
185    Version 3.05_06
186
187        * Fixed wrong recursion depth error with large arrays containing
188        another array.
189	L<[cperl #257]|https://github.com/perl11/cperl/issues/257>
190
191Thu Feb 2 12:40:44 2017 +0100 Reini Urban <rurban@cpanel.net>
192    Version 3.05_05
193
194        * Add leak tests for [cpan #97316], [perl #121928]
195        * Limit the max recursion depth to 1200 on 32bit systems.
196        We have no max_depth option yet, as in JSON::XS.
197
198Thu Feb 2 11:59:21 2017 +0100 Reini Urban <rurban@cpanel.net>
199    Version 3.05_04
200
201        * Fix retrieve_tied_array which fails since 5.16
202        [cpan #84705]
203        * Improve t/blessed.t in the creation of sv_yes/sv_no
204        with threaded perls.
205
206Tue Jan 31 02:55:30 2017 +0100 Reini Urban <rurban@cpanel.net>
207    Version 3.05_03
208
209        * Tune t/recurse.t stack-overflow limit more.
210
211Mon Jan 30 19:50:29 2017 +0100 Reini Urban <rurban@cpanel.net>
212    Version 3.05_02
213
214        * Tune t/recurse.t stack-overflow limit. Small 64bit systems overflow
215        even with depth 3000, where 32bit are ok.
216
217Mon Jan 30 15:13:38 2017 +0100 Reini Urban <rurban@cpanel.net>
218    Version 3.05_01
219
220        * Protect against stack overflows with nested arrays and hashes
221        [cpan #97526]. This imposes a new limit to your nested structures,
222        but JSON::XS has a limit of 512. We use a max_depth of 3000 for the
223        typical stack limit of 8k.
224
225
226Sun Jan 29 11:36:43 2017 +0100 Reini Urban <rurban@cpanel.net>
227    Version 3.05
228
229        * Protect against classname len overflow on the stack
230        and 2x on the heap with retrieve_bless and retrieve_hook.
231        A serious security issue with malcrafted storable files or buffers,
232        but p5p accepts no CVE on Storable attacks. See RT #130635
233        (reported by JD).
234        * Fix NULL ptr SEGVs with retrieve_code and retrieve_other.
235        See RT #130098 (reported and fixed by JD)
236        * Fix wrong huge LOBJECT support, broken since 3.00c.
237        Repro with `export PERL_TEST_MEMORY=8`
238        * Fix the few remaining 2-arg open calls.
239        * Portability and backport fixes back to 5.6.2
240
241Sat Jan 7 09:01:29 2017 +0100 Reini Urban <rurban@cpanel.net>
242    Version 3.04c
243
244        * fix printf types and warnings, esp. for 32bit use64bitint
245        * Change sv_setpvn(…, "…", …) to sv_setpvs(…, "…")
246
247Tue Jul 26 11:49:33 2016 +1000 Tony Cook <tony@develop-help.com>
248    Version 3.03c
249
250        * remove . from @INC when loading optional modules
251
252Sun Nov 20 18:06:45 2016 +0100 Reini Urban <rurban@cpanel.net>
253    Version 3.02c
254
255        * Fix -Wc++11-compat warnings, fix -Wchar-subscripts
256
257Fri Sep 16 01:32:59 2016 +0200 Reini Urban <rurban@cpanel.net>
258    Version 3.01c
259
260        * Added warn_security("Movable-Type CVE-2015-1592 Storable metasploit attack")
261          when detecting the third destructive metasploit vector,
262          thawing bless \"mt-config.cgi", "CGITempFile".
263
264Thu Mar 31 17:10:27 2016 +0200 Reini Urban <rurban@cpanel.net>
265    Version 3.00c
266
267        * Added support for u64 strings, arrays and hashes >2G
268          via a new LOBJECT tag. This is for 32bit systems and lengths
269          between 2GB and 4GB (I32-U32), and 64bit (>I32).
270        * Bumped STORABLE_BIN_MINOR and STORABLE_BIN_WRITE_MINOR from 10 to 11
271        * fix parallel tests, use unique filenames.
272        * fixed 2 instances of 2arg open,
273        * added optional flag arguments to skip tie and bless on retrieve/thaw,
274        * added SECURITY WARNING and Large data support to docs
275        * compute CAN_FLOCK at compile-time
276        * reformat everything consistently
277        * enable DEBUGME tracing and asserts with -DDEBUGGING
278        * fix all 64 bit compiler warnings
279        * added some abstraction methods to avoid code duplication
280
281?????? p5p <perl5-porters@perl.org>
282    Version 2.65
283
284	* Replace multiple 'use vars' by 'our'
285	* remove Config dependency
286
287Wed Jul  2 16:25:25 IST 2014   Abhijit Menon-Sen <ams@toroid.org>
288    Version 2.51
289
290	* [perl #121928] Fix memory leak for dclone inside freeze hook
291	  (Alex Solovey)
292	* Do not call DESTROY for empty objects
293	  (Vladimir Timofeev)
294	* Other bugfixes
295
296Sat Jul 13 18:34:27 IST 2013   Abhijit Menon-Sen <ams@toroid.org>
297    Version 2.45
298
299       * [perl #118829] Memory leaks in STORABLE_attach
300         (Vladimir Timofeev)
301       * [perl #118139] Don't SEGV during global destruction
302         (Nicholas Clark, report/test from Reini Urban)
303       * Added security warnings section (Steffen Mueller)
304       * Update INSTALLDIRS to favour installation in 'site'
305         (James E Keenan)
306
307Tue 11 Sep 06:51:11 IST 2012   Abhijit Menon-Sen <ams@toroid.org>
308    Version 2.39
309
310	Various bugfixes, including compatibility fixes for older
311	versions of Perl and vstring handling.
312
313Sun  3 Jul 09:10:11 IST 2011   Abhijit Menon-Sen <ams@toroid.org>
314    Version 2.29
315
316	Various bugfixes, notably including preventing nfreeze from
317	incorrectly stringifying integers.
318
319Fri  3 Dec 14:12:32 GMT 2010   David Leadbeater <dgl@dgl.cx>
320    Version 2.25
321
322	Support for serializing coderefs containing UTF-8.
323
324Fri Nov 12 10:52:19 IST 2010   Abhijit Menon-Sen <ams@toroid.org>
325
326    Version 2.24
327
328	Performance improvement for overloaded classes from Benjamin
329	Holzman.
330
331Fri Nov 12 10:36:22 IST 2010   Abhijit Menon-Sen <ams@toroid.org>
332
333    Version 2.23
334
335	Release the latest version from the Perl repository.
336
337Thu Aug  6 10:55:50 IST 2009   Abhijit Menon-Sen <ams@toroid.org>
338
339    Version 2.21
340
341	Includes hints/hpux.pl that was inadvertently left out of 2.20.
342
343Mon May 18 09:38:20 IST 2009   Abhijit Menon-Sen <ams@toroid.org>
344
345    Version 2.20
346
347	Fix bug handling blessed references to overloaded objects, plus
348	other miscellaneous fixes.
349
350	(Version 2.19 was released with 5.8.9.)
351
352Thu Nov 22 13:24:18 IST 2007   Abhijit Menon-Sen <ams@toroid.org>
353
354    Version 2.18
355
356	Compile fixes for older Perls. (No functional changes.)
357
358Sat Nov 17 02:12:12 IST 2007   Abhijit Menon-Sen <ams@toroid.org>
359
360    Version 2.17
361
362	Various broken tests fixed. (No functional changes.)
363
364Sat Mar 31 06:11:06 IST 2007   Abhijit Menon-Sen <ams@toroid.org>
365
366    Version 2.16
367
368        1. Fixes to Storable::dclone, read_magic, retrieve_lscalar
369        2. Storable 0.1 compatibility
370        3. Miscellaneous compile/leak/test/portability fixes
371
372Mon May 23 22:48:49 IST 2005   Abhijit Menon-Sen <ams@wiw.org>
373
374    Version 2.15
375
376        Minor changes to address a couple of compile problems.
377
378Mon Apr 25 07:29:14 IST 2005   Abhijit Menon-Sen <ams@wiw.org>
379
380    Version 2.14
381
382	1. Store weak references
383	2. Add STORABLE_attach hook.
384
385Thu Jun 17 12:26:43 BST 2004   Nicholas Clark <nick@ccl4.org>
386
387    Version 2.13
388
389        1. Don't change the type of top level overloaded references to RV -
390	   they are perfectly correct as PVMG
391	2. Storable needs to cope with incoming frozen data that happens to be
392	   utf8 encoded.
393
394Wed Mar 17 15:40:29 GMT 2004   Nicholas Clark <nick@ccl4.org>
395
396    Version 2.12
397
398        1. Add regression tests for the auto-require of STORABLE_thaw
399        2. Add auto-require of modules to restore overloading (and tests)
400        3. Change to no context (should give speedup with ithreads)
401
402Sat Mar 13 20:11:03 GMT 2004   Nicholas Clark <nick@ccl4.org>
403
404    Version 2.11
405
406        1. Storing restricted hashes in canonical order would SEGV. Fixed.
407        2. It was impossible to retrieve references to PL_sv_no and
408           PL_sv_undef from STORABLE_thaw hooks.
409        3. restrict.t was failing on 5.8.0, due to 5.8.0's unique
410           implementation of restricted hashes using PL_sv_undef
411        4. These changes allow a space optimisation for restricted hashes.
412
413Sat Jan 24 16:22:32 IST 2004   Abhijit Menon-Sen <ams@wiw.org>
414
415    Version 2.10
416
417        1. Thread safety: Storable::CLONE/init_perlinterp() now create
418           a new Perl context for each new ithread.
419           (From Stas Bekman and Jan Dubois.)
420        2. Fix a tag count mismatch with $Storable::Deparse that caused
421           all back-references after a stored sub to be off-by-N (where
422           N was the number of code references in between).
423           (From Sam Vilain.)
424        3. Prevent CODE references from turning into SCALAR references.
425           (From Slaven Rezic.)
426
427Sat Jan  3 18:49:18 GMT 2004   Nicholas Clark <nick@ccl4.org>
428
429    Version 2.09
430
431	Fix minor problems with the CPAN release
432	1: Make Storable.xs work on 5.8.2 and later (already in the core)
433	2: Ship the linux hints file
434	3: Ship Test::More for the benefit of Perls pre 5.6.2
435	4: Correct Makefile.PL to only install in core for 5.8.0 and later
436
437Sat Sep  6 01:08:20 IST 2003   Abhijit Menon-Sen <ams@wiw.org>
438
439    Version 2.08
440
441        This release works around a 5.8.0 bug which caused hashes to not
442        be marked as having key flags even though an HEK had HEK_WASUTF8
443        set. (Note that the only reasonable solution is to silently drop
444        the flag from the affected key.)
445
446        Users of RT 3 who were seeing assertion failures should upgrade.
447        (Perl 5.8.1 will have the bug fixed.)
448
449Mon May  5 10:24:16 IST 2003   Abhijit Menon-Sen <ams@wiw.org>
450
451    Version 2.07
452
453        Minor bugfixes (self-tied objects are now correctly stored, as
454        are the results of additions larger than INT_MAX).
455
456Mon Oct  7 21:56:38 BST 2002   Nicholas Clark  <nick@ccl4.org>
457
458    Version 2.06
459
460	Remove qr// from t/downgrade.t so that it will run on 5.004
461	Mention $File::Spec::VERSION a second time in t/forgive.t so that it
462	runs without warnings in 5.004 (this may be a 5.00405 bug I'm working
463	round)
464	Fix t/integer.t initialisation to actually generate 64 bits of 9c
465	Fix comparison tests to use eval to get around 64 bit IV conversion
466	issues on 5.6.x, following my t/integer.t ^ precedence bug found by
467	Rafael Garcia-Suarez
468	Alter t/malice.t to work with Test/More.pm in t/, and skip individual
469	subtests that use $Config{ptrsize}, so that the rest of the test can
470	now be run with 5.004
471	Change t/malice.t and the error message in check_magic in Storable.xs
472	from "Pointer integer size" to "Pointer size"
473	Remove prerequisite of Test::More from Makefile.PL
474	Ship Test::Builder, Test::Simple and Test::More in t
475
476Thu Oct  3 08:57:22 IST 2002   Abhijit Menon-Sen <ams@wiw.org>
477
478    Version 2.05
479
480        Adds support for CODE references from Slaven Rezic
481        <slaven.rezic@berlin.de>.
482
483Fri Jun  7 23:55:41 BST 2002   Nicholas Clark
484
485    Version 2.04
486
487	Bug fix from Radu Greab <radu@netsoft.ro> (plus regression test)
488	to fix a recently introduced bug detected by Dave Rolsky.
489	Bug was that for a non threaded build, the class information was
490	being lost at freeze time on the first object with a STORABLE_freeze
491	hook. Consequentially the object was not blessed at all when thawed.
492	(The presence (or lack) of STORABLE_thaw was irrelevant; this was
493	a store-time data lost bug, caused by failure to initialize internal
494	context)
495	The bug was introduced as development perl change 16442 (on
496	2002/05/07), so has been present since 2.00.
497	Patches to introduce more regression tests to reduce the chance of
498	a reoccurrence of this sort of goof are always welcome.
499
500Thu May 30 20:31:08 BST 2002   Nicholas Clark <nick@ccl4.org>
501
502    Version 2.03        Header changes on 5.6.x on Unix where IV is long long
503
504        5.6.x introduced the ability to have IVs as long long.  However,
505        Configure still defined BYTEORDER based on the size of a long.
506        Storable uses the BYTEORDER value as part of the header, but
507        doesn't explicitly store sizeof(IV) anywhere in the header.
508        Hence on 5.6.x built with IV as long long on a platform that
509        uses Configure (ie most things except VMS and Windows) headers
510        are identical for the different IV sizes, despite the files
511        containing some fields based on sizeof(IV)
512
513        5.8.0 is consistent; all platforms have BYTEORDER in config.h
514        based on sizeof(IV) rather than sizeof(long).  This means that
515        the value of BYTEORDER will change from (say) 4321 to 87654321
516        between 5.6.1 and 5.8.0 built with the same options to Configure
517        on the same machine.  This means that the Storable header will
518        differ, and the two versions will wrongly thing that they are
519        incompatible.
520
521        For the benefit of long term consistency, Storable now
522        implements the 5.8.0 BYTEORDER policy on 5.6.x.  This means that
523        2.03 onwards default to be incompatible with 2.02 and earlier
524        (ie the large 1.0.x installed base) on the same 5.6.x perl.
525
526        To allow interworking, a new variable
527        $Storable::interwork_56_64bit is introduced. It defaults to
528        false. Set it to true to read and write old format files. Don't
529        use it unless you have existing stored data written with 5.6.x
530        that you couldn't otherwise read, or you need to interwork with
531        a machine running older Storable on a 5.6.x with long long IVs
532        (i.e., you probably don't need to use it).
533
534Sat May 25 22:38:39 BST 2002   Nicholas Clark <nick@ccl4.org>
535
536    Version 2.02
537
538        Rewrite Storable.xs so that the file header structure for write_magic
539        is built at compile time, and check_magic attempts to the header in
540        blocks rather than byte per byte. These changes make the compiled
541        extension 2.25% smaller, but are not significant enough to give a
542        noticeable speed up.
543
544Thu May 23 22:50:41 BST 2002   Nicholas Clark <nick@ccl4.org>
545
546    Version 2.01
547
548        - New regression tests integer.t
549        - Add code to safely store large unsigned integers.
550        - Change code not to attempt to store large integers (ie > 32 bits)
551          in network order as 32 bits.
552
553        *Never* underestimate the value of a pathological test suite carefully
554        crafted with maximum malice before writing a line of real code. It
555        prevents crafty bugs from stowing away in your released code.
556        It's much less embarrassing to find them before you ship.
557        (Well, never underestimate it if you ever want to work for me)
558
559Fri May 17 22:48:59 BST 2002   Nicholas Clark <nick@ccl4.org>
560
561    Version 2.0, binary format 2.5 (but writes format 2.4 on pre 5.7.3)
562
563        The perl5 porters have decided to make sure that Storable still
564        builds on pre-5.8 perls, and make the 5.8 version available on CPAN.
565        The VERSION is now 2.0, and it passes all tests on 5.005_03, 5.6.1
566        and 5.6.1 with threads. On 5.6.0 t/downgrade.t fails tests 34 and 37,
567        due to a bug in 5.6.0 - upgrade to 5.6.1.
568
569        Jarkko and I have collated the list of changes the perl5 porters have
570        from the perl5 Changes file:
571
572        - data features of upcoming perl 5.8.0 are supported: Unicode hash
573          keys (Unicode hash values have been supported since Storable 1.0.1)
574          and "restricted hashes" (readonly hashes and hash entries)
575        - a newer version of perl can now be used to serialize data which is
576          not supported in earlier perls: Storable will attempt to do the
577          right thing for as long as possible, croaking only when safe data
578          conversion simply isn't possible. Alternatively earlier perls can
579          opt to have a lossy downgrade data instead of croaking
580        - when built with perls pre 5.7.3 this Storable writes out files
581          with binary format 2.4, the same format as Storable 1.0.8 onwards.
582          This should mean that this Storable will inter-operate seamlessly
583          with any Storable 1.0.8 or newer on perls pre 5.7.3
584        - dclone() now works with empty string scalar objects
585        - retrieving of large hashes is now more efficient
586        - more routines autosplit out of the main module, so Storable should
587          load slightly more quickly
588        - better documentation
589        - the internal context objects are now freed explicitly, rather than
590          relying on thread or process exit
591        - bugs fixed in debugging trace code affecting builds made with 64 bit
592          IVs
593        - code tidy-ups to allow clean compiles with more warning options
594          turned on avoid problems with $@ getting corrupted on 5.005_03 if
595          Carp wasn't already loaded
596        - added &show_file_magic, so you can add to /etc/magic and teach
597          Unix's file command about Storable files
598
599        We plan to keep Storable on CPAN in sync with the Perl core, so
600        if you encounter bugs or other problems building or using Storable,
601        please let us know at perl5-porters@perl.org
602        Patches welcome!
603
604Sat Dec  1 14:37:54 MET 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
605
606        This is the LAST maintenance release of the Storable module.
607        Indeed, Storable is now part of perl 5.8, and will be maintained
608        as part of Perl.  The CPAN module will remain available there
609        for people running pre-5.8 perls.
610
611        Avoid requiring Fcntl upfront, useful to embedded runtimes.
612        Use an eval {} for testing, instead of making Storable.pm
613        simply fail its compilation in the BEGIN block.
614
615        store_fd() will now correctly autoflush file if needed.
616
617Tue Aug 28 23:53:20 MEST 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
618
619        Fixed truncation race with lock_retrieve() in lock_store().
620        The file has to be truncated only once the exclusive lock is held.
621
622        Removed spurious debugging messages in .xs file.
623
624Sun Jul  1 13:27:32 MEST 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
625
626        Systematically use "=over 4" for POD linters.
627        Apparently, POD linters are much stricter than would
628        otherwise be needed, but that's OK.
629
630        Fixed memory corruption on croaks during thaw().  Thanks
631        to Claudio Garcia for reproducing this bug and providing the
632        code to exercise it.  Added test cases for this bug, adapted
633        from Claudio's code.
634
635        Made code compile cleanly with -Wall (from Jarkko Hietaniemi).
636
637        Changed tagnum and classnum from I32 to IV in context.  Also
638        from Jarkko.
639
640Thu Mar 15 01:22:32 MET 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
641
642        Last version was wrongly compiling with assertions on, due
643        to an edit glitch.  That did not cause any problem (apart from
644        a slight performance loss) excepted on Win* platforms, where the
645        assertion code does not compile.
646
647Sat Feb 17 13:37:37 MET 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
648
649    Version 1.0.10.
650
651        Forgot to increase version number at previous patch (there were
652        two of them, which is why we jump from 1.0.8 to 1.0.10).
653
654Sat Feb 17 13:35:00 MET 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
655
656    Version 1.0.8, binary format 2.4.
657
658        Fixed incorrect error message.
659
660        Now bless objects ASAP at retrieve time, which is meant to fix
661        two bugs:
662
663        * Indirect references to overloaded object were not able to
664          restore overloading if the object was not blessed yet,
665          which was possible since blessing occurred only after the
666          recursive retrieval.
667
668        * Storable hooks asking for serialization of blessed ref could
669          get un-blessed refs at retrieval time, for the very same
670          reason.
671
672        The fix implemented here was suggested by Nick Ing-Simmons.
673
674        Added support for blessed ref to tied structures.  This is the
675        cause for the binary format change.
676
677        Added EBCDIC version of the compatibility test with 0.6.11,
678        from Peter Prymmer
679
680        Added tests for the new features, and to make sure the bugs they
681        are meant to fix are indeed fixed.
682
683Wed Jan  3 10:43:18 MET 2001   Raphael Manfredi <Raphael_Manfredi@pobox.com>
684
685        Removed spurious 'clean' entry in Makefile.PL.
686
687        Added CAN_FLOCK to determine whether we can flock() or not,
688        by inspecting Perl's configuration parameters, as determined
689        by Configure.
690
691        Trace offending package when overloading cannot be restored
692        on a scalar.
693
694        Made context cleanup safer to avoid dup freeing, mostly in the
695        presence of repeated exceptions during store/retrieve (which can
696        cause memory leaks anyway, so it's just additional safety, not a
697        definite fix).
698
699Sun Nov  5 18:23:48 MET 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
700
701    Version 1.0.6.
702
703        Fixed severe "object lost" bug for STORABLE_freeze returns,
704        when refs to lexicals, taken within the hook, were to be
705        serialized by Storable.  Enhanced the t/recurse.t test to
706        stress hook a little more with refs to lexicals.
707
708Thu Oct 26 19:14:38 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
709
710    Version 1.0.5.
711
712        Documented that store() and retrieve() can return undef.
713        That is, the error reporting is not always made via exceptions,
714        as the paragraph on error reporting was implying.
715
716        Auto requires module of blessed ref when STORABLE_thaw misses.
717        When the Storable engine looks for the STORABLE_thaw hook and
718        does not find it, it now tries to require the package into which
719        the blessed reference is.
720
721        Just check $^O, in t/lock.t: there's no need to pull the whole
722        Config module for that.
723
724Mon Oct 23 20:03:49 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
725
726    Version 1.0.4.
727
728        Protected calls to flock() for DOS platform: apparently, the
729        flock/fcnlt emulation is reported to be broken on that
730        platform.
731
732        Added logcarp emulation if they don't have Log::Agent, since
733        we now use it to carp when lock_store/lock_retrieve is used
734        on DOS.
735
736Fri Sep 29 21:52:29 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
737
738    Version 1.0.3.
739
740        Avoid using "tainted" and "dirty" since Perl remaps them via
741        cpp (i.e. #define).  This is deeply harmful when threading
742        is enabled.  This concerned both the context structure and
743        local variable and argument names.  Brrr..., scary!
744
745Thu Sep 28 23:46:39 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
746
747    Version 1.0.2.
748
749        Fixed spelling in README.
750
751        Added lock_store, lock_nstore, and lock_retrieve (advisory locking)
752        after a proposal from Erik Haugan <erik@solbors.no>.
753
754        Perls before 5.004_04 lack newSVpvn, added remapping in XS.
755
756        Fixed stupid typo in the t/utf8.t test.
757
758Sun Sep 17 18:51:10 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
759
760    Version 1.0.1, binary format 2.3.
761
762        Documented that doubles are stored stringified by nstore().
763
764        Added Salvador Ortiz Garcia in CREDITS section,  He identified
765        a bug in the store hooks and proposed the right fix: the class
766        id was allocated too soon.  His bug case was also added to
767        the regression test suite.
768
769        Now only taint retrieved data when source was tainted.  A bug
770        discovered by Marc Lehmann.
771
772        Added support for UTF-8 strings, a contribution of Marc Lehmann.
773        This is normally only activated in post-5.6 perls.
774
775Thu Aug 31 23:06:06 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
776
777        First official release Storable 1.0, for inclusion in perl 5.7.0.
778        The license scheme is now compatible with Perl's.
779
780Thu Aug 24 01:02:02 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
781
782        ANSI-fied most of the code, preparing for Perl core integration.
783        The next version of Storable will be 0.8, and will be integrated
784        into the Perl core (development branch).
785
786        Dispatch tables were moved upfront to relieve some compilers,
787        especially on AIX and Windows platforms.
788
789        Merged 64-bit fixes from perl5-porters.
790
791Mon Aug 14 09:22:04 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
792
793        Added a refcnt dec in retrieve_tied_key(): sv_magic() increases
794        the refcnt on the mg_ptr as well.
795
796        Removed spurious dependency to Devel::Peek, which was used for
797        testing only in t/tied_items.t.  Thanks to Conrad Heiney
798        <conrad@fringehead.org> for spotting it first.
799
800Sun Aug 13 22:12:59 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
801
802        Marc Lehmann kindly contributed code to add overloading support
803        and to handle references to tied variables.
804
805        Rewrote leading blurb about compatibility to make it clearer what
806        "backward compatibility" is about: when I say 0.7 is backward
807        compatible with 0.6, it means the revision 0.7 can read files
808        produced by 0.6.
809
810        Mention new Clone(3) extension in SEE ALSO.
811
812        Was wrongly optimizing for "undef" values in hashes by not
813        fully recursing: as a result, tied "undef" values were incorrectly
814        serialized.
815
816Sun Jul 30 12:59:17 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
817
818    First revision of Storable 0.7.
819
820        The serializing format is new, known as version 2.0.  It is fully
821        backward compatible with 0.6.  Earlier formats are deprecated and
822        have not even been tested: next version will drop pre-0.6 format.
823
824        Changes since 0.6@11:
825
826        - Moved interface to the "beta" status.  Some tiny parts are still
827          subject to change, but nothing important enough to warrant an "alpha"
828          status any longer.
829
830        - Slightly reduced the size of the Storable image by factorizing
831          object class names and removing final object storage notification due
832          to a redesign of the blessed object storing.
833
834        - Classes can now redefine how they wish their instances to be serialized
835          and/or deep cloned.  Serializing hooks are written in Perl code.
836
837        - The engine is now fully re-entrant.
838
839Sun Apr  2 23:47:50 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
840
841        Added provision to detect more recent binary formats, since
842        the new upcoming Storable-0.7 will use a different format.
843        In order to prevent attempting the de-serialization of newer
844        formats by older versions, I'm adding this now to the 0.6 series.
845
846        I'm expecting this revision to be the last of the 0.6 series.
847        Unless it does not work with perl 5.6, which I don't use yet,
848        and therefore against which I cannot test.
849
850Wed Mar 29 19:55:21 MEST 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
851
852        Added note about format incompatibilities with old versions
853        (i.e. pre 0.5@9 formats, which cannot be understood as there
854        was no versionning information in the file by then).
855
856        Protect all $@ variables when eval {} used, to avoid corrupting
857        it when store/retrieve is called within an exception handler.
858
859        Mistakenly included "patchlevel.h" instead of <patchlevel.h>,
860        preventing Perl's patchlevel from being included, which is
861        needed starting from 5.6.
862
863Tue May 12 09:15:15 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
864
865        Fixed shared "undef" bug in hashes, which did not remain shared
866        through store/retrieve.
867
868Thu Feb 10 19:48:16 MET 2000   Raphael Manfredi <Raphael_Manfredi@pobox.com>
869
870        added last_op_in_netorder() predicate
871        documented last_op_in_netorder()
872        added tests for the new last_op_in_netorder() predicate
873
874Wed Oct 20 19:07:36 MEST 1999   Raphael Manfredi <Raphael_Manfredi@pobox.com>
875
876        Forgot to update VERSION
877
878Tue Oct 19 21:25:02 MEST 1999   Raphael Manfredi <Raphael_Manfredi@pobox.com>
879
880        Added mention of japanese translation for the manual page.
881
882        Fixed typo in macro that made threaded code not compilable,
883        especially on Win32 platforms.
884
885        Changed detection of older perls (pre-5.005) by testing PATCHLEVEL
886        directly instead of relying on internal symbols.
887
888Tue Sep 14 22:13:28 MEST 1999   Raphael Manfredi <Raphael_Manfredi@pobox.com>
889
890        Integrated "thread-safe" patch from Murray Nesbitt.
891        Note that this may not be very efficient for threaded code,
892        see comment in the code.
893
894        Try to avoid compilation warning on 64-bit CPUs. Can't test it,
895        since I don't have access to such machines.
896
897Mon Jul 12 14:37:19 METDST 1999   Raphael Manfredi <Raphael_Manfredi@pobox.com>
898
899        changed my e-mail to pobox.
900
901        mentioned it is not thread-safe.
902
903        updated version number.
904
905        uses new internal PL_* naming convention.
906
907Fri Jul  3 13:38:16 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
908
909        Updated benchmark figures due to recent optimizations done in
910        store(): tagnums are now stored as-is in the hash table, so
911        no surrounding SV is created. And the "shared keys" mode for
912        hash table was turned off.
913
914        Fixed backward compatibility (wrt 0.5@9) for retrieval of
915        blessed refs. That old version did something wrong, but the
916        bugfix prevented correct retrieval of the old format.
917
918Mon Jun 22 11:00:48 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
919
920        Changed benchmark figures.
921
922        Adjust refcnt of tied objects after calling sv_magic() to avoid
923        memory leaks.  Contributed by Jeff Gresham.
924
925Fri Jun 12 11:50:04 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
926
927        Added workaround for persistent LVALUE-ness in perl5.004. All
928        scalars tagged as being an lvalue are handled as if they were
929        not an lvalue at all.  Added test for that LVALUE bug workaround.
930
931        Now handles Perl immortal scalars explicitly, by storing &sv_yes
932        as such, explicitly.
933
934        Retrieval of non-immortal undef cannot be shared. Previous
935        version was over-optimizing by not creating a separate SV for
936        all undefined scalars seen.
937
938Thu Jun  4 17:21:51 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
939
940    Baseline for Storable-0.6@0.
941
942        This version introduces a binary incompatibility in the generated
943        binary image, which is more compact than older ones by approximatively
944        15%, depending on the exact degree of sharing in your structures.
945
946        The good news is that your older images can still be retrieved with
947        this version, i.e. backward compatibility is preserved. This version
948        of Storable can only generate new binaries however.
949
950        Another good news is that the retrieval of data structure is
951        significantly quicker than before, because a Perl array is used
952        instead of a hash table to keep track of retrieved objects, and
953        also because the image being smaller, less I/O function calls are
954        made.
955
956Tue May 12 09:15:15 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
957
958        Version number now got from Storable.pm directly.
959
960        Fixed overzealous sv_type() optimization, which would make
961        Storable fail when faced with an "upgraded" SV to the PVIV
962        or PVNV kind containing a reference.
963
964Thu Apr 30 15:11:30 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
965
966        Extended the SYNOPSIS section to give quick overview of the
967        routines and their signature.
968
969        Optimized sv_type() to avoid flags checking when not needed, i.e.
970        when their type makes it impossible for them to be refs or tied.
971        This slightly increases throughput by a few percents when refs
972        and tied variables are marginal occurrences in your data.
973
974        Stubs for XS now use OutputStream and InputStream file types to
975        make it work when the given file is actually a socket. Perl
976        makes a distinction for sockets in its internal I/O structures
977        by having both a read and a write structure, whereas plain files
978        share the same one.
979
980Tue Jun  3 09:41:33 METDST 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
981
982        Thanks to a contribution from Benjamin A. Holzman, Storable is now
983        able to correctly serialize tied SVs, i.e. tied arrays, hashes
984        and scalars.
985
986Thu Apr  9 18:07:51 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
987
988        I said SvPOK() had changed to SvPOKp(), but that was a lie...
989
990Wed Apr  8 13:14:29 METDST 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
991
992        Wrote sizeof(SV *) instead of sizeof(I32) when portable, which
993        in effect mangled the object tags and prevented portability
994        across 32/64 bit architectures!
995
996Wed Mar 25 14:57:02 MET 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
997
998        Added code example for store_fd() and retrieve_fd() in the
999        man page, to emphasize that file descriptors must be passed as
1000        globs, not as plain strings.
1001
1002        Cannot use SV addresses as tag when using nstore() on LP64. This
1003        was the cause of problems when creating a storable image on an
1004        LP64 machine and retrieving it on an ILP32 system, which is
1005        exactly what nstore() is meant for...
1006
1007        However, we continue to use SV addresses as tags for plain store(),
1008        because benchmarking shows that it saves up to 8% of the store
1009        time, and store() is meant to be fast at the expense of lack
1010        of portability.
1011
1012        This means there will be approximately an 8% degradation of
1013        performance for nstore(), but it's now working as expected.
1014        That cost may vary on your machine of course, since it is
1015        solely caused by the memory allocation overhead used to create
1016        unique SV tags for each distinct stored SV.
1017
1018Tue Jan 20 09:21:53 MET 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1019
1020        Don't use any '_' in version number.
1021
1022Tue Jan 13 17:51:50 MET 1998   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1023
1024        Updated version number.
1025
1026        added binmode() calls for systems where it matters.
1027
1028        Be sure to pass globs, not plain file strings, to C routines,
1029        so that Storable can be used under the Perl debugger.
1030
1031Wed Nov  5 10:53:22 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1032
1033        Fix memory leaks on seen hash table and returned SV refs.
1034
1035        Storable did not work properly when tainting enabled.
1036
1037        Fixed "Allocation too large" messages in freeze/thaw and added.
1038        proper regression test in t/freeze.t.
1039
1040Tue Jun  3 09:41:33 METDST 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1041
1042        Updated version number
1043
1044        Added freeze/thaw interface and dclone.
1045
1046Fri May 16 10:45:47 METDST 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1047
1048        Forgot that AutoLoader does not export its own AUTOLOAD.
1049        I could use
1050
1051                use AutoLoader 'AUTOLOAD';
1052
1053        but that would not be backward compatible. So the export is
1054        done by hand...
1055
1056Tue Mar 25 11:21:32 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1057
1058        Empty scalar strings are now "defined" at retrieval time.
1059
1060        New test to ensure an empty string is defined when retrieved.
1061
1062Thu Feb 27 16:32:44 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1063
1064        Updated version number
1065
1066        Declare VERSION as being used
1067
1068        Fixed a typo in the PerlIO_putc remapping.
1069        PerlIO_read and perlIO_write inverted size/nb_items.
1070        (only relevant for pre-perl5.004 versions)
1071
1072Thu Feb 27 15:58:31 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1073
1074        Updated version number
1075
1076        Added VERSION identification
1077
1078        Allow build with perl5.003, which is ante perlIO time
1079
1080Mon Jan 13 17:53:18 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1081
1082        Random code fixes.
1083
1084Wed Jan 22 15:19:56 MET 1997   Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
1085
1086        Updated version number in Makefile.PL.
1087
1088        Added "thanks to" section to README.
1089
1090        Documented new forgive_me variable.
1091
1092        Made 64-bit clean.
1093
1094        Added forgive_me support to allow store() of data structures
1095        containing non-storable items like CODE refs.
1096