Revision history for Iterator-Flex 0.12 2021-10-05 17:40:04-04:00 America/New_York * First public release [INCOMPATIBILITY] * explicitly requires Perl v5.28 * yet another radical API change and refactoring. hopefully the last! [ENHANCEMENTS] * lots of documentation. still not complete * better handling of proxy iterators * beginning of error handling [TODO] * icycle should handle any rewindable iterator, not just arrays 0.11 2020-04-30 10:48:47-04:00 America/New_York [INCOMPATIBILITY] * explicitly requires Perl 5.10.0. [API_CHANGE] * native iterators must use the 'self' rather than 'set_self' attributes to provide access to the closed-over self. [REFACTOR] * new iterator exhaustion model cleanly separates exhaustion transition policies (return/throw) and handling imported iterables' policies (pass through, replace). * robust handling of imported iterables exhaustion sentinels or exceptions. [BUILD] * now uses Module::Build::Tiny 0.10 2018-09-16 18:21:49-04:00 America/New_York [REFACTOR] * Internal refactor to improve performance and simplify code * Iterator classes are constructed directly without requiring parsing of the attribute hash. * Only existing class based iterators should/can be frozen. * ITERATOR_BASE has been removed. The idea was never thought completely through. Still haven't worked out how to change base class for * on-the-fly creation of iterators is now in Factory. 0.09 2018-06-01 13:10:56-04:00 America/New_York [BUG FIX] * sequence iterator was not numerically stable for real number sequences, as it used repeated sums instead of a multiply. 0.08 2018-05-18 15:12:15-04:00 America/New_York [ENHANCEMENT] * new iterator, Cycle/icycle, cycles through an array. 0.07 2018-05-14 10:49:43-04:00 America/New_York [BUG FIX] * subsequent creation of iterators with a method did not incorporate the method 0.06 2018-05-07 12:21:27-04:00 America/New_York [BUG FIX] * method for detecting existing method roles was broken 0.05 2018-05-07 12:21:27-04:00 America/New_York [ENHANCEMENT] * arbitrary methods may be added to iterator classes 0.04 2018-05-04 17:21:15-04:00 America/New_York [BUG FIXES] * ifreeze properly handles exhausted predicates [ENHANCEMENT] * new iterator method "may", indicates if it and it's dependencies support a method. * more optimization; should make things faster (by some unknown amount) [INTERNAL CHANGES] * move implementation of iterators out of Flex and into separate classes. 0.03 2018-01-16 13:27:23-05:00 America/New_York [ BUG FIX ] * thawing an iproduct iterator with labeled iterator arguments was borken. 0.02 2018-01-16 13:27:23-05:00 America/New_York [ ENHANCEMENTS ] * new iterator functions: ifreeze, icache * new ':all' export tag * add support for current() method * new spec on what prev/current/next return as function of iterator state [ BUG FIXES ] * iproduct needs dependent iterators to have memory of last and current values when freezing. rewind() is renamed to reset(), and new rewind retains current/prev values. * iterator states were always set to when next was called. now the state is updated to only if it was . 0.01 2018-01-05 16:36:29-05:00 America/New_York * First release upon an unsuspecting world.