Revision history for Cache 1.05 2006-05-26-08-22 - release version 1.05 - added test for auto_purge_on_get - fixed infinite loop with auto_purge_on_get - fixed directory paths on Windows partitions - NullCache uses BaseCache 1.04 2005-03-17-11-23 - release version 1.04 - repair permissions on temp cache files 1.03 2004-10-04-11-23 - release version 1.03 - modified the FileBackend to use the more robust File::Temp - "officially" recommend FileCache over SharedMemoryCache - added more robust error checking for shared memory caches - added a check for invalid frozen data - added $1 to all error messages 1.02 2003-04-15-10-41 - released version 1.02 - require Digest::SHA1 2.02, optionally IPC::ShareLite 0.09 - use Storable's "nfreeze" instead of "freeze" - added notes on locking and Storable to the README - updated documentation on expiration units - modified the quoting of the untainted path regex - fixed the duplicated get_keys in NullCache - applied patch to ensure consistent state if the filesystem fills up - applied patch to ensure initialization of the memory cache hash 1.01 2002-04-14-01-30 - released version 1.01 - switched to Digest::SHA1 - updated copyright dates 1.0 2002-04-06-18-51 - released version 1.0 - localized scope of global file and directory handles (FILE and DIR) - applied Jonathan Swartz's patch for a much better untainting regex - changed _Untaint_String to throw an exception on a taint - further improved the fix to prevent race conditions that caused the tests to fail - exposed the get_namespaces method on Cache - fixed the failing Win32 tests caused by fileglobs in Makefile.PL - applied Yves Orton's patch in _Make_Path to fix warnings on Win32 0.99 2001-12-09-18-45 - released version 0.99 - major refactoring of code - replaced non-standard usage of SUCCESS and FAILURE with Error.pm - replaced non-standard usage of TRUE and FALSE with 1 and 0 - migrated from the term "identifier" to the more standard term "key" and marked the old public methods with identifier as deprecated - broke out the MemoryBackend, FileBackend, SharedMemoryBackend into distinct and reusable classes - fixed a long outstanding bug in the unit tests that made working caches appear to fail - changed the meaning of object and cache size for file system based caches to consistently reflect the total size of the objects on disk, but not including the directory overhead - changed format of persisted data in the FileBackend - major rewrite of documentation 0.09 2001-09-10-12-10 - released version 0.09 - applied Axel Beckert patch to fix the expiration units - applied Ken Williams's directory creation patch to pass all tests - changed the license to be either the GPL or the Artistic license - added Jay Sachs' implementation of NullCache - modified the remove methods to avoid croaking if two cache instances are both purging or limiting at the same time - migrated to a factory-like model with private constructors to fix the auto_purge_interval functionality - updated the documentation to better reflect that size means size in bytes - started version 0.09 0.08 2001-04-26-08-53 - released version 0.08 - renamed the auto_purge option to auto_purge_interval - added the auto_purge_on_set and auto_purge_on_get options - moved the Auto_Purge and Reset_Auto_Purge methods to BaseCache as the instance methods _auto_purge and _reset_auto_purge - added the auto_purge option and property to the base cache interface and implementations. This option will call the purge method on the cache after the specified interval expires - renamed _set_namespace to set_namespace (i.e., made it public) - added the set_object method to the cache interface - updated the test scripts and CREDITS file - updated the perldoc formatting to look better in HTML - removed the $VERSION from SizeAwareCache - started version 0.08 0.07 2001-03-27-08-55 - released version 0.07 - prepared for initial CPAN release - improved Cache::Cache documentation - removed last "use IPC::Shareable" - added support in the Makefile.PL to conditionally build the SharedMemoryCache, which requires IPC::ShareLite, and thus runs only on certain architectures. Also broke out the IPC related routines into the SharedCacheUtils package. - started version 0.07 0.06 2001-03-23-08-36 - release version 0.06 - added the get_identifiers method to the Cache interface, implemented the method for all classes, added a new test, and updated the test scripts - added the size property to Object - added the _freeze and _thaw methods to the BaseCache class and modified all children classes to use them - revert to separate freeze and thaws on the memory based caches to ensure that cached data isn't modified at any time - major rewrite of the size aware cache logic - added the CacheMetaData class, which is used to efficiently keep track of a size aware cache state - refactored the instance specific limit_size routines into the generic Limit_Size method in CacheUtils - updated the size aware cache implementations to use the CacheMetaData and Limit_Size methods - improved the SizeAwareCacheTester and updated the test scripts - removed unnecessary clone call from the SharedMemoryCache and the SizeAwareSharedMemoryCache - added exclusive locking on the shared cache for operations that will both read and write to the cache - replaced the cache_hash_ref instance property in MemoryCache with a class property and updated the SharedMemoryCache and SizeAwareSharedMemoryCache modules accordingly - started version 0.06 0.05 2001-03-20-10-25 - released version 0.05 - updated Storable dependency to 1.011 - replaced the IPC::Shareable backend with IPC::ShareLite - started version 0.05 0.04 2001-03-17-10-43 - released version 0.04 - replaced Data::Dumper with Storable, which is now a requirement - implemented the SizeAwareMemoryCache and associated tests - implemented the SizeAwareSharedMemoryCache and associated tests - added the SizeAwareCache interface - moved max_size logic from the _store method to the set method - started version 0.04 0.03 2001-03-10-12-40 - released version 0.03 - made the FileCache more multi-user friendly by allowing a more permissive default directory umask, which can also be optionally overridden - updated documentation and code style - completely rewrote and improved the limit_size method for a major performance gain - updated the syntax for expiration times to include the [number] [unit] format, e.g. "10 seconds" - added the get_object method to the Cache interface, which allows access to the underlying cache object (without potentially expiring the object) - added the get_namespace and get_default_expires_in methods to the Cache interface definition - updated the MANIFEST - checked in preliminary cache benchmarking code - fixed bug fixed bug #406030 -- default_expires_in never invoked - refactored common code into BaseCache - use Static_Params method - fixed default_expires_in bug - added coding guidelines to STYLE - started version 0.03 0.02 2001-02-15-21-12 - released version 0.02 - added perldoc to SizeAwareFileCache - created SizeAwareFileCache - added the SizeAwareCacheTester module - refactored common test code into the AbstractCacheTester module - added the Recursively_List_Files_With_Paths routine to CacheUtils - marked the FileCache and MemoryCache as ISA Cache::Cache - updated the MANIFEST - started version 0.02 0.01 2001-02-13-16-16 - released version 0.01 - implemented Get_Temp_Dir to make the FileCache root more OS independent - started version 0.01