]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matitacLib.ml
CoRN integrated in the night benchmarks.
[helm.git] / matita / matitacLib.ml
index 923354cbda7058c4a7c4635594b301cc5564ee81..82a7ca32ef1189ada1ff5cfb2e65629cecdf6b1b 100644 (file)
@@ -63,6 +63,7 @@ let run_script is eval_function  =
         in
         HLog.debug ("Executing: ``" ^ stm ^ "''"))
   in
+  let matita_debug = Helm_registry.get_bool "matita.debug" in
   try
    let grafite_status'', lexicon_status'' =
     match eval_function lexicon_status' grafite_status' is cb with
@@ -77,15 +78,22 @@ let run_script is eval_function  =
   | End_of_file
   | CicNotationParser.Parse_error _ as exn -> raise exn
   | exn -> 
-      HLog.error (snd (MatitaExcPp.to_string exn));
+      if not matita_debug then
+       HLog.error (snd (MatitaExcPp.to_string exn)) ;
       raise exn
 
 let fname () =
-  match Helm_registry.get_list Helm_registry.string "matita.args" with
+  let rec aux = function
+  | ""::tl -> aux tl
   | [x] -> x
+  | [] -> MatitaInit.die_usage ()
   | l -> 
-      prerr_endline ("Wrong commands: " ^ String.concat " " l);
+      prerr_endline 
+        ("Wrong commands: " ^ 
+          String.concat " " (List.map (fun x -> "'" ^ x ^ "'") l));
       MatitaInit.die_usage ()
+  in
+  aux (Helm_registry.get_list Helm_registry.string "matita.args")
 
 let pp_ocaml_mode () = 
   HLog.message "";
@@ -167,7 +175,7 @@ let pp_times fname bench_mode rc big_bang =
         else 
           "matitac" 
       in
-      let rc = if rc then "OK" else "FAIL" in
+      let rc = if rc then "\e[0;32mOK\e[0m" else "\e[0;31mFAIL\e[0m" in
       let times = 
         let fmt t = 
           let seconds = int_of_float t in
@@ -187,9 +195,13 @@ let pp_times fname bench_mode rc big_bang =
             assert (fnamelen > rootlen); 
             String.sub fname rootlen (fnamelen - rootlen)           
       in
-      let s = 
-        Printf.sprintf "%s %-35s %-4s %s %s" cc fname rc times extra 
+      let fname = 
+        if fname.[0] = '/' then
+          String.sub fname 1 (String.length fname - 1)
+        else
+          fname
       in
+      let s = Printf.sprintf "%s %-35s %-4s %s %s" cc fname rc times extra in
       print_endline s;
       flush stdout
     end
@@ -265,16 +277,19 @@ let main ~mode =
      end
     else
      begin
-       let baseuri =
+       let baseuri, _fullpathforfname =
         DependenciesParser.baseuri_of_script ~include_paths fname in
        let moo_fname = 
-         LibraryMisc.obj_file_of_baseuri ~baseuri ~writable:true 
+         LibraryMisc.obj_file_of_baseuri 
+           ~must_exist:false ~baseuri ~writable:true 
        in
        let lexicon_fname= 
-         LibraryMisc.lexicon_file_of_baseuri ~baseuri ~writable:true 
+         LibraryMisc.lexicon_file_of_baseuri 
+          ~must_exist:false ~baseuri ~writable:true 
        in
        let metadata_fname =
-        LibraryMisc.metadata_file_of_baseuri ~baseuri ~writable:true
+        LibraryMisc.metadata_file_of_baseuri 
+          ~must_exist:false ~baseuri ~writable:true
        in
        GrafiteMarshal.save_moo moo_fname moo_content_rev;
        LibraryNoDb.save_metadata metadata_fname metadata;
@@ -285,7 +300,8 @@ let main ~mode =
        exit 0
      end
   with 
-  | Sys.Break ->
+  | Sys.Break as exn ->
+     if matita_debug then raise exn;
       HLog.error "user break!";
       pp_times fname bench_mode false big_bang;
       if mode = `COMPILER then