1                  ********
2                 *        *
3                 *  TODO  *
4                 *        *
5                  ********
6
7Lifetime of result Value Tree, make sure we keep pointers. Exslt
8handling of node set values is especially nasty in this respect,
9lots of potential mem leaks...
10
11Pattern tester:
12  -> try to optimize for ID scan and tests.
13
14Pattern scanner:
15  -> add error checks on all returns
16
17Sorting:
18  -> add lang and case-order
19  -> add foreign sorting functions (interfaces ?).
20
21                  ********
22                 *        *
23                 *  DONE  *
24                 *        *
25                  ********
26
27Design:
28  - should transforms for a given stylesheet be thread clean,
29    -> the precompilation now occur only at stylesheet processing
30       time (except the binding for named templates and extension
31       functions which need to be computed once at run-time).
32       Multiple threads should be able to reuse the same stylesheet
33       now.
34
35Embedding Stylesheets:
36  - example in 2.7 would force to validate, we do it by default now
37
38ID and Key support:
39  -> Done
40
41Extra functions:
42  -> document() should not be a problem since Result Tree Fragments are
43     implemented
44  => Done
45
46Templates:
47  -> check the built-in template rule for attributes
48  -> make sure @xxx matches are applied
49
50Contextual error reporting:
51  -> provide a couple of functions providing context analysis, not urgent
52
53Validity:
54  -> should we add validation by default ? Make this an option
55  -> redirrect validity errors
56  => done added a special parsing mode
57
58Import:
59  -> parse them
60  -> provide functions to circulate in the import tree of stylesheets
61  -> make sure we use the cascade wherever it's needed
62
63Extra functions:
64  -> make a separate module.
65  => done functions.[ch]
66
67Support Attribute value templates:
68  -> starts to be urgent. Design it in flexible ways but try to optimize
69     to handle most of it at the stylesheet parse time ...
70  => Done for the most part need to check all attributes in XSLT constructs
71     using them and use the dedicated readin function.
72  -> optimization by checking their existence at stylesheet parse time.
73  => done when building the preproc function
74
75Sorting:
76  -> add support for imbricated sorts
77  => done but not well tested.
78
79Separate util module:
80  -> macros, config, verbosity ?
81  => xsltutils.[ch]
82
83Support for disable-output-escaping="yes":
84  -> looks problematic, libxml has no support for anything like this,
85     and unless adding a new node type :-( or tweaking text node and
86     output routines this is gonna be messy ... must be handled at libxml
87     level.
88  => Done with a trick, text node name is different, requires > 2.2.11
89
90Pattern scanner:
91  -> compute priority
92  -> handle unions
93  -> support for mode
94  => done
95
96Pattern tester:
97  -> also put fast lookup for "text()", "comment()", "node()"
98     based patterns lists.
99  => done
100
101Support Attribute value templates:
102  -> namespace support for attribute value templates is not done, need
103     a small API redesign
104
105Doc:
106  - put a page at http://xmlsoft.org/XSLT/
107  - generate/transform the DocBook to HTML
108  - add HTML to package
109  - manpage and doc for xsltproc
110
111
112Error handling:
113  -> check the version stuff, design a separate module for error interfacing
114     and default handling, parsing vs. runtime, fatal / compat / warning,
115     and lack of optionnal features.
116  -> reports context
117
118ID and Key support:
119  -> done but namespace support in keys is not defined
120  -> make sure keys are recomputed on new document input
121
122Profiler:
123  -> added looks good enough
124  -> autocorrection of initial calibration loop
125