]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/matita/matitacLib.ml
ported to new getter interface
[helm.git] / helm / matita / matitacLib.ml
index b7afff475d89143cc6dcb259ea63043811c09e20..fbc393cfb3bed6472ae6de4874975b3786c632ff 100644 (file)
@@ -38,7 +38,7 @@ let usage =
 
 let status = ref None
 
-let run_script output is eval_function  =
+let run_script is eval_function  =
   let status = 
     match !status with
     | None -> assert false
@@ -58,7 +58,7 @@ let run_script output is eval_function  =
     MatitaLog.debug ("Executing: ``" ^ stm ^ "''")
   in
   try
-    eval_function output status is cb
+    eval_function status is cb
   with
   | MatitaEngine.Drop  
   | CicTextualParser2.Parse_error _ as exn -> raise exn
@@ -84,7 +84,7 @@ let pp_ocaml_mode () =
 let rec go () = 
  let str = Stream.of_channel stdin in
   try
-    run_script ignore str MatitaEngine.eval_from_stream_greedy
+    run_script str MatitaEngine.eval_from_stream_greedy
   with 
   | MatitaEngine.Drop -> pp_ocaml_mode ()
   | Sys.Break -> MatitaLog.error "user break!"; go ()
@@ -108,11 +108,6 @@ let main ~mode =
   MatitaDb.create_owner_environment ();
 *)
   status := Some (ref (Lazy.force MatitaEngine.initial_status));
-  at_exit
-    (fun () ->
-       Http_getter_logger.log "Sync map tree to disk...";
-       Http_getter.sync_dump_file ();
-       print_endline "\nThanks for using Matita!\n");
   Sys.catch_break true;
   let fname = fname () in
   try
@@ -124,10 +119,7 @@ let main ~mode =
         | "stdin" -> stdin
         | fname -> open_in fname)
     in
-    let os = open_out (MatitaMisc.obj_file_of_script fname) in
-    let output s = output_string os s in
-    output "(* GENERATED FILE: DO NOT EDIT! *)\n\n";
-    run_script output is MatitaEngine.eval_from_stream;
+    run_script is MatitaEngine.eval_from_stream;
     let elapsed = Unix.time () -. time in
     let tm = Unix.gmtime elapsed in
     let sec = 
@@ -139,9 +131,9 @@ let main ~mode =
     let hou = 
       if tm.Unix.tm_hour > 0 then (string_of_int tm.Unix.tm_hour ^ "h ") else "" 
     in
-    let proof_status = 
+    let proof_status,moo_content_rev = 
       match !status with
-      | Some s -> !s.proof_status
+      | Some s -> !s.proof_status, !s.moo_content_rev
       | None -> assert false
     in
     if proof_status <> MatitaTypes.No_proof then
@@ -152,9 +144,13 @@ let main ~mode =
      end
     else
      begin
+       let os = open_out (MatitaMisc.obj_file_of_script fname) in
+       let output s = output_string os s in
+       output "(* GENERATED FILE: DO NOT EDIT! *)\n\n";
+       List.iter output (List.rev moo_content_rev);
+       close_out os;
        MatitaLog.message 
          (sprintf "execution of %s completed in %s." fname (hou^min^sec));
-       close_out os;
        exit 0
      end
   with 
@@ -172,8 +168,8 @@ let main ~mode =
   | CicTextualParser2.Parse_error (floc,err) ->
      let (x, y) = CicAst.loc_of_floc floc in
      MatitaLog.error (sprintf "Parse error at %d-%d: %s" x y err);
-     Http_getter.sync_dump_file ();
      if mode = `COMPILER then
        exit 1
      else
        pp_ocaml_mode ()
+