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