Revision history for Perl extension Set::Infinite.
0.36_36
complement backtracks, although not it might fail for some sets
(not tested at all!)
min/max/span/size are estimated for complex sets
might work for select() too.
list(), <=> carp for unbounded sets
0.36_11
backtrack method call is cleaner
0.36_10
_simple_intersection removed.
_simple_complement with parameter removed.
0.36_09
offset strict option removed. Was never used.
0.36_08
Set::Infinite::ICalset and S::I::ICal removed. use Date::Set instead.
0.36_07
Simple class renamed to _Simple; creates methods inside Set::Infinite
$self->new() creates an empty set, and copies private variables
from $self. This makes new() inheritance easier.
0.36
added 'copy' in order to allow 'subroutine-style' programming
instead of only 'functional' programming
added 'is_too_complex'
obsoleted modules: Set::Infinite::Date, Set::Infinite::ICal, Set::Infinite::ICalSet
use Date::Set instead.
added make_htmldoc.pl and make_readme.pl
0.34
added 'weekdays' option to 'offset'
0.31-0.33
some optimizations
offset is no longer 'tied' in order to try to make it faster
offset now *always* return an ordered set
quantize has better memoization control
0.30
optimized 'is_null' - avoids converting data to string
fixed examples - foreach needs ->list
fixed tests - thanks CPAN testers!
move 'type', 'tolerance', 'real', 'integer' from Simple.pm to Set::Infinite.pm
simpler 'contains'
removed tie code from Infinite.pm and Infinite::Simple.pm
0.29
new method 'compact'
offset option 'mode=>circle'
new method 'list'
new method 'no_cleanup'
offset can handle months, years
offset value must be array with even number of elements
select 'freq' default is set-size instead of 1.
removed internal 'compact_array'
join (" ", $a) no longer works. use join (" ", $a->list) instead.
quantize(10) no longer works. use quantize(quant=>10) instead.
ical_2: BYMONTHDAY did not instantiate in ical_2 unless 'print'
-- offset can't return array.
0.28
'strict' option in offset, select.
'strict=>0' option in quantize.
offset can handle 'negative counts from end'
0.27
offset 'value' can handle multiple value-pairs
optimized $class->new() instead of $class->new($self) in select, offset, quantize.
0.26
lots of problems due to $a->{list}->[$ia]->{a}
-- used a temp variable to split in smaller parts
new eg/ical.pl oo demo
marked 'select{interval}' option to be deleted in next release
select now properly handles negative by[]; checks parent index boundaries
masked errors in select by using a dummy variable.
cache Quantize_Date::FETCH (local to object)
user can 'push' new methods into 'quantize'
new 'iterate' method
better oo in Infinite.pm - most methods can now be overriden
array syntax corrected in Infinite.pm
new TRACE/trace and DEBUG_BT to help debug
0.25
backtracking fully implemented in: intersection, intersects, union, offset.
backtracking partially implemented in: quantize, select
backtracking is NOT implemented in: complement, size, span, max, min
See: backtrack.t
'epoch' support in core module. Doesn't need Date or ICal.
intersection was missing 'my $b;'
Date::sub propagates {mode}
use hash-subs to initialize quantize units
'quantize_date' uses 'one' as default unit
doesn't use Quantize.pm anymore, since Quantize_Date.pm is a superset.
doesn't need 'quantizer, selector, offsetter' either.
remove 'cmp' (thanks Martijn)
internal cache for Date and ICal object
0.24
offset has 'unit' parameter
'epoch' removed. use 0+ instead.
Quantize_Date is an extension of Quantize.
quantize, select, offset return a compact array of Set::Infinite instead of a sparse array of Set::Infinite::Simple
- no longer needs to test for null elements.
0.23
changed localtime to gmtime everywhere
new object type: ICal. Requires Date::ICal; marked as experimental
This module will not be tested if it can't find Date::ICal
new date method: epoch
0.22.05
doesn't need HTTP::Date
offset supports hours, in 'Date' type
put "eg/recurring.pl" in distribution. (should be there since 0.21)
new "Function.pm" base class for functions.
Used Funtion.pm for "Select.pm" and "Offset.pm"
Much better algorithm for "Select.pm"
stricter language for "quantize" - only hash allowed.
reduced "Simple.pm" - may be deprecated someday
Faster cleanup, max, min
Cleaner (faster?) union
0.21
new methods: "select" and "offset".
syntax changed: "quantize":
quantize( 1 ); # old syntax, still works
quantize( quant => 1 );
quantize( 'months', 1 ); # old syntax for quantize_date, still works
quantize( unit => 'seconds', quant => 1 ); # quantize_date
internal: quantize parameter order is different.
fixed: Quantize_Date returned Set::Infinite instead of Set::Infinite::Simple
fixed: Date::Add lost format
new: Set::Infinite::Date::day_size()
added: recursive test for quantize
changed: empty return value for quantize is "null" instead of ""; then
changed "null" name to "" :)
0.20
local "type"
0.18, 0.19
Set::Infinite::Element not used anymore.
2.3x speed improvement in tests over version 0.14.
0.17
Correction in Simple.pm line-ending, and TODO filename on Windows
Element_Inf and Date.pm test for undefined parameters on OpenBSD
0.16
40% speed improvement in tests over version 0.14.
0.15
20% speed improvement in tests over version 0.14.
bigint.t fails; moved to 'todo' directory.
`Date' fails in OpenBSD. Doesn't fail in linux or Windows.
0.14
Problems with Bigfloat tests - can't fix them. Moved to `todo' directory.
Fixed Bigint tests and warnings in other tests.
0.13
Simple.pm and Element.pm:
Corrected many warnings related to testing undef values on hash
Quantize.pm and Quantize_Date.pm
work on real sized chunks too - don't use `%' integer module operation.
Infinite.pm
quantize returns tied array. It can be used directly with `foreach'.
Pod and tests corrected.
Infinite.pm
Accepts slices as input. There are syntax problems - see "CAVEATS" in pod.
tests added.
Simple.pm
Will not cleanup if acessed as tied array, until both a and b are defined or a method is called,
so that we can set a, then b.
0.12
Correction in Set::Infinite::Simple::intersection
[5..5) is null
New function: quantize
0.11
Set::Infinite
Copyright message
Set::Infinite Line 8:
# use AutoLoader qw(AUTOLOAD);
Deep recursion on subroutine "Set::Infinite::add" at h:/util/Perl/site/lib/Set/Infinite.pm line 318.
Deep recursion on subroutine "Set::Infinite::Simple::new" at h:/util/Perl/site/lib/Set/Infinite.pm line 184.
solution:
Set::Infinite::Element->type and
Set::Infinite::Date->date_format
use `pop' instead of `shift', or read parameters
0.01 Mon May 14 14:43:09 2001
- made Makefile.PL; v.0.010