]> matita.cs.unibo.it Git - helm.git/commitdiff
"Final" commit that patches termViewer while still enabling XML Diffing.
authorAndrea Asperti <andrea.asperti@unibo.it>
Tue, 22 Jul 2003 15:51:00 +0000 (15:51 +0000)
committerAndrea Asperti <andrea.asperti@unibo.it>
Tue, 22 Jul 2003 15:51:00 +0000 (15:51 +0000)
Awesome performances!

helm/gTopLevel/termViewer.ml

index 06ba96a221da88f91ce8f623e1b4e634bcce00da..be755821ef29f79ecd0f85b9aa5bff3e002f6a46 100644 (file)
@@ -33,7 +33,7 @@
 (*                                                                            *)
 (******************************************************************************)
 
-let use_stylesheets = ref true;;(* false performs the transformations in OCaml*)
+let use_stylesheets = ref false;;(* false performs the transformations in OCaml*)
 
 (* List utility functions *)
 exception Skip;;
@@ -197,26 +197,71 @@ class proof_viewer obj =
    =
     Cic2acic.acic_object_of_cic_object currentproof
    in
-    let mml =
-     ApplyStylesheets.mml_of_cic_object
-      ~explode_all:true uri acic ids_to_inner_sorts ids_to_inner_types
-    in
-      (match current_mml with
-          None ->
-prerr_endline "0000000000000000 CARICO L'mml PRODOTTO" ;
-           self#load_doc ~dom:mml ;
-           current_mml <- Some mml
-        | Some current_mml ->
-           self#freeze ;
-           XmlDiff.update_dom ~from:current_mml mml ;
-           self#thaw) ;
-(*
+    if !use_stylesheets then
+     let mml =
+      ApplyStylesheets.mml_of_cic_object
+       ~explode_all:true uri acic ids_to_inner_sorts ids_to_inner_types
+     in
       self#load_doc ~dom:mml ;
       current_mml <- Some mml ;
+      current_infos <-
+       Some
+        (ids_to_terms,ids_to_father_ids,ids_to_conjectures,ids_to_hypotheses) ;
+    else
+     (match acic with
+         Cic.ACurrentProof (id,idbody,n,conjectures,bo,ty,params) ->
+           let time1 = Sys.time () in
+           let content = 
+              Cic2content.annobj2content 
+                ~ids_to_inner_sorts ~ids_to_inner_types acic in
+           let pres = Content2pres.content2pres ~ids_to_inner_sorts content in
+           let time2 = Sys.time () in
+           (* prerr_endline ("Fine trasformazione:" ^ (string_of_float (time2 -. time1))); *)
+           let xmlpres = Mpresentation.print_mpres pres in
+           let time25 = Sys.time () in
+            (*
+            prerr_endline ("FINE printing to stream:" ^ (string_of_float (time25 -. time2)));
+            Xml.pp xmlpres (Some "tmp");
+            let time3 = Sys.time () in
+             prerr_endline ("FINE valutazione e printing dello stream:" ^ (string_of_float (time3 -. time25)));
+            *)
+           (try 
+             prerr_endline "(******** INIZIO DOM **********)";
+             let mml = Xml2Gdome.document_of_xml Misc.domImpl xmlpres in
+             let time3 = Sys.time () in
+             (* ignore (Misc.domImpl#saveDocumentToFile mml "tmp1" ()); *)
+             prerr_endline "(******** FINE DOM **********)";
+             (match current_mml with
+                 None ->
+                  let time1 = Sys.time () in
+                  self#load_doc ~dom:mml ;
+                  let time2 = Sys.time () in
+                  prerr_endline ("Loading and displaying the proof took " ^ string_of_float (time2 -. time1) ^ "seconds") ;
+                  current_mml <- Some mml
+               | Some current_mml' ->
+                  self#freeze ;
+                  let time1 = Sys.time () in
+                  XmlDiff.update_dom ~from:current_mml' mml ;
+                  let time2 = Sys.time () in
+                  prerr_endline ("XMLDIFF took " ^ string_of_float (time2 -. time1) ^ "seconds") ;
+                  self#thaw ;
+                  let time3 = Sys.time () in
+                  prerr_endline ("The refresh of the widget took " ^ string_of_float (time3 -. time2) ^ "seconds")
+                  ) ;
+(*
+              self#load_doc ~dom:mml ;
+              current_mml <- Some mml ;
 *)
-     current_infos <-
-      Some
-       (ids_to_terms,ids_to_father_ids,ids_to_conjectures,ids_to_hypotheses) ;
+             prerr_endline ("Fine loading:" ^ (string_of_float (time3 -. time2)))
+            (*
+             self#load_uri "tmp";
+             let time4 = Sys.time () in
+             prerr_endline
+              ("Fine loading:" ^ (string_of_float (time4 -. time3)))
+            *)
+           with (GdomeInit.DOMException (_,s)) as e ->
+              prerr_endline s; raise e)
+       | _ -> assert false);
     (acic, ids_to_inner_types, ids_to_inner_sorts)
  end
 ;;