Completely changed the way the XPath evaluation is done, likely to break
stuff like libxslt right now:
- Makefile.am: detect XPath memleaks in regreson tests
- error.c: fixed and error w.r.t. error reporting still using
  stderr
- hash.c: added new line at end of file
- tree.h: minor cleanup
- xpath.[ch] xpointer.[ch]: Major changes ! Separated XPath
  expression parsing from evaluation, resulted in a number of
  changes internally, and in XPointer. Likely to break stuff
  using xpathInternals.h but should remain binary compatible,
  new interfaces will be added.
Daniel
diff --git a/include/libxml/xpath.h b/include/libxml/xpath.h
index f8fd861..d7e23d1 100644
--- a/include/libxml/xpath.h
+++ b/include/libxml/xpath.h
@@ -221,6 +221,13 @@
 };
 
 /*
+ * The structure of a compiled expression form is not public
+ */
+
+typedef struct _xmlXPathCompExpr xmlXPathCompExpr;
+typedef xmlXPathCompExpr *xmlXPathCompExprPtr;
+
+/*
  * An XPath parser context, it contains pure parsing informations,
  * an xmlXPathContext, and the stack of objects.
  */
@@ -230,6 +237,8 @@
 
     int error;				/* error code */
 
+    xmlXPathCompExprPtr comp;		/* the precompiled expression */
+
     xmlXPathContextPtr  context;	/* the evaluation context */
     xmlXPathObjectPtr     value;	/* the current value */
     int                 valueNr;	/* number of values stacked */