Revision history for perl module CHI::Cascade

0.3.4 (0.300004) 2020-07-13
    - The 'stash' bug in previous release (v0.3.3) was not fixed. It was fixed here i hope...
    - Added the warning when called the Cascade::stash method (deprecated)
    - Fixed misprint 'depricated' to 'deprecated' in docs
    - Added a 'die' in Cascade::Rule::stash method if 'stash' or 'run_instance' are not defined (normally this should not happen)

0.3.3 (0.300003)
    - fixed bug of stash (undefined) when rule method was used (a rarely bug)

0.3.2 (0.300002)
    - [improved] If 'depends' in rule is code then this code will be executed only once (previously it could be executed twice). Same rule is for any item of depends array too.
    - [improved] All code was reformated without tabs

0.3.1 (0.300001)
    - Improved docs about stash method
    - The "nested run methods" test was written andit works as expected.
    - META.yml file was fixed

    - The run method can be called from other run method and from depends callref.
      This was made possible by creating a separate data instance for each root call of run method.
      Existed tests are passed but a test dedicated for this feature is not written yet.
    - Improved the test 11_fast_mmap_actual_term_expires.t
      ( It was fail in some high-load test CPAN computers
      because time intervals there were larger than I expected in the tests.

0.284 2014-07-20
    - Fix bug with ttl, when one target with ttl's rule had dependencies which had other ttl'd rules
    - few code optimizations
    - update inc::Module::Install up to v1.10

0.283 2014-06-17
    - Now i set up minimal version of perl 5.10 because i use defined-or '//'
      operator and some CPAN's tests are failed. I don't whant now to rewrite
      module for old version because i don't love very old soft and love
      an effective code, sorry ;-)

0.282 2014-06-16
    - some corrected t/
      ( test fail report here - )
    - fix bug with 'valid_expires', the test was written for it
    - Now value_expires can be coderef for dynamic 'value_expires'

0.28 2013-10-24
    - Removed MYMETA.* files from MANIFEST and added to exclude lists (.gitignore & MANIFEST.SKIP)
      ( )

0.27 2013-09-01 Stable release - i use it in production ;-)
    - Only fix Changes - reformated to CPAN::Changes::Spec

0.261 2013-06-11
    - Fix bug (not tested yet) - in rare cases there can infinite locks of
      targets in status CASCADE_COMPUTING. Fixed but not tested by me.

0.26 2012-12-14
    - New conception of non-blocking run method - deferring
    - The test 04_memcached_multi.t some fails in FreeBSD. May be this is
      because 'sleep' works not as expected. I changed the 'sleep' to
      'select($,$,$,$)'. May be it will improve this test at FreeBSD...
    - Added CHI::Cascade::Rule::value_expires method for changing by recompute
      code the expiration time of values & target markers
    - Added test for value_expires - by 08_fast_mmap.t
    - Fixed bugs - in tests *_fast_mmap.t if was ^C signal - files of FastMmap
      driver were not deleted
    - The new method CHI::Cascade::Value->state
    - Added method CHI::Cascade::Value::state_as_str
    - The test '07_fast_mmap.t' tests now deferring & states of values
    - Fix few bug with target locking
    - Fixed unproductive code piece of value with expiring
    - Fixed unproductive code with target locking
    - Changed some tests for testing the 'actual_term' option
    - Added stats for operations 'run' & 'dependencies_lookup'
    - Added 'ttl' feature.
    - CHI::Cascade->rule has now some new options: value_expires & ttl
    - CHI::Cascade->run has now some new options: ttl & stash
    - Memcached tests are skipped by default. They use a starting of memcached
      and from cpanm they doesn't work. If you want to tests please use this
      $ perl Makefile.PL
      $ FORCE_MEMCACHED_TESTS=1 make test && make install
    - Added a stack info for targets for circled dependencies die (now it prints stack)
    - Fixed bug with circled dependencies - now more accurate (no tests)
    - Added new method 'stash' for getting a stash passed through 'run' method

0.25001 2012-04-17
    - Few fix - should improve tests

