KNOWN BUGS
- the 'recurrence' argument should be $_, instead of $_[0].
This is too late to change, because there are many DateTime modules
that use it.
- 'set_time_zone' was published as a function, then as a mutator,
then as a function, then as a mutator.
It settled as a mutator.
TODO list for DT::Set, DT::Span, and DT::SpanSet
2004-11-29
- DateTime::SpanSet has no count() method
2004-07-03
- what happens if the recurrence function returns an 'undef' ?
(the program should die - add tests for this)
- this POD entry is not entirely correct, it should be tested/fixed:
The callbacks can return C<DateTime::Infinite::Future> and
C<DateTime::Infinite::Past> objects, in order to define
I<bounded recurrences>.
In this case, both 'next' and 'previous' callbacks must be defined:
- 'truncate' method ?
- add set_time_zone tests to Span & SpanSet
- add "mutability" tests for DT::Span, DT::SpanSet
see 02immutable.t
- implement add/subtract in DT::Span, DT::SpanSet
- implement start/end aliases in DT::Set
2004-06-25
- cleanup the examples in POD that use
return $_[0] if $_[0]->is_infinite;
and explain when and why to use this.
- add tests for all examples given.
-----------------
- Test for errors, in case the "next/previous"
recurrence spec is not followed (detect infinite loop).
Give a message like:
"A recurrence loop was detected. Check that you are using
the latest DateTime::Event module version"
Or, try to detect the error and automatically
"downgrade" DateTime::Set.
The problem is, the infinite loops happens
_inside_ next(). There seems to be no way to
detect this.
- implement set( locale => .. ) in Span and SpanSet
- Add tests for new methods: DateTime::SpanSet::map / grep
- discuss functions like
is_infinite
is_empty
- implement faster DT::Set::complement(),
using 'function composition'
- move all 'set-specific' code to Set::Infinite::_recurrence
use accessors instead of structure references
- functions like before(), after(), during() might be useful
in DT::Span
or maybe these should be called next(), previous(), current(), closest()
- document better:
how to transform a Span into an iterator - for example,
get the list of days in a span
- optimization: rewrite intersection of recurrences 'previous' function
- optimization: extract start_set / end_set right from
the data structure, if possible.