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):
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