1Revision history for Perl extension IPC::Shareable.
2
31.06    2021-09-08
4    - Fix significant bug where at least on MacOS, if we generated a CRC of a
5      key that was greater than 0x80000000, it would round down the key to that
6      number exactly, casuing duplicates, and incorrect segment access
7    - Added new() method, returns a reference (default hash) without having to
8      do the tie() directly
9    - Modify t/65-seg_size.t beyond RAM max test to cover varying error messages
10      on differing OSs
11    - Renamed t/67-out_of_memory.t as the tests are related to exhausting SHM
12      slots, not RAM
13
141.05    2021-07-16
15    - Bump prereq version of Test::SharedFork to 0.35
16    - Added ability to use JSON as the serializer
17    - Added ipcs()
18    - Added test to ensure we croak if data size is greater than segment size
19    - Added 'tidy' attribute, removes unneeded nested structure segments
20    - In SharedMem, added _key attribute, and added set/get methods
21    - Changed key generation from using padding, pack and unpack to using
22      String::CRC32's crc32(), which allows arbitrary, unpadded strings
23    - Added attributes() allows fetching one, or all of the object's atttributes
24    - Added 'limit' attribute, by setting false, allows a user to set a segment
25      size larger than our internal 1GB default
26    - Cleaned up exception throwing (particularly if seg size eats up all
27      memory, we throw an appropriate message)
28    - Display proper exception if we try to exhaust all available shared memory
29      segments (fixes #3)
30
311.04    2021-06-28
32    - Skip unspawn tests for perls with -Duselongdouble, as Storable is not
33      compatible storing/retrieving such numbers (closes #5)
34
351.03    2021-06-25
36    - Add newline to singleton() warn so that it doesn't print out trace info
37
381.02    2021-06-25
39    - Remove erroneous listing from MANIFEST
40    - Work around issue in t/65-seg_size.t where MacOS and FreeBSD don't have
41      the -i flag to ipcs (thanks for the PR, Roland Walker!)
42    - Added singleton(), ensures that only a single instance of a script can
43      run at any given time
44    - Added tests to ensure we croak() if create is not set and the segment
45      doesn't yet exist
46    - Fix POD issue where we stated exclusive returns undef instead of croaking
47      (fixes #10)
48    - Change 'perl' shell call to $^X in t/71-unspawn.t (fixes #6)
49
501.01    2021-06-24
51    - Added 'graceful' flag option. With exclusive, if a second process
52      attempts to tie an exclusive segment, we exit gracefully instead of
53      croaking
54
551.00    2021-06-09
56    - Project adopted by Steve Bertrand
57    - Added global_register() and process_register() to return the
58      registries of active segments and semaphores
59    - Added seg() and sem() methods, returns the structure of a shared
60      memory segment and a sempahore respectively
61    - Added initial "persist" hash variables. Separate processes (even
62      multiple files in multiple windows) can share a variable, and it'll
63      remain available even after all processes exit. The variable will be
64      re-attached if the same shared segment key is used in subsequent runs
65    - Reversed order of Changes file
66    - Removed trace() and debug() code for ease of reading
67    - Improved exception/error messages, added exception testing, reduced
68      and minimized the number of exceptions actually uncaught
69    - Significant POD cleanup
70    - 100% rewrite of all test files, and added a slew of new ones, all
71      using Test::More
72    - Add build requirement of Test::SharedFork to handle the out of
73      sequence fork() tests in t/35-clean.t and t/30-lock_operations
74    - Major POD updates
75    - Added tests to prove that RT 123057 isn't really an issue (ie. segment
76      size parameter works correctly)
77
780.61  Mon Oct  8 00:27:39 2012
79    - Added patch from Frank Lichtenheld fixing IPC::Shareable's dependence
80      on the presence of a perl bug which is no longer present in
81      perl >= 5.10
82    - Fixed bug reported by Dan Harbin where the FETCH operation on a tie()d
83      string containing HASH, ARRAY, or SCALAR fails because it was using
84      the stringification of the data to determine what kind of reference
85      it was.  Now using Scalar::Util::reftype
86    - Added missing dependency on IPC::Semaphore to Makefile.PL (reported
87      by Adrian Issott)
88    - Added a 'sleep 1' in a test that was hanging on certain systems
89      due (possibly) to two alarm signals coming too quickly to the
90      child process.  From Ton Voon.
91
920.60  Mon Mar  5 15:20:18 EST 2001
93    - Lee Lindley (lee.lindley@bigfoot.com) added the _was_changed
94      optimization, improved the locking functionality, fixed
95      numerous bugs, and generally cleaned things up; thanks.
96    - Removed support for "no" as a false value in arguments;
97      thanks to Dave Rolsky <autarch@urth.org>
98
990.54  Mon Jan  8 11:52:28 EST 2001
100    - Fix to allow IPC::Shareable to work with 1.0.* versions of
101      Storable
102
1030.53  Tue Nov 14 00:33:35 EST 2000
104    - Fixed race condition in test suite causing intermitent
105      failures.
106    - Better checking for success of calls to Storable::thaw();
107      thanks to Raphael Manfredi <Raphael_Manfredi@pobox.com>.
108
1090.52  Thu Sep 14 12:30:17 EDT 2000
110    - Now STORE, PUSH, POP, etc all call _thaw() before doing
111      their business.
112    - Refined SIGALRM handlers in test scripts
113    - Fixed concurrency issues affecting tied arrays and hashes;
114      thanks to thanks to Robert Emmery <roberte@netscape.com>,
115      Terry Ewing <terry@intevo.com>, Tim Fries
116      <timf@dicecorp.com>, and Joe Thomas <jthomas@women.com>.
117    - Doc fixes thanks to Paul Makepeace
118      <Paul.Makepeace@realprogrammers.com>
119
1200.51  Fri May  5 23:47:06 EDT 2000
121    - Fixed bug that would cause IPC::Shareable::BUF_SIZ to be
122      ignored; thanks to Robert Emmery <roberte@netscape.com> and
123      Mohammed J. Kabir <kabir@intevo.com> for reporting.
124    - Stopped tests from leaking shm segments
125    - Added test of argument parsing
126    - doc fixes
127
1280.50 Tue Mar 21 11:56:32 EST 2000
129    - Complete rewrite incorporating the following changes.
130    - Requires 5.00503.  This allowed the module to get rid of the
131      global cache for shared memory segments; each Shareable
132      object now carries around its own data.
133    - 5.00503 also allowed tied arrays to be implemented
134    - Shared memory segments can no longer be of infinite length
135      thereby reducing the amount of code in the module by a
136      factor of 2.
137    - Uses IPC::Shareable::SharedMem class for accessing
138      shared memory.
139    - Uses IPC::Semaphore module for accessing semaphores.
140    - Completely revisited the way references are dealed with: all
141      referenced thingies are now automagically tied to shared
142      memory.
143    - Constants now imported from IPC::SysV; Shareable.xs is gone
144    - Rewrote test suite and moved into t subdirectory
145    - Updated man page
146
147 0.30 Mon Jan 19 11:13:41 EST 1998
148    - Added SEM_UNDO to semop() calls; Maurice Aubrey.
149    - Fixed some bugs in the locking code; Maurice Aubrey.
150    - Made calls to debug() conditional for efficency; Maurice Aubrey.
151    - Fixed a signal handler in test.pl; Maurice Aubrey.
152
1530.29  Mon Jan 12 13:49:42 EST 1998
154    - $MAXVER patch for when the version semaphore reaches its limit
155      and rolls back over to 0; Maurice Aubrey <maurice@hevanet.com>.
156    - patch to quieten things down under -w; Doug MacEachern
157      <dougm@telebusiness.co.nz>
158
1590.28  Wed Oct 22 14:59:08 EDT 1997
160    - cleaned up the way thingys are magically tied; Ben Sugars.
161    - moved many subroutines so that they are auto-loaded; Ben
162      Sugars.
163    - updated man page; Ben Sugars.
164
1650.26  Mon Oct 20 10:06:43 EDT 1997
166    - fixed bug regarding assigning a reference to an empty
167      hash to a tied variable.  Thanks to Jason Stevens.
168
1690.25  Tue Oct  7 14:41:49 EDT 1997
170    - added more checking of sem*() and shm*() return values;
171      Michael Stevens and Ben Sugars.
172    - added shlock and shunlock; Ben Sugars.
173    - fixed bug that would cause modifications of magically
174      referenced thingys to fail.  Thanks to Maurice Aubrey
175
1760.20  Thu Aug 28 15:13:46 EDT 1997
177    - added ability to magically create ties to implicitly
178      referenced thingys; Ben Sugars.
179
1800.18  Thu Aug 28 09:12:30 EDT 1997
181    - fixed garbage collection bug; Ben Sugars.  Thanks to
182      Michael Stevens <michael@imaginet.co.uk> for the patch.
183
1840.17  Wed Aug 27 15:57:11 EDT 1997
185    - fixed some bugs in &parse_argument_hash; Ben Sugars.
186
1870.16  Mon Aug 11 16:10:54 EDT 1997
188    - new shared memory segments now initialized with null
189      values; Ben Sugars.
190
1910.15  Fri Aug  8 15:45:29 EDT 1997
192    - implemented locking using semaphores; Ben Sugars.
193
1940.12  Thu Aug  7 14:47:42 EDT 1997
195    - various bug fixes; Ben Sugars.
196
1970.11  Wed Aug  6 10:14:49 EDT 1997
198    - initial implementation of semaphores for versioning and
199      caching; Ben Sugars.
200
2010.10  Fri Aug  1 13:32:52 EDT 1997
202    - can now tie both scalars and hashes of arbitrary length;
203      Ben Sugars.
204
2050.05  Wed Jul 30 15:02:31 EDT 1997
206    - scalars can now be tied; Ben Sugars.
207
2080.01  Wed Jul 30 09:00:53 1997
209    - original version; created by h2xs 1.18.
210