X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2FmatitacLib.ml;h=d4e67e7a0ae329de1a46613ceeea57f70ff0b12d;hb=09c2feb12e84b2d2bd2e04454274b1e9e7fcfa8b;hp=ca587690cfecf60a2bd332b6164d37f416f9b93d;hpb=b2788a5ed06fa093c607ea3f5a29058845e1f9c6;p=helm.git diff --git a/matita/matitacLib.ml b/matita/matitacLib.ml index ca587690c..d4e67e7a0 100644 --- a/matita/matitacLib.ml +++ b/matita/matitacLib.ml @@ -81,9 +81,17 @@ let run_script is eval_function = 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 () + | [] -> MatitaInit.die_usage () + | 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 ""; @@ -158,27 +166,40 @@ let pp_times fname bench_mode rc big_bang = begin let { Unix.tms_utime = u ; Unix.tms_stime = s} = Unix.times () in let r = Unix.gettimeofday () -. big_bang in - let extra = try Sys.getenv "DO_TESTS_EXTRA" with Not_found -> "" in + let extra = try Sys.getenv "BENCH_EXTRA_TEXT" with Not_found -> "" in let cc = - if Str.string_match (Str.regexp "opt$") Sys.argv.(0) 0 then + if Str.string_match (Str.regexp ".*opt$") Sys.argv.(0) 0 then "matitac.opt" 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 let cents = int_of_float ((t -. floor t) *. 100.0) in let minutes = seconds / 60 in let seconds = seconds mod 60 in - Printf.sprintf "%2dm%02d.%02ds" minutes seconds cents + Printf.sprintf "%dm%02d.%02ds" minutes seconds cents in Printf.sprintf "%s %s %s" (fmt r) (fmt u) (fmt s) in - let s = - Printf.sprintf "%s\t%-30s %s\t%s\t%s" cc fname rc times extra + let fname = + match MatitamakeLib.development_for_dir (Filename.dirname fname) with + | None -> fname + | Some d -> + let rootlen = String.length(MatitamakeLib.root_for_development d)in + let fnamelen = String.length fname in + assert (fnamelen > rootlen); + String.sub fname rootlen (fnamelen - rootlen) + in + 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 @@ -209,12 +230,7 @@ let main ~mode = in if Helm_registry.get_int "matita.verbosity" < 1 then HLog.set_log_callback newcb; - if bench_mode then - begin - HLog.set_log_callback (fun _ _ -> ()); - let out = open_out "/dev/null" in - Unix.dup2 (Unix.descr_of_out_channel out) (Unix.descr_of_out_channel stderr) - end; + if bench_mode then MatitaMisc.shutup (); let matita_debug = Helm_registry.get_bool "matita.debug" in try let time = Unix.time () in @@ -262,13 +278,16 @@ let main ~mode = let baseuri = 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;