Make the html trace tools use colors to represent the round at
authorKim Nguyễn <kn@lri.fr>
Tue, 23 Apr 2013 14:58:08 +0000 (16:58 +0200)
committerKim Nguyễn <kn@lri.fr>
Tue, 23 Apr 2013 15:00:31 +0000 (17:00 +0200)
which an node was satisfied.

src/ata.ml
src/ata.mli
src/eval.ml
src/html.ml
src/html.mli
tests/alphabet.xml.summary
tests/comments00.xml.summary
tests/xmark_small.xml.summary
tools/add_onclick.sh
tools/do_jaxp.sh

index 6a3570c..9fe128a 100644 (file)
@@ -14,7 +14,7 @@
 (***********************************************************************)
 
 (*
 (***********************************************************************)
 
 (*
-  Time-stamp: <Last modified on 2013-04-22 17:22:38 CEST by Kim Nguyen>
+  Time-stamp: <Last modified on 2013-04-23 15:12:29 CEST by Kim Nguyen>
 *)
 
 INCLUDE "utils.ml"
 *)
 
 INCLUDE "utils.ml"
@@ -199,6 +199,7 @@ type config = {
   unsat : StateSet.t;
   todo : TransList.t;
   summary : node_summary;
   unsat : StateSet.t;
   todo : TransList.t;
   summary : node_summary;
+  mutable round : int;
 }
 
 module Config = Hcons.Make(struct
 }
 
 module Config = Hcons.Make(struct
@@ -238,7 +239,8 @@ let dummy2 = TransList.cons
 let dummy_config = Config.make { sat = StateSet.empty;
                                  unsat = StateSet.empty;
                                  todo = TransList.nil;
 let dummy_config = Config.make { sat = StateSet.empty;
                                  unsat = StateSet.empty;
                                  todo = TransList.nil;
-                                 summary = dummy_summary
+                                 summary = dummy_summary;
+                                 round = 0
                                }
 
 
                                }
 
 
@@ -377,7 +379,6 @@ let simplify_atom atom pos q { Config.node=config; _ } =
       || ((not pos) && StateSet.mem q config.sat) then SFormula.false_
   else atom
 
       || ((not pos) && StateSet.mem q config.sat) then SFormula.false_
   else atom
 
-
 let eval_form phi fcs nss ps ss summary =
   let rec loop phi =
     begin match SFormula.expr phi with
 let eval_form phi fcs nss ps ss summary =
   let rec loop phi =
     begin match SFormula.expr phi with
@@ -441,7 +442,7 @@ let eval_trans auto fcs nss ps ss =
         let unsat = StateSet.union unsat (StateSet.diff removed kept) in
         (* States that were found once to be satisfiable remain so *)
         let unsat = StateSet.diff unsat sat in
         let unsat = StateSet.union unsat (StateSet.diff removed kept) in
         (* States that were found once to be satisfiable remain so *)
         let unsat = StateSet.diff unsat sat in
-        let new_config = Config.make { sat; unsat; todo ; summary = old_summary } in
+        let new_config = Config.make { sat; unsat; todo ; summary = old_summary ; round = 0 } in
         Cache.N4.add auto.cache4 oid fcsid nssid psid new_config;
         new_config
     in
         Cache.N4.add auto.cache4 oid fcsid nssid psid new_config;
         new_config
     in
index fd75e2e..0861773 100644 (file)
@@ -14,7 +14,7 @@
 (***********************************************************************)
 
 (*
 (***********************************************************************)
 
 (*
-  Time-stamp: <Last modified on 2013-04-22 15:08:54 CEST by Kim Nguyen>
+  Time-stamp: <Last modified on 2013-04-23 15:12:15 CEST by Kim Nguyen>
 *)
 
 type predicate =
 *)
 
 type predicate =
@@ -74,6 +74,7 @@ type config = {
   unsat : StateSet.t;
   todo : TransList.t;
   summary : node_summary;
   unsat : StateSet.t;
   todo : TransList.t;
   summary : node_summary;
+  mutable round : int;
 }
 
 module Config : Hcons.S with type data = config
 }
 
 module Config : Hcons.S with type data = config
index d0961d7..22a3b5f 100644 (file)
@@ -14,7 +14,7 @@
 (***********************************************************************)
 
 (*
 (***********************************************************************)
 
 (*
-  Time-stamp: <Last modified on 2013-04-23 14:53:43 CEST by Kim Nguyen>
+  Time-stamp: <Last modified on 2013-04-23 15:45:14 CEST by Kim Nguyen>
 *)
 
 INCLUDE "utils.ml"
 *)
 
 INCLUDE "utils.ml"
@@ -36,18 +36,21 @@ END
 
    let html tree node i config msg =
      let config = config.Ata.Config.node in
 
    let html tree node i config msg =
      let config = config.Ata.Config.node in
-     Html.trace (T.preorder tree node) i
-       "%s<br/>sat: %a<br/>unsat: %a<br/>todo: %a<br/>"
+     let oldi = config.Ata.round in
+     Html.trace (T.preorder tree node) i oldi
+       "%s<br/>sat: %a<br/>unsat: %a<br/>todo: %around: %i<br/>"
        msg
        StateSet.print config.Ata.sat
        StateSet.print config.Ata.unsat
        msg
        StateSet.print config.Ata.sat
        StateSet.print config.Ata.unsat
-       (Ata.TransList.print ~sep:"<br/>") config.Ata.todo
+       (Ata.TransList.print ~sep:"<br/>") config.Ata.todo oldi
 
 
   type cache = StateSet.t Cache.N1.t
   let get c t n = Cache.N1.find c (T.preorder t n)
 
 
 
   type cache = StateSet.t Cache.N1.t
   let get c t n = Cache.N1.find c (T.preorder t n)
 
-  let set c t n v = Cache.N1.add c (T.preorder t n) v
+  let set c t n v i =
+    v.Ata.Config.node.Ata.round <- i;
+    Cache.N1.add c (T.preorder t n) v
 
 
   let top_down_run auto tree node cache _i =
 
 
   let top_down_run auto tree node cache _i =
@@ -83,20 +86,20 @@ END
 
         TRACE(html tree node _i config1 "Updating transitions");
 
 
         TRACE(html tree node _i config1 "Updating transitions");
 
-        if config0 != config1 then set cache tree node config1;
+        if config0 != config1 then set cache tree node config1 _i;
         let () = loop fc in
         let fcs1 = get cache tree fc in
         let config2 = Ata.eval_trans auto fcs1 nss ps config1 in
 
         TRACE(html tree node _i config2 "Updating transitions (after first-child)");
 
         let () = loop fc in
         let fcs1 = get cache tree fc in
         let config2 = Ata.eval_trans auto fcs1 nss ps config1 in
 
         TRACE(html tree node _i config2 "Updating transitions (after first-child)");
 
-        if config1 != config2 then set cache tree node config2;
+        if config1 != config2 then set cache tree node config2 _i;
         let () = loop ns in
         let config3 = Ata.eval_trans auto fcs1 (get cache tree ns) ps config2 in
 
         TRACE(html tree node _i config3 "Updating transitions (after next-sibling)");
 
         let () = loop ns in
         let config3 = Ata.eval_trans auto fcs1 (get cache tree ns) ps config2 in
 
         TRACE(html tree node _i config3 "Updating transitions (after next-sibling)");
 
-        if config2 != config3 then set cache tree node config3;
+        if config2 != config3 then set cache tree node config3 _i;
         (* We do set the redo flat if : *)
         if not (
           config0 == config3 (* did not gain any new information *)
         (* We do set the redo flat if : *)
         if not (
           config0 == config3 (* did not gain any new information *)
@@ -128,6 +131,7 @@ END
                          Ata.unsat = StateSet.empty;
                          Ata.todo = Ata.TransList.nil;
                          Ata.summary = Ata.dummy_summary;
                          Ata.unsat = StateSet.empty;
                          Ata.todo = Ata.TransList.nil;
                          Ata.summary = Ata.dummy_summary;
+                         Ata.round = ~-1;
                        })
     in
     let redo = ref true in
                        })
     in
     let redo = ref true in
index 858b43f..4119f23 100644 (file)
@@ -3,39 +3,45 @@ module M = Map.Make(struct type t = int let compare = compare end)
 
 let info = Hashtbl.create 2017
 
 
 let info = Hashtbl.create 2017
 
+let max_round = ref ~-1
 
 
-let add_info (nodeid:int) (i:int) s =
-  let m = try Hashtbl.find info nodeid with Not_found -> M.empty in
-  let old_s = try M.find i m with Not_found -> "" in
-  let s' = old_s ^ s in
-  let m' = M.add i s' m in
-  Hashtbl.replace info nodeid m'
+let add_info (nodeid:int) (i:int) (oldi: int) s =
+  if i > !max_round then max_round := i;
+  if i <= oldi || oldi < 0 then begin
+    let m = try Hashtbl.find info nodeid with Not_found -> M.empty in
+    let old_s = try M.find i m with Not_found -> "" in
+    let s' = old_s ^ s in
+    let m' = M.add i s' m in
+    Hashtbl.replace info nodeid m'
+  end
 
 let buff = Buffer.create 20
 let fmt = formatter_of_buffer buff
 
 
 let buff = Buffer.create 20
 let fmt = formatter_of_buffer buff
 
