Stable state. Includes fixes and tweaking of the caching of automata.
[SXSI/xpathcomp.git] / main.ml
diff --git a/main.ml b/main.ml
index 3192810..8bb6b44 100644 (file)
--- a/main.ml
+++ b/main.ml
@@ -201,10 +201,10 @@ let main v query_string output =
                  let _ = Printf.eprintf "Number of nodes in the result set : %i\n%!" r
                  in ()
                else      
-               let module GR = Ata.Test(struct let doc = v end) in
+               let module GR = Ata(*.Test(struct let doc = v end) *) in
                  let result = time ~count:5 (GR.top_down1 auto) v in
                  let _ = Printf.eprintf "Counting results " in
-                 let rcount = time (GR.Results.length) result in
+                 let rcount = time (IdSet.length) result in
                    Printf.eprintf "Number of nodes in the result set : %i\n" rcount;
                    Printf.eprintf "\n%!";
                    begin
@@ -212,28 +212,17 @@ let main v query_string output =
                        | None -> ()
                        | Some f ->                   
                            Printf.eprintf "Serializing results : ";
-                           time( fun () ->
-                                   (*let oc = open_out f in *)
-                                   let oc = Unix.openfile f [ Unix.O_WRONLY;Unix.O_TRUNC;Unix.O_CREAT] 0o644 in
-                                     (*output_string oc "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";*)
-                                   let t1 = ref (Unix.gettimeofday()) in
-                                   let count = ref 1 in
-                                   let old_count = ref 1 in
-                                    GR.Results.iter (fun t -> 
-                                                       incr count;
-                                                       begin
-                                                         if (!count mod 15) == 0
-                                                         then
-                                                         let t2 =  Unix.gettimeofday() in
-                                                         let _ = Printf.eprintf "Printing %i elements in %f ms\n"
-                                                           (!count - !old_count) (1000. *.(t2 -. !t1))
-                                                         in
-                                                         ( old_count := !count; t1 := Unix.gettimeofday())
-                                                       end;
-                                                       Tree.print_xml_fast3 v t oc;
-                                                       (*output_char oc '\n'; *)                               
-                                                    ) result) ();
-                   end;
+                           let oc = 
+                             Unix.openfile f [ Unix.O_WRONLY;Unix.O_TRUNC;Unix.O_CREAT] 0o644 
+                           in
+                           time( 
+                             IdSet.iter (
+                               fun t ->                                  
+                                 
+                                 Tree.print_xml_fast3 v t oc;
+                               
+                             )) result ;
+ end;
          end;
          Printf.eprintf "Total running time : %fms\n%!" (total_time())
 ;;