File: TODO

package info (click to toggle)
libset-infinite-perl 0.65-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 296 kB
  • sloc: perl: 2,401; makefile: 2
file content (131 lines) | stat: -rw-r--r-- 3,727 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
Set::Infinite TODO 

- include "backtrack_callback" in the parameter list for _function() 

- document the "separators" method - use example from t/infinite.t
  Find out how to make it more user friendly.

- quantize() should use "iterate"
  (unless this breaks _quantize_span)
  Find out how to unify "quantize" and the "_recurrence" module (DT::Set)

- spaceship should return "undef" if the sets can't be compared.
- "contains" should test the result of "==" for undef.
- count() should return "undef" if the set can't be counted.

- test new methods

- methods:
  is_infinite
  exists( sub ) / any / ...

- Deprecate min_a()
  min() should check "wantarray", instead.
  This can generate confusion in some cases - verify this.

- New methods: map / grep
  From a discussion with Andrew Pimlott and Dave Rolsky
  Find out how to implement "block" syntax 
  (" {} " instead of " sub{} ") -- use '&' prototype
  - test under 5.005_03
  
  update: It looks like this is not possible:
  http://www.perlmonks.org/index.pl?node_id=312978
  from perlsub:
  "Pretty much the exclusive domain of prototypes is to 
  make a perl sub act like a builtin. Once you call it 
  via $subref-> or &subname, you are no longer treating 
  it as a builtin and prototypes are ignored."

- Redo POD
- difference between "size" and "count"

- Change syntax: from Class::method to Class->method

Old TODO:

    - parser (another module)

    - _quantize_span should only be used inside backtrack()
      Implementing quantize() using iterator() should make 
      _quantize_span() unnecessary.

    - provide a constructor that allow for un-ordered and overlapping spans

    - verify and fix unbalanced trace_open/trace_close 

    - move (offset, quantize), or most of Arithmetic.pm, to Date::Set 
    - refactor "widgets" out of the main code. Maybe create
      a Set::Infinite::Widgets directory (offset, quantize).
    - give more standard names to Arithmetic.pm variables
    - implement "last of quantize"

    - remove _quantize_span()

    - a set with first == inf or last = -inf is an error!

    - tests for "iterate" min/max/first/last
      These may fail if "iterate" returns >= 2 elements
    - more tests for min/max/span/size on too_complex sets

    - find out how to compare "<=>" unbounded sets
    - try using first() in intersects() and "<=>"
    - test finding out min/max of integer open sets (see backtrack.t tests 2,3)

    - fix _todo/bigfloat, _todo/bigint

BACKTRACK

    backtrack.t:

	test backtrack on:
		iterate -- returning more than 1 element
		compact
                tolerance
                complement

	backtracking: implement remaining tests in backtrack.t
	verify results in backtrack.t

    backtracking: document backtracking resolution

SYNTAX

	extra: Make a 'strict' option for "quantize" and other filters, 
	that will intersect
	each unit back to the object, that is:
	Interval:                     [************************]
	Quantized:                [*********)[*********)[*********)
	Quantized->Stricted:          [*****)[*********)[******]

	think about: "push-pop", "dup", "drop" mechanism

	think about: some "if-else" mechanism

DOCUMENTATION

	check: POD formatting and contents 

	verify, document parameter syntax everywhere

	document:
		??? offset option 'mode=>circle'
		new method 'list'
		iterate

        document as "internal":
                min_a
                max_a
                backtrack
	        trace

	??? document: quantize extensibility through hash-subs

CACHEING

	cache quantize by month/day/...
	-- doesn't work if 'quant' is changed
	-- doesn't check 'intersects'
	make a 'flush'-cache method. Make a 'cache-registry'.
	think about: caching for union, etc