-let trace nodeid i =
+let trace nodeid i oldi =
   let () = pp_print_flush fmt ();
     Buffer.clear buff
   in
   kfprintf (fun fmt ->
     pp_print_flush fmt ();
     let s = Buffer.contents buff in
   let () = pp_print_flush fmt ();
     Buffer.clear buff
   in
   kfprintf (fun fmt ->
     pp_print_flush fmt ();
     let s = Buffer.contents buff in
-    add_info nodeid i s) fmt
+    add_info nodeid i oldi s) fmt
 
 
 let gen_trace (type s)  = (); fun t tree ->
   let module T = (val (t) : Tree.S with type t = s) in
   let rec loop odot ohtml node parent =
     if node == T.nil then () else begin
 
 
 let gen_trace (type s)  = (); fun t tree ->
   let module T = (val (t) : Tree.S with type t = s) in
   let rec loop odot ohtml node parent =
     if node == T.nil then () else begin
-      let s_node = "node" ^ (string_of_int (T.preorder tree node)) in
-      fprintf odot "%s[ id=\"%s\" label=\"%s\"];\n"
-        s_node s_node (QName.to_string (T.tag tree node));
       let m =
         try
           Hashtbl.find info (T.preorder tree node)
         with Not_found -> M.empty
       in
       let m =
         try
           Hashtbl.find info (T.preorder tree node)
         with Not_found -> M.empty
       in
+      let last_round = try fst (M.max_binding m) with Not_found -> 0 in
+      let s_node = "node" ^ (string_of_int (T.preorder tree node)) in
+      fprintf odot "%s[ id=\"%s\" label=\"%s\" style=filled fillcolor=\"%f,1.0,1.0\"];\n"
+        s_node s_node (QName.to_string (T.tag tree node))
+        (0.2 *. (1.0 -. (float last_round /. float !max_round))) ;
       fprintf ohtml "data['%s'] = new Array();\n" s_node;
       M.iter
         (fun i s -> fprintf ohtml "data['%s'][%i] = '%s';\n" s_node i s)
       fprintf ohtml "data['%s'] = new Array();\n" s_node;
       M.iter
         (fun i s -> fprintf ohtml "data['%s'][%i] = '%s';\n" s_node i s)
