fixed problem with empty sets, etc. (see discussion on mailing list)
[platform/upstream/libxslt.git] / TODO
1                   ********
2                  *        *
3                  *  TODO  *
4                  *        *
5                   ********
6
7 Lifetime of result Value Tree, make sure we keep pointers. Exslt
8 handling of node set values is especially nasty in this respect,
9 lots of potential mem leaks...
10
11 Pattern tester:
12   -> try to optimize for ID scan and tests.
13
14 Pattern scanner:
15   -> add error checks on all returns
16
17 Sorting:
18   -> add lang and case-order
19   -> add foreign sorting functions (interfaces ?).
20
21                   ********
22                  *        *
23                  *  DONE  *
24                  *        *
25                   ********
26
27 Design:
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
35 Embedding Stylesheets:
36   - example in 2.7 would force to validate, we do it by default now
37
38 ID and Key support:
39   -> Done
40
41 Extra functions:
42   -> document() should not be a problem since Result Tree Fragments are
43      implemented
44   => Done
45
46 Templates:
47   -> check the built-in template rule for attributes
48   -> make sure @xxx matches are applied
49
50 Contextual error reporting:
51   -> provide a couple of functions providing context analysis, not urgent
52
53 Validity:
54   -> should we add validation by default ? Make this an option
55   -> redirrect validity errors
56   => done added a special parsing mode
57
58 Import:
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
63 Extra functions:
64   -> make a separate module.
65   => done functions.[ch]
66
67 Support 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
75 Sorting:
76   -> add support for imbricated sorts
77   => done but not well tested.
78
79 Separate util module:
80   -> macros, config, verbosity ?
81   => xsltutils.[ch]
82
83 Support 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
90 Pattern scanner:
91   -> compute priority
92   -> handle unions
93   -> support for mode
94   => done
95
96 Pattern tester:
97   -> also put fast lookup for "text()", "comment()", "node()"
98      based patterns lists.
99   => done
100
101 Support Attribute value templates:
102   -> namespace support for attribute value templates is not done, need
103      a small API redesign
104
105 Doc:
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
112 Error 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
118 ID and Key support:
119   -> done but namespace support in keys is not defined
120   -> make sure keys are recomputed on new document input
121
122 Profiler:
123   -> added looks good enough
124   -> autocorrection of initial calibration loop