Revision history for File::Cache
0.16 2001-04-18-11-52
- prepared version 0.16 for release
- replaced the explicit system( ) call to invoke the subprocess get test
with a fork( ) instead
- changed email address to dewitt@unto.net
- started version 0.16
0.15 2001-04-17-15-07
- prepared version 0.15 for release
- added a note about the release of Cache::Cache
- Updated documentation to indicate that $File::Cache::sNO_MAX_SIZE is the
default cache size. (David Coppit <david@coppit.org>)
- added a patch by Michael Blakely to allow for $sEXPIRES_NEVER to
be used as the $expires_in parameter on a set
- started version 0.15
0.14 2000-11-27-09-45
- prepared version 0.14 for release
- documented the optional usage of Storable in the README
- added requirement for File::Spec 0.82
- removed "use Data::Dumper"
- the .description file now uses a global friendly umask
- started version 0.14
0.13 2000-10-07-19-22
- binmode is now used to avoid problems with setting/getting binary data
from the cache (This change probably means that the segfault
above is no longer a problem. However, it's still a good idea to use a
canonical format in case processes on different platforms are accessing
the same cache over NFS.)
- Removed unreferenced subroutine _purge_all
- Minor formatting changes
- Internal subroutines get_user_path() and get_namespace_path(), are
now prefixed by an underscore
- Names of non-method subroutines are now all consistently uppercase
- File::Cache::REDUCE_SIZE was coded as a method, but documented as
an object-independent function. Fixed it, and made
_choose_victim_file an object-independent function
- Added POD documentation for get_namespace(), set_namespace(),
get_max_size(), set_max_size(), get_cache_depth(), and
set_cache_depth()
- "cache entry" changed to "cache object" for consistency in
terminology
- Cache size reduction is now done, if necessary, when
set_max_size() called
- Minor portability improvements
- Improved error checking for REDUCE_SIZE
- Added parameter checking to subroutines
- Removed $sGET_STALE_ONLY and $sGET_FRESH_ONLY from @EXPORT_OK list
(these are internal constants)
- Internal subroutines get_username_path() and get_namespace_path()
now build the path directly from the cache key, username, and
namespace parameters. Internal subroutines set_username_path() and
set_namespace_path() removed.
- Improved directory verification so that it only happens when the
cache key, user, or namespace change.
- Modified some functions to return references instead of operating
on reference parameters
- Added cache metadata support (useful for checking that an existing
cache is compatible with the current version of File::Cache)
- Added $CACHE_OBJECT_VERSION, which describes the version of cache
objects that the current version of File::Cache can work with.
- Added support for choosing the persistence mechanism to be either
Storable (the traditional and default mechanism) or Data::Dumper.
(Data::Dumper is slower, but (1) is a standard Perl module, (2) is
written entirely in Perl (no compilation difficulties), and (3)
generates human-readable cache entries.)
- minor formatting change to better fit 80 columns
- changed _UNTAINT_STRING to take a untainted regex
- added _UNTAINT_FILE_PATH to call _UNTAINT_STRING with the file path regex
- Changed default cache key from $TMPDIR/File::Cache to $TMPDIR/FileCache on
DOS/Windows platforms, since the former is illegal.
- retroactively split version 0.13 from 0.12
- Corrupted cache objects stored using Data::Dumper are automatically
detected and removed from the cache
- Cache_Description.pl was changed to .description
- .description files now use a proprietary format instead of Data::Dumper
- changed test.pl to always quote the call to the subprocess
- changed test/test_get.pl to strip quotes if needed
- wrote _RECURSIVELY_REMOVE_DIRECTORY to avoid taint failures in File::Path
- switched to finddepth() instead of find() in File::Find because finddepth()
doesn't use Cwd, which in turn is not taint safe.
- removed the unused _UNTAINT_CACHE_DESCRIPTION_CODE() and
$sUNTAINTED_CACHE_DESCRIPTION_CODE_REGEX
- updated the README to mention the cache upgrade issues
- updated the CREDITS file
- changed _WRITE_FILE to write to a temp file then rename to
avoid corruption race (thanks Randal!)
- better documentation for get, get_stale, and set (thanks Randal!)
- added two tests for getting and setting blessed objects
0.12 2000-08-25-09-58 (not public)
- fixed a typo in CHANGES
- added a more generic taint check called _untaint_string, this
is called everywhere tainting could occur
- use File::Spec::Functions::tmpdir to remove OS dependency for temp
directory (Bug ID 104869)
- removed last TODO item
- cache directories are now only created when needed (David Coppit
<david@coppit.org>)
- fixed the second test "21" in test.pl
- switched to nfreeze() instead of freeze to avoid segfault (thanks
David!)
0.11 2000-06-22-09-23
- updated the CREDITS file
- updated Cache.pm for version 0.11
0.10 2000-06-22-09-07
- updated Cache.pm for version 0.10
- added the remove($identifier) method to allow keys to be selectively
removed
- added a test for remove
- changed email address in the docs to <dewitt@avacet.com>
- reformatted for 80 column displays
- updated the _write_file routine to make it pass taint checking
(jhoward@fastmail.fm)
- updated the purge() routine to make it pass taint checking
(jhoward@fastmail.fm)
0.09 2000-04-28-12-43
- perldoc updates for get and get_stale (Bug ID 104432)
- added public constants to EXPORT_OK (Bug ID 104433)
- modified test scripts to make use of EXPORT_OK'd vars
- updated the TODO list
0.08 2000-04-12-10-31
- added get_creation_time() (David Coppit <david@coppit.org>)
- added get_expiration_time() (David Coppit <david@coppit.org>)
- updated the perldoc (David Coppit <david@coppit.org>)
- updated the test.pl script to include tests for get_creation_time() and
get_expiration_time() (David Coppit <david@coppit.org>)
0.07 2000-04-10-09-45
- added support for the "cache_depth" option that enables
subdirectories in the cache to increase performance when caching
large numbers of objects
- rewrote the _recursive_find_nearest_expiration and
_recursive_find_latest_accessed routines to actually work recursively
(needed to support cache_depth)
- added a routine that avoids a race when removing files from the
cache (thanks to Jessica Mintz)
0.06 2000-03-06-11-12
- bug fixed where purge() didn't actually delete the cache file
(David Coppit <david@coppit.org>)
- auto_purge, username, max_size, and filemode options added (David
Coppit <david@coppit.org>)
- cache_path was renamed user_path
- set/get methods added for auto_purge, username, max_size,
expires_in and filemode, namespace_path, cache_key, cache_path,
and user_path (David Coppit <david@coppit.org>)
- automatic cache size reduction added to set() method, and
reduce_size() method created (David Coppit <david@coppit.org>)
- fixed the CHANGES file to reflect the version 0.05 changes
- updated the perldoc (David Coppit <david@coppit.org>)
- now using File::Spec for the path generation (thanks for David for
the idea)
- updated the test.pl and test/test_get.pl scripts to include tests
for setting the username, filemode, and max_size
0.05 2000-02-22-16-23
- updated the requirements in the README
- provided a default username if getpwuid is not available (MacOS)
- fixed a problem where _purge failed on FreeBSD (thanks to
Doug Steinwand)
0.04 2000-02-16-14-48
- create a per-user namespace to better deal with file
permission problems when more than one user wants
to use File::Cache
- only create a globally read/write directory for
the default root of the cache (i.e., /tmp/File::Cache/)
- implemented size and SIZE
- added the _verify_directory routine for better
encapsulation of that functionality
- updated documentation
- first submitted to CPAN
- modified test.pl to use "/tmp/TMPC" as a namespace
- updated the requirements in Makefile.PL
0.03 2000-02-16-02-10
- set the default file and directory creation umask
to 0000 as a *really* temporary fix
0.02 2000-02-14-16-52
- set the default file and directory creation umask
to 0000 as a temporary fix to the file permission
problem
0.01 2000-02-10-09-22
- original version, created by dclinton@eziba.com