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