X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2FmatitacLib.ml;h=82a7ca32ef1189ada1ff5cfb2e65629cecdf6b1b;hb=7fed865c7cd7ea742a360158a931a3fa734ee446;hp=923354cbda7058c4a7c4635594b301cc5564ee81;hpb=6e81ede3341e2e4c748068038daece21cfff431f;p=helm.git diff --git a/matita/matitacLib.ml b/matita/matitacLib.ml index 923354cbd..82a7ca32e 100644 --- a/matita/matitacLib.ml +++ b/matita/matitacLib.ml @@ -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 "OK" else "FAIL" 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