0.25 2012-02-28
    - Some improvements
    - For backward compatibility with perl < 5.9 the operator '$a // $b' is
      changed to long style as 'defined($a) ? $a : $b'. It should improve a
      tests on old perl installations

0.24_01 2012-02-24
    - Added 'parent' module in requires for old perl installation (<=5.10.0)

0.24 2012-02-24
    - Fixed bug with tests with memcached

0.23 2012-02-22
    - Queues for non blocking running - to see test t/lib/
       (no docs yet)
    - Added test '07_fast_mmap.t' for queue-ing
    - Fix some bugs
    - Added bits for values (no docs yet) and not finished yet.

0.22 2012-02-20
    - Added the option 'target_chi' - target markers can be kept in other CHI
       cache than data of targets. It's useful for l1_cache's caches of CHI

0.21 2012-02-16
    - A detection of circle dependencies is improved (not tested)

0.20 2012-02-09
    - Some optimization
    - Few fixes of documentation
    - Added option 'depends_catch' to rule as catcher callback for dependencies

0.19 2012-01-25
    - Fixed bug of die like "Can't call method "is_value" on an undefined value
      at /usr/local/share/perl5/CHI/ line 190"

0.18 2012-01-25
    - Now if recompute function dies with exception of CHI::Cascade::Value type
      (introduced in v.0.13) CHI::Cascade::run method will return old value of
      target value from cache if exception's value is 'undef' and cache value
      exists. Before the run method always returned a value of exception.
    - Imroved the documentation for CHI::Cascade::rule/code
    - Added the documentation of CHI::Cascade::Value

0.17 2011-12-13
    - Added a callback function in rule as 'recomputed'

0.16 2011-12-13
    - Changed API for coderef's subroutines in 'depends' of rules. Now first
      parameter is reference to CHI::Cascade::Rule object and other are
    - CHI::Cascade::Rule object now has a method 'cascade' which returns a
      CHI::Cascade instance for this rule. You can use it in 'depends'

0.15  2011-12-07
    - Corrections if cascade rules have a 'depends' option as coderef. Backward
      compatible. Now coderef can return arrayref of dependencies. Before it
      could return only one dependence as plain text. No tests yet for this
    - Tests are rewritten and optimised
    - Added a FastMmap driver's tests
    - Added tests when dependencies are coderef (t/lib/

0.14 2011-11-29
    - Improved tests in accordance with reports version 0.13
    - Fixed few misprints in Changes & TODO files

0.13 2011-11-18
    - Fix bug - sometimes generated warnging for trigger time (was undefined)
    - Now a compute code can throw die with CHI::Cascade::Value object - this value
      will be returned from run method but value will not be saved in cache as
      computed value
    - Improved a behavior with some buggy situations with cache (cache doesn't
      save a value by some reasons for example)

0.12 2011-11-14
    - More stable version as i think ;-) Please use it
    - Improved signal handling in tests (for memcached killing)
    - Fixed bug - dependencies as sub {} didn't get a qr_params properly
    - Fixed rule's bug

0.11 2011-11-14
    - Fixed bug (sometime dead locks were after target locking)
    - Added 'busy_lock' option in contructor and to 'rule' method
    - All 'set's in cache executed with expire as 'never' (excluding locking of

0.1 2011-11-14
    - Changed API of execution 'code' of rules
    - Now you can use instances of CHI::Cascade::Rule in your target codes
    - Now you can pass any parameters to target codes described in rules

0.05 2011-11-12
    - More improved the test t/03_memcached_multi.t
    - Tests with memcached for root user are not started (passed)
      Now they are started
    - More ready distributive

0.03 2011-11-11
    - Fixed bugs in tests (for example not be stopped memcached)
    - New test - multi-process reading/getting from memcached (with forks)
    - Added documentation about constructor and methods.

0.02 2011-11-11
    - Added repo meta info of repository
    - few changes of Makefile.PL ('README' file is generated by auto)
    - Added 'Changes' file ;-)
    - Added TODO file

0.01 2011-11-10
    - First release