index 660710e..a1506c9 100644 (file)
@@ -1,2 +1,2 @@
-val trace : int -> int -> ('a, Format.formatter, unit, unit) format4 -> 'a
+val trace : int -> int -> int -> ('a, Format.formatter, unit, unit) format4 -> 'a
 val gen_trace : (module Tree.S with type t = 'a) -> 'a -> unit
 val gen_trace : (module Tree.S with type t = 'a) -> 'a -> unit
index b84f81e..cc9ae7d 100644 (file)
@@ -1,11 +1,11 @@
 Query: A1 : //L/*
 Query: A1 : //L/*
-STATS: parsing xml document: 0.375986ms
-STATS: parsing XPath query: 0.036001ms
-STATS: compiling XPath query: 0.203133ms
+STATS: parsing xml document: 0.199080ms
+STATS: parsing XPath query: 0.056028ms
+STATS: compiling XPath query: 0.133991ms
 STATS: Query: /descendant-or-self::node()/child::L/child::* 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::L/child::* 
 STATS: Automaton: 
-STATS: evaluating query: 2.120018ms
-STATS: serializing results: 1.610041ms
+STATS: evaluating query: 0.764132ms
+STATS: serializing results: 1.646996ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 809 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 809 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -13,13 +13,13 @@ STATS: cache4: length: 933, used: 124, occupation: 0.132905
 Diff: ok
 -------------------------------------------
 Query: A2 : //L/parent::*
 Diff: ok
 -------------------------------------------
 Query: A2 : //L/parent::*
-STATS: parsing xml document: 0.386000ms
-STATS: parsing XPath query: 0.042915ms
-STATS: compiling XPath query: 0.164032ms
+STATS: parsing xml document: 0.370979ms
+STATS: parsing XPath query: 0.051022ms
+STATS: compiling XPath query: 0.166893ms
 STATS: Query: /descendant-or-self::node()/child::L/parent::* 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::L/parent::* 
 STATS: Automaton: 
-STATS: evaluating query: 1.954079ms
-STATS: serializing results: 1.950026ms
+STATS: evaluating query: 2.008915ms
+STATS: serializing results: 1.794100ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1310 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1310 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -27,13 +27,13 @@ STATS: cache4: length: 1464, used: 154, occupation: 0.105191
 Diff: ok
 -------------------------------------------
 Query: A3 : //L/descendant::*
 Diff: ok
 -------------------------------------------
 Query: A3 : //L/descendant::*
-STATS: parsing xml document: 0.361919ms
-STATS: parsing XPath query: 0.036955ms
-STATS: compiling XPath query: 0.213861ms
+STATS: parsing xml document: 0.369072ms
+STATS: parsing XPath query: 0.089884ms
+STATS: compiling XPath query: 0.217915ms
 STATS: Query: /descendant-or-self::node()/child::L/descendant::* 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::L/descendant::* 
 STATS: Automaton: 
-STATS: evaluating query: 2.192974ms
-STATS: serializing results: 1.615047ms
+STATS: evaluating query: 2.200127ms
+STATS: serializing results: 1.621008ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 918 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 918 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -41,13 +41,13 @@ STATS: cache4: length: 1060, used: 142, occupation: 0.133962
 Diff: ok
 -------------------------------------------
 Query: A4 : //L/descendant-or-self::*
 Diff: ok
 -------------------------------------------
 Query: A4 : //L/descendant-or-self::*
-STATS: parsing xml document: 0.368118ms
-STATS: parsing XPath query: 0.087023ms
-STATS: compiling XPath query: 0.189066ms
+STATS: parsing xml document: 0.438929ms
+STATS: parsing XPath query: 0.048876ms
+STATS: compiling XPath query: 0.180006ms
 STATS: Query: /descendant-or-self::node()/child::L/descendant-or-self::* 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::L/descendant-or-self::* 
 STATS: Automaton: 
-STATS: evaluating query: 2.336025ms
-STATS: serializing results: 1.883030ms
+STATS: evaluating query: 2.231836ms
+STATS: serializing results: 1.777887ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 918 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 918 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -55,13 +55,13 @@ STATS: cache4: length: 1060, used: 142, occupation: 0.133962
 Diff: ok
 -------------------------------------------
 Query: A5 : //L/ancestor::*
 Diff: ok
 -------------------------------------------
 Query: A5 : //L/ancestor::*
-STATS: parsing xml document: 0.364065ms
-STATS: parsing XPath query: 0.037909ms
-STATS: compiling XPath query: 0.165939ms
+STATS: parsing xml document: 0.365973ms
+STATS: parsing XPath query: 0.051022ms
+STATS: compiling XPath query: 0.172138ms
 STATS: Query: /descendant-or-self::node()/child::L/ancestor::* 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::L/ancestor::* 
 STATS: Automaton: 
-STATS: evaluating query: 2.583027ms
-STATS: serializing results: 2.183914ms
+STATS: evaluating query: 2.207994ms
+STATS: serializing results: 2.154827ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1320 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1320 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -69,13 +69,13 @@ STATS: cache4: length: 1476, used: 156, occupation: 0.105691
 Diff: ok
 -------------------------------------------
 Query: A6 : //L/ancestor-or-self::*
 Diff: ok
 -------------------------------------------
 Query: A6 : //L/ancestor-or-self::*
-STATS: parsing xml document: 0.574827ms
-STATS: parsing XPath query: 0.056028ms
-STATS: compiling XPath query: 0.334024ms
+STATS: parsing xml document: 0.367165ms
+STATS: parsing XPath query: 0.046968ms
+STATS: compiling XPath query: 0.205994ms
 STATS: Query: /descendant-or-self::node()/child::L/ancestor-or-self::* 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::L/ancestor-or-self::* 
 STATS: Automaton: 
-STATS: evaluating query: 3.679037ms
-STATS: serializing results: 2.243042ms
+STATS: evaluating query: 2.345800ms
+STATS: serializing results: 2.530098ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1242 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1242 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -83,13 +83,13 @@ STATS: cache4: length: 1397, used: 155, occupation: 0.110952
 Diff: ok
 -------------------------------------------
 Query: A7 : //L/following-sibling::*
 Diff: ok
 -------------------------------------------
 Query: A7 : //L/following-sibling::*
-STATS: parsing xml document: 0.149012ms
-STATS: parsing XPath query: 0.021935ms
-STATS: compiling XPath query: 0.066042ms
+STATS: parsing xml document: 0.364780ms
+STATS: parsing XPath query: 0.059128ms
+STATS: compiling XPath query: 0.162125ms
 STATS: Query: /descendant-or-self::node()/child::L/following-sibling::* 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::L/following-sibling::* 
 STATS: Automaton: 
-STATS: evaluating query: 0.725985ms
-STATS: serializing results: 1.456976ms
+STATS: evaluating query: 1.799107ms
+STATS: serializing results: 1.568079ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1051 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1051 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -97,13 +97,13 @@ STATS: cache4: length: 1173, used: 122, occupation: 0.104007
 Diff: ok
 -------------------------------------------
 Query: A8 : //L/preceding-sibling::*
 Diff: ok
 -------------------------------------------
 Query: A8 : //L/preceding-sibling::*
-STATS: parsing xml document: 0.148058ms
-STATS: parsing XPath query: 0.023842ms
-STATS: compiling XPath query: 0.062943ms
+STATS: parsing xml document: 0.370979ms
+STATS: parsing XPath query: 0.053883ms
+STATS: compiling XPath query: 0.162840ms
 STATS: Query: /descendant-or-self::node()/child::L/preceding-sibling::* 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::L/preceding-sibling::* 
 STATS: Automaton: 
-STATS: evaluating query: 0.781059ms
-STATS: serializing results: 1.357079ms
+STATS: evaluating query: 1.916885ms
+STATS: serializing results: 4.055023ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1174 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1174 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -111,13 +111,13 @@ STATS: cache4: length: 1314, used: 140, occupation: 0.106545
 Diff: ok
 -------------------------------------------
 Query: A9 : //L/following::*
 Diff: ok
 -------------------------------------------
 Query: A9 : //L/following::*
-STATS: parsing xml document: 0.370979ms
-STATS: parsing XPath query: 0.042915ms
-STATS: compiling XPath query: 0.288963ms
+STATS: parsing xml document: 0.372887ms
+STATS: parsing XPath query: 0.051022ms
+STATS: compiling XPath query: 0.334978ms
 STATS: Query: /descendant-or-self::node()/child::L/ancestor-or-self::node()/following-sibling::node()/descendant-or-self::* 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::L/ancestor-or-self::node()/following-sibling::node()/descendant-or-self::* 
 STATS: Automaton: 
-STATS: evaluating query: 6.980896ms
-STATS: serializing results: 1.842976ms
+STATS: evaluating query: 6.406069ms
+STATS: serializing results: 1.731873ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 2104 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 2104 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -125,13 +125,13 @@ STATS: cache4: length: 2334, used: 230, occupation: 0.098543
 Diff: ok
 -------------------------------------------
 Query: A10 : //L/preceding::*
 Diff: ok
 -------------------------------------------
 Query: A10 : //L/preceding::*
-STATS: parsing xml document: 0.371933ms
-STATS: parsing XPath query: 0.046968ms
-STATS: compiling XPath query: 0.277996ms
+STATS: parsing xml document: 0.368118ms
+STATS: parsing XPath query: 0.054836ms
+STATS: compiling XPath query: 0.283003ms
 STATS: Query: /descendant-or-self::node()/child::L/ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::* 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::L/ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::* 
 STATS: Automaton: 
-STATS: evaluating query: 8.105993ms
-STATS: serializing results: 1.837969ms
+STATS: evaluating query: 7.886887ms
+STATS: serializing results: 1.865149ms
 STATS: 2 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 942 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
 STATS: 2 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 942 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
@@ -139,13 +139,13 @@ STATS: cache4: length: 1077, used: 135, occupation: 0.125348
 Diff: ok
 -------------------------------------------
 Query: A11 : //L/self::*
 Diff: ok
 -------------------------------------------
 Query: A11 : //L/self::*
-STATS: parsing xml document: 0.518084ms
-STATS: parsing XPath query: 0.062943ms
-STATS: compiling XPath query: 0.202179ms
+STATS: parsing xml document: 0.392914ms
+STATS: parsing XPath query: 0.047922ms
+STATS: compiling XPath query: 0.177145ms
 STATS: Query: /descendant-or-self::node()/child::L/self::* 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::L/self::* 
 STATS: Automaton: 
-STATS: evaluating query: 1.765013ms
-STATS: serializing results: 1.644850ms
+STATS: evaluating query: 1.735926ms
+STATS: serializing results: 1.796961ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 837 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 837 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -153,13 +153,13 @@ STATS: cache4: length: 946, used: 109, occupation: 0.115222
 Diff: ok
 -------------------------------------------
 Query: A12 : //L/@id/parent::*
 Diff: ok
 -------------------------------------------
 Query: A12 : //L/@id/parent::*
-STATS: parsing xml document: 0.440121ms
-STATS: parsing XPath query: 0.053883ms
-STATS: compiling XPath query: 0.241041ms
+STATS: parsing xml document: 0.378132ms
+STATS: parsing XPath query: 0.059843ms
+STATS: compiling XPath query: 0.287056ms
 STATS: Query: /descendant-or-self::node()/child::L/attribute::@id/parent::* 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::L/attribute::@id/parent::* 
 STATS: Automaton: 
-STATS: evaluating query: 3.050089ms
-STATS: serializing results: 1.691103ms
+STATS: evaluating query: 2.931833ms
+STATS: serializing results: 1.657963ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1594 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1594 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -167,13 +167,13 @@ STATS: cache4: length: 1750, used: 156, occupation: 0.089143
 Diff: ok
 -------------------------------------------
 Query: P1 : //*[L]
 Diff: ok
 -------------------------------------------
 Query: P1 : //*[L]
-STATS: parsing xml document: 0.403881ms
+STATS: parsing xml document: 0.357866ms
 STATS: parsing XPath query: 0.046968ms
 STATS: parsing XPath query: 0.046968ms
-STATS: compiling XPath query: 0.208855ms
+STATS: compiling XPath query: 0.152111ms
 STATS: Query: /descendant-or-self::node()/child::*[ child::L ] 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::*[ child::L ] 
 STATS: Automaton: 
-STATS: evaluating query: 2.264977ms
-STATS: serializing results: 1.861095ms
+STATS: evaluating query: 1.730204ms
+STATS: serializing results: 1.868010ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1326 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1326 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -181,13 +181,13 @@ STATS: cache4: length: 1480, used: 154, occupation: 0.104054
 Diff: ok
 -------------------------------------------
 Query: P2 : //*[parent::L]
 Diff: ok
 -------------------------------------------
 Query: P2 : //*[parent::L]
-STATS: parsing xml document: 0.488997ms
-STATS: parsing XPath query: 0.049829ms
-STATS: compiling XPath query: 0.171900ms
+STATS: parsing xml document: 0.372171ms
+STATS: parsing XPath query: 0.052929ms
+STATS: compiling XPath query: 0.166893ms
 STATS: Query: /descendant-or-self::node()/child::*[ parent::L ] 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::*[ parent::L ] 
 STATS: Automaton: 
-STATS: evaluating query: 1.897097ms
-STATS: serializing results: 1.640081ms
+STATS: evaluating query: 1.759052ms
+STATS: serializing results: 1.687050ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 809 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 809 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -195,13 +195,13 @@ STATS: cache4: length: 933, used: 124, occupation: 0.132905
 Diff: ok
 -------------------------------------------
 Query: P3 : //*[descendant::L]
 Diff: ok
 -------------------------------------------
 Query: P3 : //*[descendant::L]
-STATS: parsing xml document: 0.370026ms
-STATS: parsing XPath query: 0.042915ms
-STATS: compiling XPath query: 0.175953ms
+STATS: parsing xml document: 0.368834ms
+STATS: parsing XPath query: 0.045776ms
+STATS: compiling XPath query: 0.169039ms
 STATS: Query: /descendant-or-self::node()/child::*[ descendant::L ] 
 STATS: Automaton: 
 STATS: evaluating query: 1.796007ms
 STATS: Query: /descendant-or-self::node()/child::*[ descendant::L ] 
 STATS: Automaton: 
 STATS: evaluating query: 1.796007ms
-STATS: serializing results: 2.020121ms
+STATS: serializing results: 2.280951ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1336 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1336 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -209,13 +209,13 @@ STATS: cache4: length: 1492, used: 156, occupation: 0.104558
 Diff: ok
 -------------------------------------------
 Query: P4 : //*[descendant-or-self::L]
 Diff: ok
 -------------------------------------------
 Query: P4 : //*[descendant-or-self::L]
-STATS: parsing xml document: 0.371933ms
-STATS: parsing XPath query: 0.043869ms
-STATS: compiling XPath query: 0.185966ms
+STATS: parsing xml document: 0.386953ms
+STATS: parsing XPath query: 0.049829ms
+STATS: compiling XPath query: 0.176907ms
 STATS: Query: /descendant-or-self::node()/child::*[ descendant-or-self::L ] 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::*[ descendant-or-self::L ] 
 STATS: Automaton: 
-STATS: evaluating query: 2.321959ms
-STATS: serializing results: 2.125025ms
+STATS: evaluating query: 2.150059ms
+STATS: serializing results: 2.135992ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1242 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1242 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -223,13 +223,13 @@ STATS: cache4: length: 1397, used: 155, occupation: 0.110952
 Diff: ok
 -------------------------------------------
 Query: P5 : //*[ancestor::L]
 Diff: ok
 -------------------------------------------
 Query: P5 : //*[ancestor::L]
-STATS: parsing xml document: 0.358820ms
-STATS: parsing XPath query: 0.041962ms
-STATS: compiling XPath query: 0.192881ms
+STATS: parsing xml document: 0.374079ms
+STATS: parsing XPath query: 0.050068ms
+STATS: compiling XPath query: 0.192165ms
 STATS: Query: /descendant-or-self::node()/child::*[ ancestor::L ] 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::*[ ancestor::L ] 
 STATS: Automaton: 
-STATS: evaluating query: 1.881123ms
-STATS: serializing results: 1.569033ms
+STATS: evaluating query: 1.835823ms
+STATS: serializing results: 1.564980ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 918 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 918 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -237,13 +237,13 @@ STATS: cache4: length: 1060, used: 142, occupation: 0.133962
 Diff: ok
 -------------------------------------------
 Query: P6 : //*[ancestor-or-self::L]
 Diff: ok
 -------------------------------------------
 Query: P6 : //*[ancestor-or-self::L]
-STATS: parsing xml document: 0.365973ms
-STATS: parsing XPath query: 0.043869ms
-STATS: compiling XPath query: 0.189066ms
+STATS: parsing xml document: 0.431061ms
+STATS: parsing XPath query: 0.049114ms
+STATS: compiling XPath query: 0.180960ms
 STATS: Query: /descendant-or-self::node()/child::*[ ancestor-or-self::L ] 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::*[ ancestor-or-self::L ] 
 STATS: Automaton: 
-STATS: evaluating query: 2.273083ms
-STATS: serializing results: 1.817942ms
+STATS: evaluating query: 1.905918ms
+STATS: serializing results: 1.775026ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 918 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 918 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -251,13 +251,13 @@ STATS: cache4: length: 1060, used: 142, occupation: 0.133962
 Diff: ok
 -------------------------------------------
 Query: P7 : //*[following-sibling::L]
 Diff: ok
 -------------------------------------------
 Query: P7 : //*[following-sibling::L]
-STATS: parsing xml document: 0.370026ms
-STATS: parsing XPath query: 0.044107ms
-STATS: compiling XPath query: 0.164032ms
+STATS: parsing xml document: 0.376940ms
+STATS: parsing XPath query: 0.046015ms
+STATS: compiling XPath query: 0.154972ms
 STATS: Query: /descendant-or-self::node()/child::*[ following-sibling::L ] 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::*[ following-sibling::L ] 
 STATS: Automaton: 
-STATS: evaluating query: 1.653910ms
-STATS: serializing results: 1.550913ms
+STATS: evaluating query: 1.612902ms
+STATS: serializing results: 1.538992ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1174 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1174 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -265,13 +265,13 @@ STATS: cache4: length: 1314, used: 140, occupation: 0.106545
 Diff: ok
 -------------------------------------------
 Query: P8 : //*[preceding-sibling::L]
 Diff: ok
 -------------------------------------------
 Query: P8 : //*[preceding-sibling::L]
-STATS: parsing xml document: 0.367880ms
-STATS: parsing XPath query: 0.049114ms
-STATS: compiling XPath query: 0.164986ms
+STATS: parsing xml document: 0.437021ms
+STATS: parsing XPath query: 0.058889ms
+STATS: compiling XPath query: 0.155210ms
 STATS: Query: /descendant-or-self::node()/child::*[ preceding-sibling::L ] 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::*[ preceding-sibling::L ] 
 STATS: Automaton: 
-STATS: evaluating query: 1.538992ms
-STATS: serializing results: 1.570940ms
+STATS: evaluating query: 1.534939ms
+STATS: serializing results: 1.504898ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1051 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1051 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -279,13 +279,13 @@ STATS: cache4: length: 1173, used: 122, occupation: 0.104007
 Diff: ok
 -------------------------------------------
 Query: P9 : //*[following::L]
 Diff: ok
 -------------------------------------------
 Query: P9 : //*[following::L]
-STATS: parsing xml document: 0.445127ms
-STATS: parsing XPath query: 0.042915ms
-STATS: compiling XPath query: 0.234127ms
+STATS: parsing xml document: 0.350952ms
+STATS: parsing XPath query: 0.050068ms
+STATS: compiling XPath query: 0.226021ms
 STATS: Query: /descendant-or-self::node()/child::*[ ancestor-or-self::node()/following-sibling::node()/descendant-or-self::L ] 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::*[ ancestor-or-self::node()/following-sibling::node()/descendant-or-self::L ] 
 STATS: Automaton: 
-STATS: evaluating query: 7.771015ms
-STATS: serializing results: 1.768112ms
+STATS: evaluating query: 6.453037ms
+STATS: serializing results: 1.742840ms
 STATS: 2 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 780 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
 STATS: 2 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 780 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
@@ -293,13 +293,13 @@ STATS: cache4: length: 915, used: 135, occupation: 0.147541
 Diff: ok
 -------------------------------------------
 Query: P10 : //*[preceding::L]
 Diff: ok
 -------------------------------------------
 Query: P10 : //*[preceding::L]
-STATS: parsing xml document: 0.387192ms
-STATS: parsing XPath query: 0.058889ms
-STATS: compiling XPath query: 0.237942ms
+STATS: parsing xml document: 0.368118ms
+STATS: parsing XPath query: 0.055075ms
+STATS: compiling XPath query: 0.227928ms
 STATS: Query: /descendant-or-self::node()/child::*[ ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::L ] 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::*[ ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::L ] 
 STATS: Automaton: 
-STATS: evaluating query: 4.338026ms
-STATS: serializing results: 1.936913ms
+STATS: evaluating query: 3.612041ms
+STATS: serializing results: 1.841068ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1767 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1767 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -307,13 +307,13 @@ STATS: cache4: length: 1980, used: 213, occupation: 0.107576
 Diff: ok
 -------------------------------------------
 Query: P11 : //*[self::L]
 Diff: ok
 -------------------------------------------
 Query: P11 : //*[self::L]
-STATS: parsing xml document: 0.246048ms
-STATS: parsing XPath query: 0.040054ms
-STATS: compiling XPath query: 0.104904ms
+STATS: parsing xml document: 0.166178ms
+STATS: parsing XPath query: 0.030041ms
+STATS: compiling XPath query: 0.080109ms
 STATS: Query: /descendant-or-self::node()/child::*[ self::L ] 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::*[ self::L ] 
 STATS: Automaton: 
-STATS: evaluating query: 0.613928ms
-STATS: serializing results: 1.585007ms
+STATS: evaluating query: 0.607967ms
+STATS: serializing results: 1.639128ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 837 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 837 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -321,13 +321,13 @@ STATS: cache4: length: 946, used: 109, occupation: 0.115222
 Diff: ok
 -------------------------------------------
 Query: P12 : //*[@id]
 Diff: ok
 -------------------------------------------
 Query: P12 : //*[@id]
-STATS: parsing xml document: 0.401974ms
-STATS: parsing XPath query: 0.066042ms
-STATS: compiling XPath query: 0.286818ms
+STATS: parsing xml document: 0.366926ms
+STATS: parsing XPath query: 0.043869ms
+STATS: compiling XPath query: 0.211954ms
 STATS: Query: /descendant-or-self::node()/child::*[ attribute::@id ] 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::*[ attribute::@id ] 
 STATS: Automaton: 
-STATS: evaluating query: 1.514912ms
-STATS: serializing results: 2.412796ms
+STATS: evaluating query: 1.461983ms
+STATS: serializing results: 2.345085ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 907 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 907 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -335,13 +335,13 @@ STATS: cache4: length: 1022, used: 115, occupation: 0.112524
 Diff: ok
 -------------------------------------------
 Query: T1 : //L/text()
 Diff: ok
 -------------------------------------------
 Query: T1 : //L/text()
-STATS: parsing xml document: 0.167847ms
-STATS: parsing XPath query: 0.054121ms
-STATS: compiling XPath query: 0.205994ms
+STATS: parsing xml document: 0.365973ms
+STATS: parsing XPath query: 0.055075ms
+STATS: compiling XPath query: 0.200987ms
 STATS: Query: /descendant-or-self::node()/child::L/child::text() 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::L/child::text() 
 STATS: Automaton: 
-STATS: evaluating query: 2.181053ms
-STATS: serializing results: 1.456022ms
+STATS: evaluating query: 2.068043ms
+STATS: serializing results: 1.474857ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 809 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 809 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -349,13 +349,13 @@ STATS: cache4: length: 933, used: 124, occupation: 0.132905
 Diff: ok
 -------------------------------------------
 Query: T2 : //L/comment()
 Diff: ok
 -------------------------------------------
 Query: T2 : //L/comment()
-STATS: parsing xml document: 0.375986ms
-STATS: parsing XPath query: 0.061035ms
-STATS: compiling XPath query: 0.207901ms
+STATS: parsing xml document: 0.478983ms
+STATS: parsing XPath query: 0.068903ms
+STATS: compiling XPath query: 0.209093ms
 STATS: Query: /descendant-or-self::node()/child::L/child::comment() 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::L/child::comment() 
 STATS: Automaton: 
-STATS: evaluating query: 2.149820ms
-STATS: serializing results: 1.460075ms
+STATS: evaluating query: 2.010107ms
+STATS: serializing results: 1.503944ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 809 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 809 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -363,13 +363,13 @@ STATS: cache4: length: 933, used: 124, occupation: 0.132905
 Diff: ok
 -------------------------------------------
 Query: T3 : //L/processing-instruction()
 Diff: ok
 -------------------------------------------
 Query: T3 : //L/processing-instruction()
-STATS: parsing xml document: 0.547886ms
-STATS: parsing XPath query: 0.077963ms
-STATS: compiling XPath query: 0.247002ms
+STATS: parsing xml document: 0.419855ms
+STATS: parsing XPath query: 0.075102ms
+STATS: compiling XPath query: 0.198841ms
 STATS: Query: /descendant-or-self::node()/child::L/child::processing-instruction() 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::L/child::processing-instruction() 
 STATS: Automaton: 
-STATS: evaluating query: 2.171040ms
-STATS: serializing results: 1.477957ms
+STATS: evaluating query: 2.058029ms
+STATS: serializing results: 1.420975ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 809 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 809 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -377,13 +377,13 @@ STATS: cache4: length: 933, used: 124, occupation: 0.132905
 Diff: ok
 -------------------------------------------
 Query: T4 : //L/processing-instruction("myPI")
 Diff: ok
 -------------------------------------------
 Query: T4 : //L/processing-instruction("myPI")
-STATS: parsing xml document: 0.364065ms
-STATS: parsing XPath query: 0.076056ms
-STATS: compiling XPath query: 0.206947ms
+STATS: parsing xml document: 0.360966ms
+STATS: parsing XPath query: 0.072002ms
+STATS: compiling XPath query: 0.195026ms
 STATS: Query: /descendant-or-self::node()/child::L/child::processing-instruction('?myPI') 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::L/child::processing-instruction('?myPI') 
 STATS: Automaton: 
-STATS: evaluating query: 2.166033ms
-STATS: serializing results: 1.529932ms
+STATS: evaluating query: 1.106977ms
+STATS: serializing results: 2.144098ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 809 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 809 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -391,13 +391,13 @@ STATS: cache4: length: 933, used: 124, occupation: 0.132905
 Diff: ok
 -------------------------------------------
 Query: T5 : //L/node()
 Diff: ok
 -------------------------------------------
 Query: T5 : //L/node()
-STATS: parsing xml document: 0.372171ms
-STATS: parsing XPath query: 0.053167ms
-STATS: compiling XPath query: 0.200987ms
+STATS: parsing xml document: 0.380993ms
+STATS: parsing XPath query: 0.056028ms
+STATS: compiling XPath query: 0.200033ms
 STATS: Query: /descendant-or-self::node()/child::L/child::node() 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::L/child::node() 
 STATS: Automaton: 
-STATS: evaluating query: 2.104998ms
-STATS: serializing results: 1.624107ms
+STATS: evaluating query: 2.035141ms
+STATS: serializing results: 1.604080ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 809 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 809 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -405,13 +405,13 @@ STATS: cache4: length: 933, used: 124, occupation: 0.132905
 Diff: ok
 -------------------------------------------
 Query: T6 : //L/N
 Diff: ok
 -------------------------------------------
 Query: T6 : //L/N
-STATS: parsing xml document: 0.363827ms
-STATS: parsing XPath query: 0.041962ms
-STATS: compiling XPath query: 0.200987ms
+STATS: parsing xml document: 0.368834ms
+STATS: parsing XPath query: 0.048161ms
+STATS: compiling XPath query: 0.205040ms
 STATS: Query: /descendant-or-self::node()/child::L/child::N 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::L/child::N 
 STATS: Automaton: 
-STATS: evaluating query: 2.289057ms
-STATS: serializing results: 1.558065ms
+STATS: evaluating query: 2.115011ms
+STATS: serializing results: 1.475811ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 819 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 819 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -419,13 +419,13 @@ STATS: cache4: length: 952, used: 133, occupation: 0.139706
 Diff: ok
 -------------------------------------------
 Query: T7 : //L/*
 Diff: ok
 -------------------------------------------
 Query: T7 : //L/*
-STATS: parsing xml document: 0.360012ms
-STATS: parsing XPath query: 0.042915ms
-STATS: compiling XPath query: 0.295162ms
+STATS: parsing xml document: 0.386000ms
+STATS: parsing XPath query: 0.040054ms
+STATS: compiling XPath query: 0.193834ms
 STATS: Query: /descendant-or-self::node()/child::L/child::* 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::L/child::* 
 STATS: Automaton: 
-STATS: evaluating query: 2.148151ms
-STATS: serializing results: 1.518011ms
+STATS: evaluating query: 2.058029ms
+STATS: serializing results: 1.773119ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 809 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 809 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -433,13 +433,13 @@ STATS: cache4: length: 933, used: 124, occupation: 0.132905
 Diff: ok
 -------------------------------------------
 Query: O1 : //*[child::* and preceding::Q]
 Diff: ok
 -------------------------------------------
 Query: O1 : //*[child::* and preceding::Q]
-STATS: parsing xml document: 0.401974ms
-STATS: parsing XPath query: 0.054121ms
-STATS: compiling XPath query: 0.253916ms
+STATS: parsing xml document: 0.367880ms
+STATS: parsing XPath query: 0.056028ms
+STATS: compiling XPath query: 0.261068ms
 STATS: Query: /descendant-or-self::node()/child::*[ child::* and ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::Q ] 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::*[ child::* and ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::Q ] 
 STATS: Automaton: 
-STATS: evaluating query: 6.214142ms
-STATS: serializing results: 1.968861ms
+STATS: evaluating query: 5.534887ms
+STATS: serializing results: 1.616001ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1873 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1873 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -447,13 +447,13 @@ STATS: cache4: length: 2090, used: 217, occupation: 0.103828
 Diff: ok
 -------------------------------------------
 Query: O2 : //*[not(child::*) and preceding::Q]
 Diff: ok
 -------------------------------------------
 Query: O2 : //*[not(child::*) and preceding::Q]
-STATS: parsing xml document: 0.370026ms
-STATS: parsing XPath query: 0.063896ms
-STATS: compiling XPath query: 0.282049ms
+STATS: parsing xml document: 0.366926ms
+STATS: parsing XPath query: 0.066042ms
+STATS: compiling XPath query: 0.269890ms
 STATS: Query: /descendant-or-self::node()/child::*[ not(child::*) and ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::Q ] 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::*[ not(child::*) and ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::Q ] 
 STATS: Automaton: 
-STATS: evaluating query: 5.774021ms
-STATS: serializing results: 1.709938ms
+STATS: evaluating query: 5.399942ms
+STATS: serializing results: 1.590014ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1873 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 1873 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
@@ -461,13 +461,13 @@ STATS: cache4: length: 2090, used: 217, occupation: 0.103828
 Diff: ok
 -------------------------------------------
 Query: O3 : //*[preceding::L or following::L]
 Diff: ok
 -------------------------------------------
 Query: O3 : //*[preceding::L or following::L]
-STATS: parsing xml document: 0.369072ms
-STATS: parsing XPath query: 0.078917ms
-STATS: compiling XPath query: 0.324965ms
+STATS: parsing xml document: 0.382900ms
+STATS: parsing XPath query: 0.059843ms
+STATS: compiling XPath query: 0.327826ms
 STATS: Query: /descendant-or-self::node()/child::*[ ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::L or ancestor-or-self::node()/following-sibling::node()/descendant-or-self::L ] 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::*[ ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::L or ancestor-or-self::node()/following-sibling::node()/descendant-or-self::L ] 
 STATS: Automaton: 
-STATS: evaluating query: 11.293888ms
-STATS: serializing results: 2.145052ms
+STATS: evaluating query: 10.667086ms
+STATS: serializing results: 2.055883ms
 STATS: 2 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 610 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
 STATS: 2 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 610 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
@@ -475,13 +475,13 @@ STATS: cache4: length: 778, used: 168, occupation: 0.215938
 Diff: ok
 -------------------------------------------
 Query: O4 : //L/ancestor::* | //L/descendant::*
 Diff: ok
 -------------------------------------------
 Query: O4 : //L/ancestor::* | //L/descendant::*
-STATS: parsing xml document: 0.369787ms
-STATS: parsing XPath query: 0.051975ms
-STATS: compiling XPath query: 0.379086ms
+STATS: parsing xml document: 0.379086ms
+STATS: parsing XPath query: 0.050068ms
+STATS: compiling XPath query: 0.426054ms
 STATS: Query: /descendant-or-self::node()/child::L/ancestor::* | /descendant-or-self::node()/child::L/descendant::* 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::L/ancestor::* | /descendant-or-self::node()/child::L/descendant::* 
 STATS: Automaton: 
-STATS: evaluating query: 6.983995ms
-STATS: serializing results: 2.542019ms
+STATS: evaluating query: 7.055044ms
+STATS: serializing results: 2.132177ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 2345 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 70 entries, cache6: 2345 entries
 STATS: cache2: length: 105, used: 35, occupation: 0.333333
index 920569b..b89aec9 100644 (file)
@@ -1,11 +1,11 @@
 Query: C0 : /descendant::comment()
 Query: C0 : /descendant::comment()
-STATS: parsing xml document: 0.123978ms
-STATS: parsing XPath query: 0.059843ms
-STATS: compiling XPath query: 0.094175ms
+STATS: parsing xml document: 0.129938ms
+STATS: parsing XPath query: 0.058889ms
+STATS: compiling XPath query: 0.087976ms
 STATS: Query: /descendant::comment() 
 STATS: Automaton: 
 STATS: Query: /descendant::comment() 
 STATS: Automaton: 
-STATS: evaluating query: 0.081062ms
-STATS: serializing results: 1.522064ms
+STATS: evaluating query: 0.078201ms
+STATS: serializing results: 1.384020ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 6 entries, cache6: 18 entries
 STATS: cache2: length: 9, used: 3, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 6 entries, cache6: 18 entries
 STATS: cache2: length: 9, used: 3, occupation: 0.333333
index b3daa4f..036dc7a 100644 (file)
@@ -1,11 +1,11 @@
 Query: A1 : /site/closed_auctions/closed_auction/annotation/description/text/keyword
 Query: A1 : /site/closed_auctions/closed_auction/annotation/description/text/keyword
-STATS: parsing xml document: 188.066959ms
-STATS: parsing XPath query: 0.082970ms
-STATS: compiling XPath query: 3.010988ms
+STATS: parsing xml document: 190.551996ms
+STATS: parsing XPath query: 0.097036ms
+STATS: compiling XPath query: 0.280142ms
 STATS: Query: /child::site/child::closed_auctions/child::closed_auction/child::annotation/child::description/child::text/child::keyword 
 STATS: Automaton: 
 STATS: Query: /child::site/child::closed_auctions/child::closed_auction/child::annotation/child::description/child::text/child::keyword 
 STATS: Automaton: 
-STATS: evaluating query: 109.679937ms
-STATS: serializing results: 3.473043ms
+STATS: evaluating query: 108.064890ms
+STATS: serializing results: 3.912926ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 170 entries, cache6: 3149 entries
 STATS: cache2: length: 255, used: 85, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 170 entries, cache6: 3149 entries
 STATS: cache2: length: 255, used: 85, occupation: 0.333333
@@ -13,13 +13,13 @@ STATS: cache4: length: 3464, used: 315, occupation: 0.090935
 Diff: ok
 -------------------------------------------
 Query: A2 : //closed_auction//keyword
 Diff: ok
 -------------------------------------------
 Query: A2 : //closed_auction//keyword
-STATS: parsing xml document: 189.096928ms
-STATS: parsing XPath query: 0.035048ms
-STATS: compiling XPath query: 2.774000ms
+STATS: parsing xml document: 197.270155ms
+STATS: parsing XPath query: 0.055075ms
+STATS: compiling XPath query: 0.095129ms
 STATS: Query: /descendant-or-self::node()/child::closed_auction/descendant-or-self::node()/child::keyword 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::closed_auction/descendant-or-self::node()/child::keyword 
 STATS: Automaton: 
-STATS: evaluating query: 130.786896ms
-STATS: serializing results: 6.608963ms
+STATS: evaluating query: 123.884916ms
+STATS: serializing results: 6.531000ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 170 entries, cache6: 2681 entries
 STATS: cache2: length: 255, used: 85, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 170 entries, cache6: 2681 entries
 STATS: cache2: length: 255, used: 85, occupation: 0.333333
@@ -27,13 +27,13 @@ STATS: cache4: length: 2915, used: 234, occupation: 0.080274
 Diff: ok
 -------------------------------------------
 Query: A3 : /site/closed_auctions/closed_auction//keyword
 Diff: ok
 -------------------------------------------
 Query: A3 : /site/closed_auctions/closed_auction//keyword
-STATS: parsing xml document: 185.206890ms
-STATS: parsing XPath query: 0.056028ms
-STATS: compiling XPath query: 2.818108ms
+STATS: parsing xml document: 192.286968ms
+STATS: parsing XPath query: 0.070095ms
+STATS: compiling XPath query: 0.154018ms
 STATS: Query: /child::site/child::closed_auctions/child::closed_auction/descendant-or-self::node()/child::keyword 
 STATS: Automaton: 
 STATS: Query: /child::site/child::closed_auctions/child::closed_auction/descendant-or-self::node()/child::keyword 
 STATS: Automaton: 
-STATS: evaluating query: 118.218184ms
-STATS: serializing results: 6.602049ms
+STATS: evaluating query: 122.761011ms
+STATS: serializing results: 6.680965ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 170 entries, cache6: 3277 entries
 STATS: cache2: length: 255, used: 85, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 170 entries, cache6: 3277 entries
 STATS: cache2: length: 255, used: 85, occupation: 0.333333
@@ -41,13 +41,13 @@ STATS: cache4: length: 3555, used: 278, occupation: 0.078200
 Diff: ok
 -------------------------------------------
 Query: A4 : /site/closed_auctions/closed_auction[annotation/description/text/keyword]/date
 Diff: ok
 -------------------------------------------
 Query: A4 : /site/closed_auctions/closed_auction[annotation/description/text/keyword]/date
-STATS: parsing xml document: 183.023930ms
-STATS: parsing XPath query: 0.104189ms
-STATS: compiling XPath query: 2.968073ms
+STATS: parsing xml document: 190.771103ms
+STATS: parsing XPath query: 0.141859ms
+STATS: compiling XPath query: 0.144005ms
 STATS: Query: /child::site/child::closed_auctions/child::closed_auction[ child::annotation/child::description/child::text/child::keyword ]/child::date 
 STATS: Automaton: 
 STATS: Query: /child::site/child::closed_auctions/child::closed_auction[ child::annotation/child::description/child::text/child::keyword ]/child::date 
 STATS: Automaton: 
-STATS: evaluating query: 158.648968ms
-STATS: serializing results: 1.986980ms
+STATS: evaluating query: 164.588928ms
+STATS: serializing results: 2.087116ms
 STATS: 2 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 1324 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
 STATS: 2 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 1324 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
@@ -55,13 +55,13 @@ STATS: cache4: length: 1501, used: 177, occupation: 0.117921
 Diff: ok
 -------------------------------------------
 Query: A5 : /site/closed_auctions/closed_auction[descendant::keyword]/date
 Diff: ok
 -------------------------------------------
 Query: A5 : /site/closed_auctions/closed_auction[descendant::keyword]/date
-STATS: parsing xml document: 191.606045ms
-STATS: parsing XPath query: 0.076056ms
-STATS: compiling XPath query: 2.912998ms
+STATS: parsing xml document: 193.598032ms
+STATS: parsing XPath query: 0.081062ms
+STATS: compiling XPath query: 0.144958ms
 STATS: Query: /child::site/child::closed_auctions/child::closed_auction[ descendant::keyword ]/child::date 
 STATS: Automaton: 
 STATS: Query: /child::site/child::closed_auctions/child::closed_auction[ descendant::keyword ]/child::date 
 STATS: Automaton: 
-STATS: evaluating query: 161.002159ms
-STATS: serializing results: 2.372026ms
+STATS: evaluating query: 162.427902ms
+STATS: serializing results: 2.307177ms
 STATS: 2 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 1170 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
 STATS: 2 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 1170 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
@@ -69,13 +69,13 @@ STATS: cache4: length: 1328, used: 158, occupation: 0.118976
 Diff: ok
 -------------------------------------------
 Query: A6 : /site/people/person[profile/gender and profile/age]/name
 Diff: ok
 -------------------------------------------
 Query: A6 : /site/people/person[profile/gender and profile/age]/name
-STATS: parsing xml document: 184.432983ms
-STATS: parsing XPath query: 0.099897ms
-STATS: compiling XPath query: 2.846003ms
+STATS: parsing xml document: 191.087008ms
+STATS: parsing XPath query: 0.101089ms
+STATS: compiling XPath query: 0.145912ms
 STATS: Query: /child::site/child::people/child::person[ child::profile/child::gender and child::profile/child::age ]/child::name 
 STATS: Automaton: 
 STATS: Query: /child::site/child::people/child::person[ child::profile/child::gender and child::profile/child::age ]/child::name 
 STATS: Automaton: 
-STATS: evaluating query: 158.978224ms
-STATS: serializing results: 2.426863ms
+STATS: evaluating query: 161.004066ms
+STATS: serializing results: 2.367020ms
 STATS: 2 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 2174 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
 STATS: 2 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 2174 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
@@ -83,13 +83,13 @@ STATS: cache4: length: 2385, used: 211, occupation: 0.088470
 Diff: ok
 -------------------------------------------
 Query: A7 : /site/people/person[phone or homepage]/name
 Diff: ok
 -------------------------------------------
 Query: A7 : /site/people/person[phone or homepage]/name
-STATS: parsing xml document: 191.473007ms
-STATS: parsing XPath query: 0.087023ms
-STATS: compiling XPath query: 3.005981ms
+STATS: parsing xml document: 188.372850ms
+STATS: parsing XPath query: 0.087976ms
+STATS: compiling XPath query: 0.148058ms
 STATS: Query: /child::site/child::people/child::person[ child::phone or child::homepage ]/child::name 
 STATS: Automaton: 
 STATS: Query: /child::site/child::people/child::person[ child::phone or child::homepage ]/child::name 
 STATS: Automaton: 
-STATS: evaluating query: 155.133009ms
-STATS: serializing results: 4.827976ms
+STATS: evaluating query: 160.624027ms
+STATS: serializing results: 4.969120ms
 STATS: 2 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 1728 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
 STATS: 2 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 1728 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
@@ -97,13 +97,13 @@ STATS: cache4: length: 1927, used: 199, occupation: 0.103269
 Diff: ok
 -------------------------------------------
 Query: A8 : /site/people/person[address and (phone or homepage) and (creditcard or profile)]/name
 Diff: ok
 -------------------------------------------
 Query: A8 : /site/people/person[address and (phone or homepage) and (creditcard or profile)]/name
-STATS: parsing xml document: 182.379961ms
-STATS: parsing XPath query: 0.100136ms
-STATS: compiling XPath query: 2.874136ms
+STATS: parsing xml document: 194.225073ms
+STATS: parsing XPath query: 0.120163ms
+STATS: compiling XPath query: 0.150919ms
 STATS: Query: /child::site/child::people/child::person[ child::address and (child::phone or child::homepage) and (child::creditcard or child::profile) ]/child::name 
 STATS: Automaton: 
 STATS: Query: /child::site/child::people/child::person[ child::address and (child::phone or child::homepage) and (child::creditcard or child::profile) ]/child::name 
 STATS: Automaton: 
-STATS: evaluating query: 164.626122ms
-STATS: serializing results: 3.145933ms
+STATS: evaluating query: 170.377016ms
+STATS: serializing results: 3.077030ms
 STATS: 2 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 9331 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
 STATS: 2 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 9331 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
@@ -111,13 +111,13 @@ STATS: cache4: length: 10253, used: 922, occupation: 0.089925
 Diff: ok
 -------------------------------------------
 Query: B1 : /site/regions/*/item[parent::namerica or parent::samerica]/name
 Diff: ok
 -------------------------------------------
 Query: B1 : /site/regions/*/item[parent::namerica or parent::samerica]/name
-STATS: parsing xml document: 193.360090ms
-STATS: parsing XPath query: 0.061989ms
-STATS: compiling XPath query: 3.045082ms
+STATS: parsing xml document: 195.889950ms
+STATS: parsing XPath query: 0.098944ms
+STATS: compiling XPath query: 0.180960ms
 STATS: Query: /child::site/child::regions/child::*/child::item[ parent::namerica or parent::samerica ]/child::name 
 STATS: Automaton: 
 STATS: Query: /child::site/child::regions/child::*/child::item[ parent::namerica or parent::samerica ]/child::name 
 STATS: Automaton: 
-STATS: evaluating query: 117.424965ms
-STATS: serializing results: 3.699064ms
+STATS: evaluating query: 109.380960ms
+STATS: serializing results: 3.566980ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 170 entries, cache6: 3466 entries
 STATS: cache2: length: 255, used: 85, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 170 entries, cache6: 3466 entries
 STATS: cache2: length: 255, used: 85, occupation: 0.333333
@@ -125,13 +125,13 @@ STATS: cache4: length: 3760, used: 294, occupation: 0.078191
 Diff: ok
 -------------------------------------------
 Query: B2 : //keyword/ancestor::listitem/text/keyword
 Diff: ok
 -------------------------------------------
 Query: B2 : //keyword/ancestor::listitem/text/keyword
-STATS: parsing xml document: 194.656134ms
-STATS: parsing XPath query: 0.077963ms
-STATS: compiling XPath query: 2.819061ms
+STATS: parsing xml document: 193.809032ms
+STATS: parsing XPath query: 0.082970ms
+STATS: compiling XPath query: 0.152111ms
 STATS: Query: /descendant-or-self::node()/child::keyword/ancestor::listitem/child::text/child::keyword 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::keyword/ancestor::listitem/child::text/child::keyword 
 STATS: Automaton: 
-STATS: evaluating query: 185.279131ms
-STATS: serializing results: 13.365030ms
+STATS: evaluating query: 181.705952ms
+STATS: serializing results: 13.277054ms
 STATS: 2 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 2331 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
 STATS: 2 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 2331 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
@@ -139,13 +139,13 @@ STATS: cache4: length: 2619, used: 288, occupation: 0.109966
 Diff: ok
 -------------------------------------------
 Query: B3 : /site/open_auctions/open_auction/bidder[following-sibling::bidder]
 Diff: ok
 -------------------------------------------
 Query: B3 : /site/open_auctions/open_auction/bidder[following-sibling::bidder]
-STATS: parsing xml document: 188.459873ms
-STATS: parsing XPath query: 0.063896ms
-STATS: compiling XPath query: 2.804995ms
+STATS: parsing xml document: 189.718962ms
+STATS: parsing XPath query: 0.041008ms
+STATS: compiling XPath query: 0.104904ms
 STATS: Query: /child::site/child::open_auctions/child::open_auction/child::bidder[ following-sibling::bidder ] 
 STATS: Automaton: 
 STATS: Query: /child::site/child::open_auctions/child::open_auction/child::bidder[ following-sibling::bidder ] 
 STATS: Automaton: 
-STATS: evaluating query: 116.722822ms
-STATS: serializing results: 31.981945ms
+STATS: evaluating query: 121.159077ms
+STATS: serializing results: 31.509876ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 170 entries, cache6: 2871 entries
 STATS: cache2: length: 255, used: 85, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 170 entries, cache6: 2871 entries
 STATS: cache2: length: 255, used: 85, occupation: 0.333333
@@ -153,13 +153,13 @@ STATS: cache4: length: 3131, used: 260, occupation: 0.083041
 Diff: ok
 -------------------------------------------
 Query: B4 : /site/open_auctions/open_auction/bidder[preceding-sibling::bidder]
 Diff: ok
 -------------------------------------------
 Query: B4 : /site/open_auctions/open_auction/bidder[preceding-sibling::bidder]
-STATS: parsing xml document: 193.113804ms
-STATS: parsing XPath query: 0.078917ms
-STATS: compiling XPath query: 2.804041ms
+STATS: parsing xml document: 192.174911ms
+STATS: parsing XPath query: 0.063896ms
+STATS: compiling XPath query: 0.113964ms
 STATS: Query: /child::site/child::open_auctions/child::open_auction/child::bidder[ preceding-sibling::bidder ] 
 STATS: Automaton: 
 STATS: Query: /child::site/child::open_auctions/child::open_auction/child::bidder[ preceding-sibling::bidder ] 
 STATS: Automaton: 
-STATS: evaluating query: 109.422922ms
-STATS: serializing results: 31.900167ms
+STATS: evaluating query: 114.510059ms
+STATS: serializing results: 31.508923ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 170 entries, cache6: 2282 entries
 STATS: cache2: length: 255, used: 85, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 170 entries, cache6: 2282 entries
 STATS: cache2: length: 255, used: 85, occupation: 0.333333
@@ -167,13 +167,13 @@ STATS: cache4: length: 2507, used: 225, occupation: 0.089749
 Diff: ok
 -------------------------------------------
 Query: B5 : /site/regions/*/item[following::item]/name
 Diff: ok
 -------------------------------------------
 Query: B5 : /site/regions/*/item[following::item]/name
-STATS: parsing xml document: 186.527967ms
-STATS: parsing XPath query: 0.079870ms
-STATS: compiling XPath query: 3.057957ms
+STATS: parsing xml document: 188.220024ms
+STATS: parsing XPath query: 0.044107ms
+STATS: compiling XPath query: 0.168085ms
 STATS: Query: /child::site/child::regions/child::*/child::item[ ancestor-or-self::node()/following-sibling::node()/descendant-or-self::item ]/child::name 
 STATS: Automaton: 
 STATS: Query: /child::site/child::regions/child::*/child::item[ ancestor-or-self::node()/following-sibling::node()/descendant-or-self::item ]/child::name 
 STATS: Automaton: 
-STATS: evaluating query: 173.794985ms
-STATS: serializing results: 5.778074ms
+STATS: evaluating query: 177.798986ms
+STATS: serializing results: 5.649805ms
 STATS: 2 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 1992 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
 STATS: 2 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 1992 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
@@ -181,13 +181,13 @@ STATS: cache4: length: 2302, used: 310, occupation: 0.134666
 Diff: ok
 -------------------------------------------
 Query: B6 : /site/regions/*/item[preceding::item]/name
 Diff: ok
 -------------------------------------------
 Query: B6 : /site/regions/*/item[preceding::item]/name
-STATS: parsing xml document: 187.946796ms
-STATS: parsing XPath query: 0.082970ms
-STATS: compiling XPath query: 2.902031ms
+STATS: parsing xml document: 178.910017ms
+STATS: parsing XPath query: 0.083923ms
+STATS: compiling XPath query: 0.180960ms
 STATS: Query: /child::site/child::regions/child::*/child::item[ ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::item ]/child::name 
 STATS: Automaton: 
 STATS: Query: /child::site/child::regions/child::*/child::item[ ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::item ]/child::name 
 STATS: Automaton: 
-STATS: evaluating query: 127.434969ms
-STATS: serializing results: 5.630016ms
+STATS: evaluating query: 128.618956ms
+STATS: serializing results: 6.258965ms
 STATS: 1 iterations
 STATS: automaton 0, cache2: 170 entries, cache6: 4419 entries
 STATS: cache2: length: 255, used: 85, occupation: 0.333333
 STATS: 1 iterations
 STATS: automaton 0, cache2: 170 entries, cache6: 4419 entries
 STATS: cache2: length: 255, used: 85, occupation: 0.333333
@@ -195,13 +195,13 @@ STATS: cache4: length: 4800, used: 381, occupation: 0.079375
 Diff: ok
 -------------------------------------------
 Query: B7 : //person[profile/@income]/name
 Diff: ok
 -------------------------------------------
 Query: B7 : //person[profile/@income]/name
-STATS: parsing xml document: 184.038877ms
-STATS: parsing XPath query: 0.066042ms
-STATS: compiling XPath query: 2.686024ms
+STATS: parsing xml document: 189.343929ms
+STATS: parsing XPath query: 0.080824ms
+STATS: compiling XPath query: 0.107050ms
 STATS: Query: /descendant-or-self::node()/child::person[ child::profile/attribute::@income ]/child::name 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::person[ child::profile/attribute::@income ]/child::name 
 STATS: Automaton: 
-STATS: evaluating query: 165.220976ms
-STATS: serializing results: 3.939152ms
+STATS: evaluating query: 169.734955ms
+STATS: serializing results: 3.911018ms
 STATS: 2 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 1238 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
 STATS: 2 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 1238 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
@@ -209,13 +209,13 @@ STATS: cache4: length: 1349, used: 111, occupation: 0.082283
 Diff: ok
 -------------------------------------------
 Query: B8 : /site/open_auctions/open_auction[bidder and not(bidder/preceding-sibling::bidder)]/interval
 Diff: ok
 -------------------------------------------
 Query: B8 : /site/open_auctions/open_auction[bidder and not(bidder/preceding-sibling::bidder)]/interval
-STATS: parsing xml document: 187.812090ms
-STATS: parsing XPath query: 0.101089ms
-STATS: compiling XPath query: 2.710104ms
+STATS: parsing xml document: 190.890074ms
+STATS: parsing XPath query: 0.103951ms
+STATS: compiling XPath query: 0.152826ms
 STATS: Query: /child::site/child::open_auctions/child::open_auction[ child::bidder and not(child::bidder/preceding-sibling::bidder) ]/child::interval 
 STATS: Automaton: 
 STATS: Query: /child::site/child::open_auctions/child::open_auction[ child::bidder and not(child::bidder/preceding-sibling::bidder) ]/child::interval 
 STATS: Automaton: 
-STATS: evaluating query: 157.864809ms
-STATS: serializing results: 2.645969ms
+STATS: evaluating query: 163.990021ms
+STATS: serializing results: 2.565861ms
 STATS: 2 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 1052 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
 STATS: 2 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 1052 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
@@ -223,13 +223,13 @@ STATS: cache4: length: 1229, used: 177, occupation: 0.144020
 Diff: ok
 -------------------------------------------
 Query: B9 : /site/open_auctions/open_auction[(not(bidder/following::bidder) or not(bidder/preceding::bidder)) or (bidder/following::bidder and bidder/preceding::bidder)]/interval
 Diff: ok
 -------------------------------------------
 Query: B9 : /site/open_auctions/open_auction[(not(bidder/following::bidder) or not(bidder/preceding::bidder)) or (bidder/following::bidder and bidder/preceding::bidder)]/interval
-STATS: parsing xml document: 190.474033ms
-STATS: parsing XPath query: 0.148058ms
-STATS: compiling XPath query: 3.069878ms
+STATS: parsing xml document: 190.903187ms
+STATS: parsing XPath query: 0.133038ms
+STATS: compiling XPath query: 0.355959ms
 STATS: Query: /child::site/child::open_auctions/child::open_auction[ not(child::bidder/ancestor-or-self::node()/following-sibling::node()/descendant-or-self::bidder) or not(child::bidder/ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::bidder) or child::bidder/ancestor-or-self::node()/following-sibling::node()/descendant-or-self::bidder and child::bidder/ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::bidder ]/child::interval 
 STATS: Automaton: 
 STATS: Query: /child::site/child::open_auctions/child::open_auction[ not(child::bidder/ancestor-or-self::node()/following-sibling::node()/descendant-or-self::bidder) or not(child::bidder/ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::bidder) or child::bidder/ancestor-or-self::node()/following-sibling::node()/descendant-or-self::bidder and child::bidder/ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::bidder ]/child::interval 
 STATS: Automaton: 
-STATS: evaluating query: 242.839098ms
-STATS: serializing results: 6.402969ms
+STATS: evaluating query: 245.428085ms
+STATS: serializing results: 6.310940ms
 STATS: 3 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 786 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
 STATS: 3 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 786 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
@@ -237,13 +237,13 @@ STATS: cache4: length: 976, used: 190, occupation: 0.194672
 Diff: ok
 -------------------------------------------
 Query: B10 : /site/open_auctions/open_auction[(not(bidder/following::bidder) or not(bidder/preceding::bidder)) and (bidder/following::bidder and bidder/preceding::bidder)]/interval
 Diff: ok
 -------------------------------------------
 Query: B10 : /site/open_auctions/open_auction[(not(bidder/following::bidder) or not(bidder/preceding::bidder)) and (bidder/following::bidder and bidder/preceding::bidder)]/interval
-STATS: parsing xml document: 187.290192ms
-STATS: parsing XPath query: 0.123024ms
-STATS: compiling XPath query: 3.057957ms
+STATS: parsing xml document: 192.868948ms
+STATS: parsing XPath query: 0.150204ms
+STATS: compiling XPath query: 0.355959ms
 STATS: Query: /child::site/child::open_auctions/child::open_auction[ (not(child::bidder/ancestor-or-self::node()/following-sibling::node()/descendant-or-self::bidder) or not(child::bidder/ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::bidder)) and child::bidder/ancestor-or-self::node()/following-sibling::node()/descendant-or-self::bidder and child::bidder/ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::bidder ]/child::interval 
 STATS: Automaton: 
 STATS: Query: /child::site/child::open_auctions/child::open_auction[ (not(child::bidder/ancestor-or-self::node()/following-sibling::node()/descendant-or-self::bidder) or not(child::bidder/ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::bidder)) and child::bidder/ancestor-or-self::node()/following-sibling::node()/descendant-or-self::bidder and child::bidder/ancestor-or-self::node()/preceding-sibling::node()/descendant-or-self::bidder ]/child::interval 
 STATS: Automaton: 
-STATS: evaluating query: 238.831997ms
-STATS: serializing results: 1.582861ms
+STATS: evaluating query: 248.049021ms
+STATS: serializing results: 1.506090ms
 STATS: 3 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 827 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
 STATS: 3 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 827 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
@@ -251,13 +251,13 @@ STATS: cache4: length: 1000, used: 173, occupation: 0.173000
 Diff: ok
 -------------------------------------------
 Query: B11 : //open_auction/bidder/../bidder/../bidder/../interval
 Diff: ok
 -------------------------------------------
 Query: B11 : //open_auction/bidder/../bidder/../bidder/../interval
-STATS: parsing xml document: 184.998989ms
-STATS: parsing XPath query: 0.063181ms
-STATS: compiling XPath query: 2.854109ms
+STATS: parsing xml document: 187.057972ms
+STATS: parsing XPath query: 0.074148ms
+STATS: compiling XPath query: 0.242949ms
 STATS: Query: /descendant-or-self::node()/child::open_auction/child::bidder/parent::node()/child::bidder/parent::node()/child::bidder/parent::node()/child::interval 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::open_auction/child::bidder/parent::node()/child::bidder/parent::node()/child::bidder/parent::node()/child::interval 
 STATS: Automaton: 
-STATS: evaluating query: 264.686108ms
-STATS: serializing results: 5.999088ms
+STATS: evaluating query: 284.152985ms
+STATS: serializing results: 5.913019ms
 STATS: 4 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 598 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
 STATS: 4 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 598 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
@@ -265,13 +265,13 @@ STATS: cache4: length: 708, used: 110, occupation: 0.155367
 Diff: ok
 -------------------------------------------
 Query: B12 : //item/@id/../@id/../@id/../@id/../name
 Diff: ok
 -------------------------------------------
 Query: B12 : //item/@id/../@id/../@id/../@id/../name
-STATS: parsing xml document: 181.235075ms
-STATS: parsing XPath query: 0.097990ms
-STATS: compiling XPath query: 3.005028ms
+STATS: parsing xml document: 189.946890ms
+STATS: parsing XPath query: 0.078917ms
+STATS: compiling XPath query: 0.353098ms
 STATS: Query: /descendant-or-self::node()/child::item/attribute::@id/parent::node()/attribute::@id/parent::node()/attribute::@id/parent::node()/attribute::@id/parent::node()/child::name 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::item/attribute::@id/parent::node()/attribute::@id/parent::node()/attribute::@id/parent::node()/attribute::@id/parent::node()/child::name 
 STATS: Automaton: 
-STATS: evaluating query: 324.455023ms
-STATS: serializing results: 5.921125ms
+STATS: evaluating query: 339.267015ms
+STATS: serializing results: 5.449057ms
 STATS: 5 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 870 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
 STATS: 5 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 870 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
@@ -279,13 +279,13 @@ STATS: cache4: length: 993, used: 123, occupation: 0.123867
 Diff: ok
 -------------------------------------------
 Query: B13 : //keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword
 Diff: ok
 -------------------------------------------
 Query: B13 : //keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword
-STATS: parsing xml document: 185.913086ms
-STATS: parsing XPath query: 0.092030ms
-STATS: compiling XPath query: 3.149986ms
+STATS: parsing xml document: 193.133831ms
+STATS: parsing XPath query: 0.099897ms
+STATS: compiling XPath query: 0.231981ms
 STATS: Query: /descendant-or-self::node()/child::keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword 
 STATS: Automaton: 
 STATS: Query: /descendant-or-self::node()/child::keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword/ancestor::parlist/descendant::keyword 
 STATS: Automaton: 
-STATS: evaluating query: 278.827190ms
-STATS: serializing results: 14.353991ms
+STATS: evaluating query: 285.151958ms
+STATS: serializing results: 14.261007ms
 STATS: 4 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 2671 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
 STATS: 4 iterations
 STATS: automaton 0, cache2: 0 entries, cache6: 2671 entries
 STATS: cache2: length: 0, used: 0, occupation: -nan
index 89ba0f7..98028a2 100755 (executable)
@@ -1,3 +1,2 @@
 #!/bin/sh
 #!/bin/sh
-
 cat "$1" | sed -e "s/id=\\(\"node[0-9]*\"\\)/id=\\1 onclick='activate(\\1);' /"
 cat "$1" | sed -e "s/id=\\(\"node[0-9]*\"\\)/id=\\1 onclick='activate(\\1);' /"
index 7208ae1..c56141d 100755 (executable)
@@ -21,5 +21,5 @@ mkdir -p "$RESULTS"
 cat "$QUERIES" | grep -v '^#' | while read qname q
 do
     echo "Computing $q"
 cat "$QUERIES" | grep -v '^#' | while read qname q
 do
     echo "Computing $q"
-    java -cp _build/tools XPathEval "$FILE" "$q" > "$RESULTS"/"$qname"_jaxp.xml 2> "$RESULTS"/"$qname"_jaxp.log
+    java -cp tools XPathEval "$FILE" "$q" > "$RESULTS"/"$qname"_jaxp.xml 2> "$RESULTS"/"$qname"_jaxp.log
 done
 done