| 1 |
root |
1.1 |
Thu Jun 17 12:26:43 BST 2004 Nicholas Clark <nick@ccl4.org> |
| 2 |
|
|
|
| 3 |
|
|
Version 2.13 |
| 4 |
|
|
|
| 5 |
|
|
1. Don't change the type of top level overloaded references to RV - |
| 6 |
|
|
they are perfectly correct as PVMG |
| 7 |
|
|
2. Storable needs to cope with incoming frozen data that happens to be |
| 8 |
|
|
utf8 encoded. |
| 9 |
|
|
|
| 10 |
|
|
Wed Mar 17 15:40:29 GMT 2004 Nicholas Clark <nick@ccl4.org> |
| 11 |
|
|
|
| 12 |
|
|
Version 2.12 |
| 13 |
|
|
|
| 14 |
|
|
1. Add regression tests for the auto-require of STORABLE_thaw |
| 15 |
|
|
2. Add auto-require of modules to restore overloading (and tests) |
| 16 |
|
|
3. Change to no context (should give speedup with ithreads) |
| 17 |
|
|
|
| 18 |
|
|
Sat Mar 13 20:11:03 GMT 2004 Nicholas Clark <nick@ccl4.org> |
| 19 |
|
|
|
| 20 |
|
|
Version 2.11 |
| 21 |
|
|
|
| 22 |
|
|
1. Storing restricted hashes in canonical order would SEGV. Fixed. |
| 23 |
|
|
2. It was impossible to retrieve references to PL_sv_no and and |
| 24 |
|
|
PL_sv_undef from STORABLE_thaw hooks. |
| 25 |
|
|
3. restrict.t was failing on 5.8.0, due to 5.8.0's unique |
| 26 |
|
|
implementation of restricted hashes using PL_sv_undef |
| 27 |
|
|
4. These changes allow a space optimisation for restricted hashes. |
| 28 |
|
|
|
| 29 |
|
|
Sat Jan 24 16:22:32 IST 2004 Abhijit Menon-Sen <ams@wiw.org> |
| 30 |
|
|
|
| 31 |
|
|
Version 2.10 |
| 32 |
|
|
|
| 33 |
|
|
1. Thread safety: Storable::CLONE/init_perlinterp() now create |
| 34 |
|
|
a new Perl context for each new ithread. |
| 35 |
|
|
(From Stas Bekman and Jan Dubois.) |
| 36 |
|
|
2. Fix a tag count mismatch with $Storable::Deparse that caused |
| 37 |
|
|
all back-references after a stored sub to be off-by-N (where |
| 38 |
|
|
N was the number of code references in between). |
| 39 |
|
|
(From Sam Vilain.) |
| 40 |
|
|
3. Prevent CODE references from turning into SCALAR references. |
| 41 |
|
|
(From Slaven Rezic.) |
| 42 |
|
|
|
| 43 |
|
|
Sat Jan 3 18:49:18 GMT 2004 Nicholas Clark <nick@ccl4.org> |
| 44 |
|
|
|
| 45 |
|
|
Version 2.09 |
| 46 |
|
|
|
| 47 |
|
|
Fix minor problems with the CPAN release |
| 48 |
|
|
1: Make Storable.xs work on 5.8.2 and later (already in the core) |
| 49 |
|
|
2: Ship the linux hints file |
| 50 |
|
|
3: Ship Test::More for the benefit of Perls pre 5.6.2 |
| 51 |
|
|
4: Correct Makefile.PL to only install in core for 5.8.0 and later |
| 52 |
|
|
|
| 53 |
|
|
Sat Sep 6 01:08:20 IST 2003 Abhijit Menon-Sen <ams@wiw.org> |
| 54 |
|
|
|
| 55 |
|
|
Version 2.08 |
| 56 |
|
|
|
| 57 |
|
|
This release works around a 5.8.0 bug which caused hashes to not |
| 58 |
|
|
be marked as having key flags even though an HEK had HEK_WASUTF8 |
| 59 |
|
|
set. (Note that the only reasonable solution is to silently drop |
| 60 |
|
|
the flag from the affected key.) |
| 61 |
|
|
|
| 62 |
|
|
Users of RT 3 who were seeing assertion failures should upgrade. |
| 63 |
|
|
(Perl 5.8.1 will have the bug fixed.) |
| 64 |
|
|
|
| 65 |
|
|
Mon May 5 10:24:16 IST 2003 Abhijit Menon-Sen <ams@wiw.org> |
| 66 |
|
|
|
| 67 |
|
|
Version 2.07 |
| 68 |
|
|
|
| 69 |
|
|
Minor bugfixes (self-tied objects are now correctly stored, as |
| 70 |
|
|
are the results of additions larger than INT_MAX). |
| 71 |
|
|
|
| 72 |
|
|
Mon Oct 7 21:56:38 BST 2002 Nicholas Clark <nick@ccl4.org> |
| 73 |
|
|
|
| 74 |
|
|
Version 2.06 |
| 75 |
|
|
|
| 76 |
|
|
Remove qr// from t/downgrade.t so that it will run on 5.004 |
| 77 |
|
|
Mention $File::Spec::VERSION a second time in t/forgive.t so that it |
| 78 |
|
|
runs without warnings in 5.004 (this may be a 5.00405 bug I'm working |
| 79 |
|
|
round) |
| 80 |
|
|
Fix t/integer.t initialisation to actually generate 64 bits of 9c |
| 81 |
|
|
Fix comparison tests to use eval to get around 64 bit IV conversion |
| 82 |
|
|
issues on 5.6.x, following my t/integer.t ^ precedence bug found by |
| 83 |
|
|
Rafael Garcia-Suarez |
| 84 |
|
|
Alter t/malice.t to work with Test/More.pm in t/, and skip individual |
| 85 |
|
|
subtests that use $Config{ptrsize}, so that the rest of the test can |
| 86 |
|
|
now be run with 5.004 |
| 87 |
|
|
Change t/malice.t and the error message in check_magic in Storable.xs |
| 88 |
|
|
from "Pointer integer size" to "Pointer size" |
| 89 |
|
|
Remove prerequisite of Test::More from Makefile.PL |
| 90 |
|
|
Ship Test::Builder, Test::Simple and Test::More in t |
| 91 |
|
|
|
| 92 |
|
|
Thu Oct 3 08:57:22 IST 2002 Abhijit Menon-Sen <ams@wiw.org> |
| 93 |
|
|
|
| 94 |
|
|
Version 2.05 |
| 95 |
|
|
|
| 96 |
|
|
Adds support for CODE references from Slaven Rezic |
| 97 |
|
|
<slaven.rezic@berlin.de>. |
| 98 |
|
|
|
| 99 |
|
|
Fri Jun 7 23:55:41 BST 2002 Nicholas Clark |
| 100 |
|
|
|
| 101 |
|
|
Version 2.04 |
| 102 |
|
|
|
| 103 |
|
|
Bug fix from Radu Greab <radu@netsoft.ro> (plus regression test) |
| 104 |
|
|
to fix a recently introduced bug detected by Dave Rolsky. |
| 105 |
|
|
Bug was that for a non threaded build, the class information was |
| 106 |
|
|
being lost at freeze time on the first object with a STORABLE_freeze |
| 107 |
|
|
hook. Consequentially the object was not blessed at all when thawed. |
| 108 |
|
|
(The presence (or lack) of STORABLE_thaw was irrelevant; this was |
| 109 |
|
|
a store-time data lost bug, caused by failure to initialize internal |
| 110 |
|
|
context) |
| 111 |
|
|
The bug was introduced as development perl change 16442 (on |
| 112 |
|
|
2002/05/07), so has been present since 2.00. |
| 113 |
|
|
Patches to introduce more regression tests to reduce the chance of |
| 114 |
|
|
a reoccurance of this sort of goof are always welcome. |
| 115 |
|
|
|
| 116 |
|
|
Thu May 30 20:31:08 BST 2002 Nicholas Clark <nick@ccl4.org> |
| 117 |
|
|
|
| 118 |
|
|
Version 2.03 Header changes on 5.6.x on Unix where IV is long long |
| 119 |
|
|
|
| 120 |
|
|
5.6.x introduced the ability to have IVs as long long. However, |
| 121 |
|
|
Configure still defined BYTEORDER based on the size of a long. |
| 122 |
|
|
Storable uses the BYTEORDER value as part of the header, but |
| 123 |
|
|
doesn't explicity store sizeof(IV) anywhere in the header. |
| 124 |
|
|
Hence on 5.6.x built with IV as long long on a platform that |
| 125 |
|
|
uses Configure (ie most things except VMS and Windows) headers |
| 126 |
|
|
are identical for the different IV sizes, despite the files |
| 127 |
|
|
containing some fields based on sizeof(IV) |
| 128 |
|
|
|
| 129 |
|
|
5.8.0 is consistent; all platforms have BYTEORDER in config.h |
| 130 |
|
|
based on sizeof(IV) rather than sizeof(long). This means that |
| 131 |
|
|
the value of BYTEORDER will change from (say) 4321 to 87654321 |
| 132 |
|
|
between 5.6.1 and 5.8.0 built with the same options to Configure |
| 133 |
|
|
on the same machine. This means that the Storable header will |
| 134 |
|
|
differ, and the two versions will wrongly thing that they are |
| 135 |
|
|
incompatible. |
| 136 |
|
|
|
| 137 |
|
|
For the benefit of long term consistency, Storable now |
| 138 |
|
|
implements the 5.8.0 BYTEORDER policy on 5.6.x. This means that |
| 139 |
|
|
2.03 onwards default to be incompatible with 2.02 and earlier |
| 140 |
|
|
(ie the large 1.0.x installed base) on the same 5.6.x perl. |
| 141 |
|
|
|
| 142 |
|
|
To allow interworking, a new variable |
| 143 |
|
|
$Storable::interwork_56_64bit is introduced. It defaults to |
| 144 |
|
|
false. Set it to true to read and write old format files. Don't |
| 145 |
|
|
use it unless you have existing stored data written with 5.6.x |
| 146 |
|
|
that you couldn't otherwise read, or you need to interwork with |
| 147 |
|
|
a machine running older Storable on a 5.6.x with long long IVs |
| 148 |
|
|
(i.e., you probably don't need to use it). |
| 149 |
|
|
|
| 150 |
|
|
Sat May 25 22:38:39 BST 2002 Nicholas Clark <nick@ccl4.org> |
| 151 |
|
|
|
| 152 |
|
|
Version 2.02 |
| 153 |
|
|
|
| 154 |
|
|
Rewrite Storable.xs so that the file header structure for write_magic |
| 155 |
|
|
is built at compile time, and check_magic attempts to the header in |
| 156 |
|
|
blocks rather than byte per byte. These changes make the compiled |
| 157 |
|
|
extension 2.25% smaller, but are not significant enough to give a |
| 158 |
|
|
noticeable speed up. |
| 159 |
|
|
|
| 160 |
|
|
Thu May 23 22:50:41 BST 2002 Nicholas Clark <nick@ccl4.org> |
| 161 |
|
|
|
| 162 |
|
|
Version 2.01 |
| 163 |
|
|
|
| 164 |
|
|
- New regression tests integer.t |
| 165 |
|
|
- Add code to safely store large unsigned integers. |
| 166 |
|
|
- Change code not to attempt to store large integers (ie > 32 bits) |
| 167 |
|
|
in network order as 32 bits. |
| 168 |
|
|
|
| 169 |
|
|
*Never* underestimate the value of a pathological test suite carefully |
| 170 |
|
|
crafted with maximum malice before writing a line of real code. It |
| 171 |
|
|
prevents crafty bugs from stowing away in your released code. |
| 172 |
|
|
It's much less embarrassing to find them before you ship. |
| 173 |
|
|
(Well, never underestimate it if you ever want to work for me) |
| 174 |
|
|
|
| 175 |
|
|
Fri May 17 22:48:59 BST 2002 Nicholas Clark <nick@ccl4.org> |
| 176 |
|
|
|
| 177 |
|
|
Version 2.0, binary format 2.5 (but writes format 2.4 on pre 5.7.3) |
| 178 |
|
|
|
| 179 |
|
|
The perl5 porters have decided to make sure that Storable still |
| 180 |
|
|
builds on pre-5.8 perls, and make the 5.8 version available on CPAN. |
| 181 |
|
|
The VERSION is now 2.0, and it passes all tests on 5.005_03, 5.6.1 |
| 182 |
|
|
and 5.6.1 with threads. On 5.6.0 t/downgrade.t fails tests 34 and 37, |
| 183 |
|
|
due to a bug in 5.6.0 - upgrade to 5.6.1. |
| 184 |
|
|
|
| 185 |
|
|
Jarkko and I have collated the list of changes the perl5 porters have |
| 186 |
|
|
from the perl5 Changes file: |
| 187 |
|
|
|
| 188 |
|
|
- data features of upcoming perl 5.8.0 are supported: Unicode hash |
| 189 |
|
|
keys (Unicode hash values have been supported since Storable 1.0.1) |
| 190 |
|
|
and "restricted hashes" (readonly hashes and hash entries) |
| 191 |
|
|
- a newer version of perl can now be used to serialize data which is |
| 192 |
|
|
not supported in earlier perls: Storable will attempt to do the |
| 193 |
|
|
right thing for as long as possible, croaking only when safe data |
| 194 |
|
|
conversion simply isn't possible. Alternatively earlier perls can |
| 195 |
|
|
opt to have a lossy downgrade data instead of croaking |
| 196 |
|
|
- when built with perls pre 5.7.3 this Storable writes out files |
| 197 |
|
|
with binary format 2.4, the same format as Storable 1.0.8 onwards. |
| 198 |
|
|
This should mean that this Storable will inter-operate seamlessly |
| 199 |
|
|
with any Storable 1.0.8 or newer on perls pre 5.7.3 |
| 200 |
|
|
- dclone() now works with empty string scalar objects |
| 201 |
|
|
- retrieving of large hashes is now more efficient |
| 202 |
|
|
- more routines autosplit out of the main module, so Storable should |
| 203 |
|
|
load slightly more quickly |
| 204 |
|
|
- better documentation |
| 205 |
|
|
- the internal context objects are now freed explicitly, rather than |
| 206 |
|
|
relying on thread or process exit |
| 207 |
|
|
- bugs fixed in debugging trace code affecting builds made with 64 bit |
| 208 |
|
|
IVs |
| 209 |
|
|
- code tidy-ups to allow clean compiles with more warning options |
| 210 |
|
|
turned on avoid problems with $@ getting corrupted on 5.005_03 if |
| 211 |
|
|
Carp wasn't already loaded |
| 212 |
|
|
- added &show_file_magic, so you can add to /etc/magic and teach |
| 213 |
|
|
Unix's file command about Storable files |
| 214 |
|
|
|
| 215 |
|
|
We plan to keep Storable on CPAN in sync with the Perl core, so |
| 216 |
|
|
if you encounter bugs or other problems building or using Storable, |
| 217 |
|
|
please let us know at perl5-porters@perl.org |
| 218 |
|
|
Patches welcome! |
| 219 |
|
|
|
| 220 |
|
|
Sat Dec 1 14:37:54 MET 2001 Raphael Manfredi <Raphael_Manfredi@pobox.com> |
| 221 |
|
|
|
| 222 |
|
|
This is the LAST maintenance release of the Storable module. |
| 223 |
|
|
Indeed, Storable is now part of perl 5.8, and will be maintained |
| 224 |
|
|
as part of Perl. The CPAN module will remain available there |
| 225 |
|
|
for people running pre-5.8 perls. |
| 226 |
|
|
|
| 227 |
|
|
Avoid requiring Fcntl upfront, useful to embedded runtimes. |
| 228 |
|
|
Use an eval {} for testing, instead of making Storable.pm |
| 229 |
|
|
simply fail its compilation in the BEGIN block. |
| 230 |
|
|
|
| 231 |
|
|
store_fd() will now correctly autoflush file if needed. |
| 232 |
|
|
|
| 233 |
|
|
Tue Aug 28 23:53:20 MEST 2001 Raphael Manfredi <Raphael_Manfredi@pobox.com> |
| 234 |
|
|
|
| 235 |
|
|
Fixed truncation race with lock_retrieve() in lock_store(). |
| 236 |
|
|
The file has to be truncated only once the exclusive lock is held. |
| 237 |
|
|
|
| 238 |
|
|
Removed spurious debugging messages in .xs file. |
| 239 |
|
|
|
| 240 |
|
|
Sun Jul 1 13:27:32 MEST 2001 Raphael Manfredi <Raphael_Manfredi@pobox.com> |
| 241 |
|
|
|
| 242 |
|
|
Systematically use "=over 4" for POD linters. |
| 243 |
|
|
Apparently, POD linters are much stricter than would |
| 244 |
|
|
otherwise be needed, but that's OK. |
| 245 |
|
|
|
| 246 |
|
|
Fixed memory corruption on croaks during thaw(). Thanks |
| 247 |
|
|
to Claudio Garcia for reproducing this bug and providing the |
| 248 |
|
|
code to exercise it. Added test cases for this bug, adapted |
| 249 |
|
|
from Claudio's code. |
| 250 |
|
|
|
| 251 |
|
|
Made code compile cleanly with -Wall (from Jarkko Hietaniemi). |
| 252 |
|
|
|
| 253 |
|
|
Changed tagnum and classnum from I32 to IV in context. Also |
| 254 |
|
|
from Jarkko. |
| 255 |
|
|
|
| 256 |
|
|
Thu Mar 15 01:22:32 MET 2001 Raphael Manfredi <Raphael_Manfredi@pobox.com> |
| 257 |
|
|
|
| 258 |
|
|
Last version was wrongly compiling with assertions on, due |
| 259 |
|
|
to an edit glitch. That did not cause any problem (apart from |
| 260 |
|
|
a slight performance loss) excepted on Win* platforms, where the |
| 261 |
|
|
assertion code does not compile. |
| 262 |
|
|
|
| 263 |
|
|
Sat Feb 17 13:37:37 MET 2001 Raphael Manfredi <Raphael_Manfredi@pobox.com> |
| 264 |
|
|
|
| 265 |
|
|
Version 1.0.10. |
| 266 |
|
|
|
| 267 |
|
|
Forgot to increase version number at previous patch (there were |
| 268 |
|
|
two of them, which is why we jump from 1.0.8 to 1.0.10). |
| 269 |
|
|
|
| 270 |
|
|
Sat Feb 17 13:35:00 MET 2001 Raphael Manfredi <Raphael_Manfredi@pobox.com> |
| 271 |
|
|
|
| 272 |
|
|
Version 1.0.8, binary format 2.4. |
| 273 |
|
|
|
| 274 |
|
|
Fixed incorrect error message. |
| 275 |
|
|
|
| 276 |
|
|
Now bless objects ASAP at retrieve time, which is meant to fix |
| 277 |
|
|
two bugs: |
| 278 |
|
|
|
| 279 |
|
|
* Indirect references to overloaded object were not able to |
| 280 |
|
|
restore overloading if the object was not blessed yet, |
| 281 |
|
|
which was possible since blessing occurred only after the |
| 282 |
|
|
recursive retrieval. |
| 283 |
|
|
|
| 284 |
|
|
* Storable hooks asking for serialization of blessed ref could |
| 285 |
|
|
get un-blessed refs at retrieval time, for the very same |
| 286 |
|
|
reason. |
| 287 |
|
|
|
| 288 |
|
|
The fix implemented here was suggested by Nick Ing-Simmons. |
| 289 |
|
|
|
| 290 |
|
|
Added support for blessed ref to tied structures. This is the |
| 291 |
|
|
cause for the binary format change. |
| 292 |
|
|
|
| 293 |
|
|
Added EBCDIC version of the compatibility test with 0.6.11, |
| 294 |
|
|
from Peter Prymmer |
| 295 |
|
|
|
| 296 |
|
|
Added tests for the new features, and to make sure the bugs they |
| 297 |
|
|
are meant to fix are indeed fixed. |
| 298 |
|
|
|
| 299 |
|
|
Wed Jan 3 10:43:18 MET 2001 Raphael Manfredi <Raphael_Manfredi@pobox.com> |
| 300 |
|
|
|
| 301 |
|
|
Removed spurious 'clean' entry in Makefile.PL. |
| 302 |
|
|
|
| 303 |
|
|
Added CAN_FLOCK to determine whether we can flock() or not, |
| 304 |
|
|
by inspecting Perl's configuration parameters, as determined |
| 305 |
|
|
by Configure. |
| 306 |
|
|
|
| 307 |
|
|
Trace offending package when overloading cannot be restored |
| 308 |
|
|
on a scalar. |
| 309 |
|
|
|
| 310 |
|
|
Made context cleanup safer to avoid dup freeing, mostly in the |
| 311 |
|
|
presence of repeated exceptions during store/retrieve (which can |
| 312 |
|
|
cause memory leaks anyway, so it's just additional safety, not a |
| 313 |
|
|
definite fix). |
| 314 |
|
|
|
| 315 |
|
|
Sun Nov 5 18:23:48 MET 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com> |
| 316 |
|
|
|
| 317 |
|
|
Version 1.0.6. |
| 318 |
|
|
|
| 319 |
|
|
Fixed severe "object lost" bug for STORABLE_freeze returns, |
| 320 |
|
|
when refs to lexicals, taken within the hook, were to be |
| 321 |
|
|
serialized by Storable. Enhanced the t/recurse.t test to |
| 322 |
|
|
stress hook a little more with refs to lexicals. |
| 323 |
|
|
|
| 324 |
|
|
Thu Oct 26 19:14:38 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com> |
| 325 |
|
|
|
| 326 |
|
|
Version 1.0.5. |
| 327 |
|
|
|
| 328 |
|
|
Documented that store() and retrieve() can return undef. |
| 329 |
|
|
That is, the error reporting is not always made via exceptions, |
| 330 |
|
|
as the paragraph on error reporting was implying. |
| 331 |
|
|
|
| 332 |
|
|
Auto requires module of blessed ref when STORABLE_thaw misses. |
| 333 |
|
|
When the Storable engine looks for the STORABLE_thaw hook and |
| 334 |
|
|
does not find it, it now tries to require the package into which |
| 335 |
|
|
the blessed reference is. |
| 336 |
|
|
|
| 337 |
|
|
Just check $^O, in t/lock.t: there's no need to pull the whole |
| 338 |
|
|
Config module for that. |
| 339 |
|
|
|
| 340 |
|
|
Mon Oct 23 20:03:49 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com> |
| 341 |
|
|
|
| 342 |
|
|
Version 1.0.4. |
| 343 |
|
|
|
| 344 |
|
|
Protected calls to flock() for DOS platform: apparently, the |
| 345 |
|
|
flock/fcnlt emulation is reported to be broken on that |
| 346 |
|
|
platform. |
| 347 |
|
|
|
| 348 |
|
|
Added logcarp emulation if they don't have Log::Agent, since |
| 349 |
|
|
we now use it to carp when lock_store/lock_retrieve is used |
| 350 |
|
|
on DOS. |
| 351 |
|
|
|
| 352 |
|
|
Fri Sep 29 21:52:29 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com> |
| 353 |
|
|
|
| 354 |
|
|
Version 1.0.3. |
| 355 |
|
|
|
| 356 |
|
|
Avoid using "tainted" and "dirty" since Perl remaps them via |
| 357 |
|
|
cpp (i.e. #define). This is deeply harmful when threading |
| 358 |
|
|
is enabled. This concerned both the context structure and |
| 359 |
|
|
local variable and argument names. Brrr..., scary! |
| 360 |
|
|
|
| 361 |
|
|
Thu Sep 28 23:46:39 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com> |
| 362 |
|
|
|
| 363 |
|
|
Version 1.0.2. |
| 364 |
|
|
|
| 365 |
|
|
Fixed spelling in README. |
| 366 |
|
|
|
| 367 |
|
|
Added lock_store, lock_nstore, and lock_retrieve (advisory locking) |
| 368 |
|
|
after a proposal from Erik Haugan <erik@solbors.no>. |
| 369 |
|
|
|
| 370 |
|
|
Perls before 5.004_04 lack newSVpvn, added remapping in XS. |
| 371 |
|
|
|
| 372 |
|
|
Fixed stupid typo in the t/utf8.t test. |
| 373 |
|
|
|
| 374 |
|
|
Sun Sep 17 18:51:10 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com> |
| 375 |
|
|
|
| 376 |
|
|
Version 1.0.1, binary format 2.3. |
| 377 |
|
|
|
| 378 |
|
|
Documented that doubles are stored stringified by nstore(). |
| 379 |
|
|
|
| 380 |
|
|
Added Salvador Ortiz Garcia in CREDITS section, He identified |
| 381 |
|
|
a bug in the store hooks and proposed the right fix: the class |
| 382 |
|
|
id was allocated too soon. His bug case was also added to |
| 383 |
|
|
the regression test suite. |
| 384 |
|
|
|
| 385 |
|
|
Now only taint retrieved data when source was tainted. A bug |
| 386 |
|
|
discovered by Marc Lehmann. |
| 387 |
|
|
|
| 388 |
|
|
Added support for UTF-8 strings, a contribution of Marc Lehmann. |
| 389 |
|
|
This is normally only activated in post-5.6 perls. |
| 390 |
|
|
|
| 391 |
|
|
Thu Aug 31 23:06:06 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com> |
| 392 |
|
|
|
| 393 |
|
|
First official release Storable 1.0, for inclusion in perl 5.7.0. |
| 394 |
|
|
The license scheme is now compatible with Perl's. |
| 395 |
|
|
|
| 396 |
|
|
Thu Aug 24 01:02:02 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com> |
| 397 |
|
|
|
| 398 |
|
|
ANSI-fied most of the code, preparing for Perl core integration. |
| 399 |
|
|
The next version of Storable will be 0.8, and will be integrated |
| 400 |
|
|
into the Perl core (development branch). |
| 401 |
|
|
|
| 402 |
|
|
Dispatch tables were moved upfront to relieve some compilers, |
| 403 |
|
|
especially on AIX and Windows platforms. |
| 404 |
|
|
|
| 405 |
|
|
Merged 64-bit fixes from perl5-porters. |
| 406 |
|
|
|
| 407 |
|
|
Mon Aug 14 09:22:04 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com> |
| 408 |
|
|
|
| 409 |
|
|
Added a refcnt dec in retrieve_tied_key(): sv_magic() increases |
| 410 |
|
|
the refcnt on the mg_ptr as well. |
| 411 |
|
|
|
| 412 |
|
|
Removed spurious dependency to Devel::Peek, which was used for |
| 413 |
|
|
testing only in t/tied_items.t. Thanks to Conrad Heiney |
| 414 |
|
|
<conrad@fringehead.org> for spotting it first. |
| 415 |
|
|
|
| 416 |
|
|
Sun Aug 13 22:12:59 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com> |
| 417 |
|
|
|
| 418 |
|
|
Marc Lehmann kindly contributed code to add overloading support |
| 419 |
|
|
and to handle references to tied variables. |
| 420 |
|
|
|
| 421 |
|
|
Rewrote leading blurb about compatibility to make it clearer what |
| 422 |
|
|
"backward compatibility" is about: when I say 0.7 is backward |
| 423 |
|
|
compatible with 0.6, it means the revision 0.7 can read files |
| 424 |
|
|
produced by 0.6. |
| 425 |
|
|
|
| 426 |
|
|
Mention new Clone(3) extension in SEE ALSO. |
| 427 |
|
|
|
| 428 |
|
|
Was wrongly optimizing for "undef" values in hashes by not |
| 429 |
|
|
fully recursing: as a result, tied "undef" values were incorrectly |
| 430 |
|
|
serialized. |
| 431 |
|
|
|
| 432 |
|
|
Sun Jul 30 12:59:17 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com> |
| 433 |
|
|
|
| 434 |
|
|
First revision of Storable 0.7. |
| 435 |
|
|
|
| 436 |
|
|
The serializing format is new, known as version 2.0. It is fully |
| 437 |
|
|
backward compatible with 0.6. Earlier formats are deprecated and |
| 438 |
|
|
have not even been tested: next version will drop pre-0.6 format. |
| 439 |
|
|
|
| 440 |
|
|
Changes since 0.6@11: |
| 441 |
|
|
|
| 442 |
|
|
- Moved interface to the "beta" status. Some tiny parts are still |
| 443 |
|
|
subject to change, but nothing important enough to warrant an "alpha" |
| 444 |
|
|
status any longer. |
| 445 |
|
|
|
| 446 |
|
|
- Slightly reduced the size of the Storable image by factorizing |
| 447 |
|
|
object class names and removing final object storage notification due |
| 448 |
|
|
to a redesign of the blessed object storing. |
| 449 |
|
|
|
| 450 |
|
|
- Classes can now redefine how they wish their instances to be serialized |
| 451 |
|
|
and/or deep cloned. Serializing hooks are written in Perl code. |
| 452 |
|
|
|
| 453 |
|
|
- The engine is now fully re-entrant. |
| 454 |
|
|
|
| 455 |
|
|
Sun Apr 2 23:47:50 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com> |
| 456 |
|
|
|
| 457 |
|
|
Added provision to detect more recent binary formats, since |
| 458 |
|
|
the new upcoming Storable-0.7 will use a different format. |
| 459 |
|
|
In order to prevent attempting the de-serialization of newer |
| 460 |
|
|
formats by older versions, I'm adding this now to the 0.6 series. |
| 461 |
|
|
|
| 462 |
|
|
I'm expecting this revision to be the last of the 0.6 series. |
| 463 |
|
|
Unless it does not work with perl 5.6, which I don't use yet, |
| 464 |
|
|
and therefore against which I cannot test. |
| 465 |
|
|
|
| 466 |
|
|
Wed Mar 29 19:55:21 MEST 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com> |
| 467 |
|
|
|
| 468 |
|
|
Added note about format incompatibilities with old versions |
| 469 |
|
|
(i.e. pre 0.5@9 formats, which cannot be understood as there |
| 470 |
|
|
was no versionning information in the file by then). |
| 471 |
|
|
|
| 472 |
|
|
Protect all $@ variables when eval {} used, to avoid corrupting |
| 473 |
|
|
it when store/retrieve is called within an exception handler. |
| 474 |
|
|
|
| 475 |
|
|
Mistakenly included "patchlevel.h" instead of <patchlevel.h>, |
| 476 |
|
|
preventing Perl's patchlevel from being included, which is |
| 477 |
|
|
needed starting from 5.6. |
| 478 |
|
|
|
| 479 |
|
|
Tue May 12 09:15:15 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com> |
| 480 |
|
|
|
| 481 |
|
|
Fixed shared "undef" bug in hashes, which did not remain shared |
| 482 |
|
|
through store/retrieve. |
| 483 |
|
|
|
| 484 |
|
|
Thu Feb 10 19:48:16 MET 2000 Raphael Manfredi <Raphael_Manfredi@pobox.com> |
| 485 |
|
|
|
| 486 |
|
|
added last_op_in_netorder() predicate |
| 487 |
|
|
documented last_op_in_netorder() |
| 488 |
|
|
added tests for the new last_op_in_netorder() predicate |
| 489 |
|
|
|
| 490 |
|
|
Wed Oct 20 19:07:36 MEST 1999 Raphael Manfredi <Raphael_Manfredi@pobox.com> |
| 491 |
|
|
|
| 492 |
|
|
Forgot to update VERSION |
| 493 |
|
|
|
| 494 |
|
|
Tue Oct 19 21:25:02 MEST 1999 Raphael Manfredi <Raphael_Manfredi@pobox.com> |
| 495 |
|
|
|
| 496 |
|
|
Added mention of japanese translation for the manual page. |
| 497 |
|
|
|
| 498 |
|
|
Fixed typo in macro that made threaded code not compilable, |
| 499 |
|
|
especially on Win32 platforms. |
| 500 |
|
|
|
| 501 |
|
|
Changed detection of older perls (pre-5.005) by testing PATCHLEVEL |
| 502 |
|
|
directly instead of relying on internal symbols. |
| 503 |
|
|
|
| 504 |
|
|
Tue Sep 14 22:13:28 MEST 1999 Raphael Manfredi <Raphael_Manfredi@pobox.com> |
| 505 |
|
|
|
| 506 |
|
|
Integrated "thread-safe" patch from Murray Nesbitt. |
| 507 |
|
|
Note that this may not be very efficient for threaded code, |
| 508 |
|
|
see comment in the code. |
| 509 |
|
|
|
| 510 |
|
|
Try to avoid compilation warning on 64-bit CPUs. Can't test it, |
| 511 |
|
|
since I don't have access to such machines. |
| 512 |
|
|
|
| 513 |
|
|
Mon Jul 12 14:37:19 METDST 1999 Raphael Manfredi <Raphael_Manfredi@pobox.com> |
| 514 |
|
|
|
| 515 |
|
|
changed my e-mail to pobox. |
| 516 |
|
|
|
| 517 |
|
|
mentionned it is not thread-safe. |
| 518 |
|
|
|
| 519 |
|
|
updated version number. |
| 520 |
|
|
|
| 521 |
|
|
uses new internal PL_* naming convention. |
| 522 |
|
|
|
| 523 |
|
|
Fri Jul 3 13:38:16 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com> |
| 524 |
|
|
|
| 525 |
|
|
Updated benchmark figures due to recent optimizations done in |
| 526 |
|
|
store(): tagnums are now stored as-is in the hash table, so |
| 527 |
|
|
no surrounding SV is created. And the "shared keys" mode for |
| 528 |
|
|
hash table was turned off. |
| 529 |
|
|
|
| 530 |
|
|
Fixed backward compatibility (wrt 0.5@9) for retrieval of |
| 531 |
|
|
blessed refs. That old version did something wrong, but the |
| 532 |
|
|
bugfix prevented correct retrieval of the old format. |
| 533 |
|
|
|
| 534 |
|
|
Mon Jun 22 11:00:48 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com> |
| 535 |
|
|
|
| 536 |
|
|
Changed benchmark figures. |
| 537 |
|
|
|
| 538 |
|
|
Adjust refcnt of tied objects after calling sv_magic() to avoid |
| 539 |
|
|
memory leaks. Contributed by Jeff Gresham. |
| 540 |
|
|
|
| 541 |
|
|
Fri Jun 12 11:50:04 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com> |
| 542 |
|
|
|
| 543 |
|
|
Added workaround for persistent LVALUE-ness in perl5.004. All |
| 544 |
|
|
scalars tagged as being an lvalue are handled as if they were |
| 545 |
|
|
not an lvalue at all. Added test for that LVALUE bug workaround. |
| 546 |
|
|
|
| 547 |
|
|
Now handles Perl immortal scalars explicitely, by storing &sv_yes |
| 548 |
|
|
as such, explicitely. |
| 549 |
|
|
|
| 550 |
|
|
Retrieval of non-immortal undef cannot be shared. Previous |
| 551 |
|
|
version was over-optimizing by not creating a separate SV for |
| 552 |
|
|
all undefined scalars seen. |
| 553 |
|
|
|
| 554 |
|
|
Thu Jun 4 17:21:51 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com> |
| 555 |
|
|
|
| 556 |
|
|
Baseline for Storable-0.6@0. |
| 557 |
|
|
|
| 558 |
|
|
This version introduces a binary incompatibility in the generated |
| 559 |
|
|
binary image, which is more compact than older ones by approximatively |
| 560 |
|
|
15%, depending on the exact degree of sharing in your structures. |
| 561 |
|
|
|
| 562 |
|
|
The good news is that your older images can still be retrieved with |
| 563 |
|
|
this version, i.e. backward compatibility is preserved. This version |
| 564 |
|
|
of Storable can only generate new binaries however. |
| 565 |
|
|
|
| 566 |
|
|
Another good news is that the retrieval of data structure is |
| 567 |
|
|
significantly quicker than before, because a Perl array is used |
| 568 |
|
|
instead of a hash table to keep track of retrieved objects, and |
| 569 |
|
|
also because the image being smaller, less I/O function calls are |
| 570 |
|
|
made. |
| 571 |
|
|
|
| 572 |
|
|
Tue May 12 09:15:15 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com> |
| 573 |
|
|
|
| 574 |
|
|
Version number now got from Storable.pm directly. |
| 575 |
|
|
|
| 576 |
|
|
Fixed overzealous sv_type() optimization, which would make |
| 577 |
|
|
Storable fail when faced with an "upgraded" SV to the PVIV |
| 578 |
|
|
or PVNV kind containing a reference. |
| 579 |
|
|
|
| 580 |
|
|
Thu Apr 30 15:11:30 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com> |
| 581 |
|
|
|
| 582 |
|
|
Extended the SYNOPSIS section to give quick overview of the |
| 583 |
|
|
routines and their signature. |
| 584 |
|
|
|
| 585 |
|
|
Optimized sv_type() to avoid flags checking when not needed, i.e. |
| 586 |
|
|
when their type makes it impossible for them to be refs or tied. |
| 587 |
|
|
This slightly increases throughput by a few percents when refs |
| 588 |
|
|
and tied variables are marginal occurrences in your data. |
| 589 |
|
|
|
| 590 |
|
|
Stubs for XS now use OutputStream and InputStream file types to |
| 591 |
|
|
make it work when the given file is actually a socket. Perl |
| 592 |
|
|
makes a distinction for sockets in its internal I/O structures |
| 593 |
|
|
by having both a read and a write structure, whereas plain files |
| 594 |
|
|
share the same one. |
| 595 |
|
|
|
| 596 |
|
|
Tue Jun 3 09:41:33 METDST 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com> |
| 597 |
|
|
|
| 598 |
|
|
Thanks to a contribution from Benjamin A. Holzman, Storable is now |
| 599 |
|
|
able to correctly serialize tied SVs, i.e. tied arrays, hashes |
| 600 |
|
|
and scalars. |
| 601 |
|
|
|
| 602 |
|
|
Thu Apr 9 18:07:51 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com> |
| 603 |
|
|
|
| 604 |
|
|
I said SvPOK() had changed to SvPOKp(), but that was a lie... |
| 605 |
|
|
|
| 606 |
|
|
Wed Apr 8 13:14:29 METDST 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com> |
| 607 |
|
|
|
| 608 |
|
|
Wrote sizeof(SV *) instead of sizeof(I32) when portable, which |
| 609 |
|
|
in effect mangled the object tags and prevented portability |
| 610 |
|
|
accross 32/64 bit architectures! |
| 611 |
|
|
|
| 612 |
|
|
Wed Mar 25 14:57:02 MET 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com> |
| 613 |
|
|
|
| 614 |
|
|
Added code example for store_fd() and retrieve_fd() in the |
| 615 |
|
|
man page, to emphasize that file descriptors must be passed as |
| 616 |
|
|
globs, not as plain strings. |
| 617 |
|
|
|
| 618 |
|
|
Cannot use SV addresses as tag when using nstore() on LP64. This |
| 619 |
|
|
was the cause of problems when creating a storable image on an |
| 620 |
|
|
LP64 machine and retrieving it on an ILP32 system, which is |
| 621 |
|
|
exactly what nstore() is meant for... |
| 622 |
|
|
|
| 623 |
|
|
However, we continue to use SV addresses as tags for plain store(), |
| 624 |
|
|
because benchamarking shows that it saves up to 8% of the store |
| 625 |
|
|
time, and store() is meant to be fast at the expense of lack |
| 626 |
|
|
of portability. |
| 627 |
|
|
|
| 628 |
|
|
This means there will be approximately an 8% degradation of |
| 629 |
|
|
performance for nstore(), but it's now working as expected. |
| 630 |
|
|
That cost may vary on your machine of course, since it is |
| 631 |
|
|
solely caused by the memory allocation overhead used to create |
| 632 |
|
|
unique SV tags for each distinct stored SV. |
| 633 |
|
|
|
| 634 |
|
|
Tue Jan 20 09:21:53 MET 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com> |
| 635 |
|
|
|
| 636 |
|
|
Don't use any '_' in version number. |
| 637 |
|
|
|
| 638 |
|
|
Tue Jan 13 17:51:50 MET 1998 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com> |
| 639 |
|
|
|
| 640 |
|
|
Updated version number. |
| 641 |
|
|
|
| 642 |
|
|
added binmode() calls for systems where it matters. |
| 643 |
|
|
|
| 644 |
|
|
Be sure to pass globs, not plain file strings, to C routines, |
| 645 |
|
|
so that Storable can be used under the Perl debugger. |
| 646 |
|
|
|
| 647 |
|
|
Wed Nov 5 10:53:22 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com> |
| 648 |
|
|
|
| 649 |
|
|
Fix memory leaks on seen hash table and returned SV refs. |
| 650 |
|
|
|
| 651 |
|
|
Storable did not work properly when tainting enabled. |
| 652 |
|
|
|
| 653 |
|
|
Fixed "Allocation too large" messages in freeze/thaw and added. |
| 654 |
|
|
proper regression test in t/freeze.t. |
| 655 |
|
|
|
| 656 |
|
|
Tue Jun 3 09:41:33 METDST 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com> |
| 657 |
|
|
|
| 658 |
|
|
Updated version number |
| 659 |
|
|
|
| 660 |
|
|
Added freeze/thaw interface and dclone. |
| 661 |
|
|
|
| 662 |
|
|
Fri May 16 10:45:47 METDST 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com> |
| 663 |
|
|
|
| 664 |
|
|
Forgot that AutoLoader does not export its own AUTOLOAD. |
| 665 |
|
|
I could use |
| 666 |
|
|
|
| 667 |
|
|
use AutoLoader 'AUTOLOAD'; |
| 668 |
|
|
|
| 669 |
|
|
but that would not be backward compatible. So the export is |
| 670 |
|
|
done by hand... |
| 671 |
|
|
|
| 672 |
|
|
Tue Mar 25 11:21:32 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com> |
| 673 |
|
|
|
| 674 |
|
|
Empty scalar strings are now "defined" at retrieval time. |
| 675 |
|
|
|
| 676 |
|
|
New test to ensure an empty string is defined when retrieved. |
| 677 |
|
|
|
| 678 |
|
|
Thu Feb 27 16:32:44 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com> |
| 679 |
|
|
|
| 680 |
|
|
Updated version number |
| 681 |
|
|
|
| 682 |
|
|
Declare VERSION as being used |
| 683 |
|
|
|
| 684 |
|
|
Fixed a typo in the PerlIO_putc remapping. |
| 685 |
|
|
PerlIO_read and perlIO_write inverted size/nb_items. |
| 686 |
|
|
(only relevant for pre-perl5.004 versions) |
| 687 |
|
|
|
| 688 |
|
|
Thu Feb 27 15:58:31 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com> |
| 689 |
|
|
|
| 690 |
|
|
Updated version number |
| 691 |
|
|
|
| 692 |
|
|
Added VERSION identification |
| 693 |
|
|
|
| 694 |
|
|
Allow build with perl5.003, which is ante perlIO time |
| 695 |
|
|
|
| 696 |
|
|
Mon Jan 13 17:53:18 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com> |
| 697 |
|
|
|
| 698 |
|
|
Random code fixes. |
| 699 |
|
|
|
| 700 |
|
|
Wed Jan 22 15:19:56 MET 1997 Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com> |
| 701 |
|
|
|
| 702 |
|
|
Updated version number in Makefile.PL. |
| 703 |
|
|
|
| 704 |
|
|
Added "thanks to" section to README. |
| 705 |
|
|
|
| 706 |
|
|
Documented new forgive_me variable. |
| 707 |
|
|
|
| 708 |
|
|
Made 64-bit clean. |
| 709 |
|
|
|
| 710 |
|
|
Added forgive_me support to allow store() of data structures |
| 711 |
|
|
containing non-storable items like CODE refs. |