Revision history for Perl extension Number::Range::Regexp 0.31 Oct 21 14:34:26 EDT 2012 r3171 - various fixes and tests for negative numbers - init_opts defaults to default_opts, not empty hashref - save opts given at new() time in $self - add tests for invert(empty) == universal and invert(universal) == empty - fix bug in invert() on ranges not bounded with a max - multi_union() now returns an empty_range when given no arguments - fix some hard to track down edge cases in sectionify() that were triggered e.g. when doing set ops on ranges that touched but did not overlap - handle buggy rangespecs appropriately (eg "-3 -2..-1") - start using inf.pm to fix bugs with non-libc glibc (win32 and solaris at least): http://www.cpantesters.org/cpan/report/5e73b674-6ca0-1014-9aa7-d95518fa49ba http://www.cpantesters.org/cpan/report/f432d580-1921-11e2-bdcc-373e3b6b8117 0.30 Oct 17 11:41:24 EDT 2012 r3143 - support for rangespec() with arguments of '-inf', '+inf' - implement & document is_infinite() - improve scope mangling in Util::most() - proper operations of all utility functions with infinite values - fix bug in xor affecting simple ranges - implement NRR::Util::inf to support arithmetic on potentially infinite values (perl's implementation is dodgy on 5.[68].X and with certain libc implementations) - restructure to eliminate a separate InfiniteRange.pm, saving ~150 lines of code - POD improvements 0.20 Oct 3 17:34:01 EDT 2012 r3074 - fairly complete implementation - just missing intersect/subtract/xor on compound, infinite ranges. - support for negative integers - proper support for infinite ranges in all codepaths - new set operation: not()/invert() - allow whitespace in rangespecs: "3..5,7..9" == "3..5, 7..9" - fix regex_range() with options before call to init() - document NRR::Iterator, add $iterator->seek( number ) - various under the hood improvements wrt maintenance 0.13 Sep 22 22:21:07 EDT 2012 r2970 - graceful but ugly degradation: string context will give regex() output when overload can't distinguish between regex and string context (overload < v1.10, or equivalently, perl < v5.12) - more readable, less verbose CompoundRange regex commenting (since we include the CompoundRange::to_string() output, don't need it from each SimpleRange therein) - overhaul POD, documenting all functionality - support perl 5.6.x - overload.pm now required since it's been available with perl since 5.5.x or earlier) - regex_range() deprecated - add META.yml, README - less verbose regex commenting for CompoundRanges 0.12 Sep 21 00:36:38 EDT 2012 r2945 - overload ranges such that ->regex() and ->to_string() are implied depending on context (in a regex or string respectively), update POD and tests accordingly 0.11 Sep 20 23:37:45 EDT 2012 r2940 - regex_range( ... ) deprecated in favor of range( ... )->regex - range & rangespec exported by default - implement contains() to check for range membership w/o regexification - document iterators - common, fast implementation of all set ops (except union) - implement to_string() to describe ranges - EmptyRange->to_string() is now an empty string for consistency - seemlessly promote SimpleRanges to CompoundRanges when necessary - EmptyRange->regex() is now a regex that does not match anything - unify option mangling code 0.09 Sep 19 18:31:36 EDT 2012 r2915 - NRR implements range() and rangespec() as recommended API - intersection, subtraction, xor implemented - EmptyRange->new()->regex() no longer dies - it now returns a regex that doesn't match anything - clearer inheritance - operate internally on SimpleRanges, not TrivialRanges. this allows for simpler code and faster operation (O(1) vs. O(lg n)) - implement iterators 0.08 Sep 10 15:47:15 EDT 2012 r2874 - object-orient-ify and implement union (intersect on the way) - use string ops to avoid fp-induced bugs with large numbers - thoroughly test 0..12 x 0..12 with regex_range() - add some more targetted test cases - refactor the two loops in regex_range to have parallel construction 0.07 Aug 29 21:23:23 2012 svn r2817 - readability: change e.g. '\d\d\d\d\d\d' to '\d{6}' - $opts->{readable} implemented - comment now works properly when min/max is undef 0.06 Aug 29 19:44:29 2012 - fix crash when regex_range() is called before init() 0.05 Tue Aug 28 22:20:42 2012 - silence a debug warning that was left enabled by accident 0.04 Tue Aug 28 21:44:08 2012 svn r2800 - auto-commenting implemented and enabled by default 0.03 Tue Aug 28 04:21:52 2012 svn r2794 - more exhaustive and informative test scripts 0.02 Thu Aug 23 13:45:23 2012 - no_leading_zeroes option implemented 0.01 Thu Aug 23 11:27:39 2012 - original version