Revision history for Perl extension Number::Range::Regexp
0.32 Feb 21 14:29:26 EDT 2014 r3804
-
doc fix: to_string was misspelled. Thanks to George Wood of Qualcomm
for the report.
-
support for non-10 bases between 2 and 16, so you can say eg:
rangespec('8c..c8', {base => 16})->regex
and get something like:
/ 8[c-f] | [9-b][\da-f] | c[0-8] /
-
lots of internal reorganization, dead code trimming, simplification,
golfing, futureproofing, and nice-ification of code
-
fix behavior of iterators on empty ranges
-
eliminate EmptyRange.pm, add is_empty()
-
introduce handle-deprecated-cruft.pl to overwrite any old pms
that are no longer used
-
fix bug in _collapse_ranges when collapsing twice in a row
-
$opts->{allow_wildcard} no longer not necessary with rangespec()
or range() called with explicit arguments ('-inf', '+inf').
allow_wildcard is only necessary when called as range( undef, undef )
( which looks like range() )
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):
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