From 50255d753c93195b2118e1c1e1677d59e0becf19 Mon Sep 17 00:00:00 2001 From: Erwan Jahier <erwan.jahier@univ-grenoble-alpes.fr> Date: Thu, 6 Feb 2020 11:11:39 +0100 Subject: [PATCH] Update: write all sasa error msgs on stderr --- lib/sasacore/genRegister.ml | 12 ++++++------ lib/sasacore/main.ml | 16 ++++++++-------- lib/sasacore/register.ml | 26 +++++++++----------------- lib/sasacore/sasArg.ml | 4 ++-- src/sasaMain.ml | 2 +- test/Makefile.inc | 6 ++++-- test/coloring/p.ml | 4 ++-- test/unison/Makefile | 5 ++--- 8 files changed, 34 insertions(+), 41 deletions(-) diff --git a/lib/sasacore/genRegister.ml b/lib/sasacore/genRegister.ml index c2c0eb38..93a29798 100644 --- a/lib/sasacore/genRegister.ml +++ b/lib/sasacore/genRegister.ml @@ -36,7 +36,7 @@ let (f: string list -> string * string -> unit) = fun ml_ins (state_file, register_file) -> let state_module = ml_filename_to_module state_file in if Sys.file_exists register_file then ( - Printf.printf "Warning: %s already exist.\n" register_file + Printf.eprintf " [sasa] Warning: %s already exist.\n%!" register_file ) else ( let oc = open_out register_file in let entete = Mypervasives.entete2 "(*" "*)" SasaVersion.str SasaVersion.sha in @@ -54,11 +54,11 @@ let (f: string list -> string * string -> unit) = state_module state_module state_module ; flush oc; close_out oc; - Printf.printf " [sasa] The file %s has been generated\n" register_file; - flush stdout + Printf.eprintf " [sasa] The file %s has been generated\n" register_file; + flush stderr ); if Sys.file_exists state_file then ( - Printf.printf " [sasa] Warning: %s already exist.\n" state_file + Printf.eprintf " [sasa] Warning: %s already exist.\n%!" state_file ) else ( let oc = open_out state_file in let entete = Mypervasives.entete2 "(*" "*)" SasaVersion.str SasaVersion.sha in @@ -70,6 +70,6 @@ let copy x = x "; flush oc; close_out oc; - Printf.printf " [sasa] The file %s has been generated\n" state_file; - flush stdout + Printf.eprintf " [sasa] The file %s has been generated\n" state_file; + flush stderr ) diff --git a/lib/sasacore/main.ml b/lib/sasacore/main.ml index 52fd5189..446f3831 100644 --- a/lib/sasacore/main.ml +++ b/lib/sasacore/main.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 30/01/2020 (at 16:07) by Erwan Jahier> *) +(* Time-stamp: <modified the 04/02/2020 (at 10:43) by Erwan Jahier> *) open Register @@ -203,9 +203,9 @@ let (make : bool -> string array -> 'v t) = let algo_files = List.sort_uniq compare algo_files in let ml_inputs = String.concat " " algo_files in GenRegister.f algo_files (ml_state_file, ml_register_file); - Printf.printf " [sasa] Hint: you may wish to generate %s out of %s with:\n" + Printf.eprintf " [sasa] Hint: you may wish to generate %s out of %s with:\n" cmxs ml_register_file; - Printf.printf " [sasa] ocamlfind ocamlopt -package algo -shared %s %s %s -o %s\n%!" + Printf.eprintf " [sasa] ocamlfind ocamlopt -package algo -shared %s %s %s -o %s\n%!" ml_state_file ml_inputs ml_register_file cmxs; exit 0 ); @@ -228,7 +228,7 @@ let (make : bool -> string array -> 'v t) = if dynlink then ( (* Dynamically link the cmxs file (not possible from rdbg) *) let cmxs = Dynlink.adapt_filename cmxs in - if !Register.verbose_level > 0 then Printf.printf " [sasa] Loading %s...\n" cmxs; + if !Register.verbose_level > 0 then Printf.eprintf " [sasa] Loading %s...\n" cmxs; Dynlink.loadfile_private cmxs; ) else (); @@ -261,7 +261,7 @@ let (make : bool -> string array -> 'v t) = let oc = open_out fn in Printf.fprintf oc "%s%!" (GenLutin.f pl); close_out oc; - Printf.printf " [sasa] %s has been generated.\n%!" fn; + Printf.eprintf " [sasa] %s has been generated.\n%!" fn; exit 0); if args.gen_oracle then ( let fn = (Filename.remove_extension args.topo) ^ "_oracle.lus" in @@ -271,7 +271,7 @@ let (make : bool -> string array -> 'v t) = let oc = open_out fn in Printf.fprintf oc "%s%!" (GenOracle.f g pl); close_out oc; - Printf.printf " [sasa] %s has been generated.\n%!" fn; + Printf.eprintf " [sasa] %s has been generated.\n%!" fn; exit 0); let seed = seed_get args in if args.no_data_file then () else ( @@ -302,9 +302,9 @@ let (make : bool -> string array -> 'v t) = args, pl_n, e with | Dynlink.Error e -> - Printf.printf " [sasa] Error when dynlinking (Sasacore.make): %s\n%!" + Printf.eprintf " [sasa] Error when dynlinking (Sasacore.make): %s\n%!" (Dynlink.error_message e); exit 2 | e -> - Printf.printf " [sasa] Error (Sasacore.make): %s\n%!" (Printexc.to_string e); + Printf.eprintf " [sasa] Error (Sasacore.make): %s\n%!" (Printexc.to_string e); exit 2 diff --git a/lib/sasacore/register.ml b/lib/sasacore/register.ml index 5b33bb4e..df1eb3d9 100644 --- a/lib/sasacore/register.ml +++ b/lib/sasacore/register.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 17/10/2019 (at 21:08) by Erwan Jahier> *) +(* Time-stamp: <modified the 04/02/2020 (at 10:45) by Erwan Jahier> *) type 's neighbor = { state: 's ; @@ -84,14 +84,12 @@ exception Unregistred of string * string let print_table lbl tbl = let keys = Hashtbl.fold (fun k _ acc -> Printf.sprintf "%s,%s" k acc) tbl "" in - if !verbose_level > 0 then Printf.printf "Defined keys for %s: %s\n" lbl keys; - flush stdout + if !verbose_level > 0 then Printf.eprintf "Defined keys for %s: %s\n%!" lbl keys let (reg_init_state : algo_id -> (int -> 's) -> unit) = fun algo_id x -> - if !verbose_level > 0 then Printf.printf "Registering %s init_vars\n" algo_id; - flush stdout; + if !verbose_level > 0 then Printf.eprintf "Registering %s init_vars\n%!" algo_id; Hashtbl.replace tbls.init_state algo_id (Obj.repr x) @@ -104,8 +102,7 @@ let (get_init_state : algo_id -> int -> 's) = let (reg_enable : algo_id -> 's enable_fun -> unit) = fun algo_id x -> - if !verbose_level > 0 then Printf.printf "Registering %s enable\n" algo_id; - flush stdout; + if !verbose_level > 0 then Printf.eprintf "Registering %s enable\n%!" algo_id; Hashtbl.replace tbls.enable algo_id (Obj.repr x) let (get_enable : algo_id -> 's enable_fun) = fun algo_id -> try Obj.obj (Hashtbl.find tbls.enable algo_id) @@ -114,8 +111,7 @@ let (get_enable : algo_id -> 's enable_fun) = fun algo_id -> raise (Unregistred ("enable", algo_id)) let (reg_step : algo_id -> 's step_fun -> unit) = fun algo_id x -> - if !verbose_level > 0 then Printf.printf "Registering %s step\n" algo_id; - flush stdout; + if !verbose_level > 0 then Printf.eprintf "Registering %s step\n%!" algo_id; Hashtbl.replace tbls.step algo_id (Obj.repr x) let (get_step : algo_id -> 's step_fun) = fun algo_id -> @@ -126,8 +122,7 @@ let (get_step : algo_id -> 's step_fun) = fun algo_id -> let (reg_actions : algo_id -> action list -> unit) = fun algo_id x -> - if !verbose_level > 0 then Printf.printf "Registering %s actions\n" algo_id; - flush stdout; + if !verbose_level > 0 then Printf.eprintf "Registering %s actions\n%!" algo_id; Hashtbl.replace tbls.actions algo_id x let (get_actions : algo_id -> action list) = fun algo_id -> try Hashtbl.find tbls.actions algo_id @@ -137,8 +132,7 @@ let (get_actions : algo_id -> action list) = fun algo_id -> let (reg_value_to_string : ('s -> string) -> unit) = fun f -> - if !verbose_level > 0 then Printf.printf "Registering value_to_string\n"; - flush stdout; + if !verbose_level > 0 then Printf.eprintf "Registering value_to_string\n%!"; Hashtbl.replace tbls.value_to_string "_global" (Obj.repr f) let (get_value_to_string : unit -> 's -> string) = fun () -> try Obj.obj (Hashtbl.find tbls.value_to_string "_global") @@ -148,8 +142,7 @@ let (get_value_to_string : unit -> 's -> string) = fun () -> let (reg_value_of_string : (string -> 's) -> unit) = fun f -> - if !verbose_level > 0 then Printf.printf "Registering value_of_string\n"; - flush stdout; + if !verbose_level > 0 then Printf.eprintf "Registering value_of_string\n%!"; Hashtbl.replace tbls.value_of_string "_global" (Obj.repr f) let (get_value_of_string : unit -> (string -> 's) option) = fun () -> try Some (Obj.obj (Hashtbl.find tbls.value_of_string "_global")) @@ -158,8 +151,7 @@ let (get_value_of_string : unit -> (string -> 's) option) = fun () -> let (reg_copy_value : ('s -> 's) -> unit) = fun f -> - if !verbose_level > 0 then Printf.printf "Registering copy_value\n"; - flush stdout; + if !verbose_level > 0 then Printf.eprintf "Registering copy_value\n%!"; Hashtbl.replace tbls.copy_value "_global" (Obj.repr f) let (get_copy_value : unit -> ('s -> 's)) = fun () -> diff --git a/lib/sasacore/sasArg.ml b/lib/sasacore/sasArg.ml index 8a9dd176..9187d1e0 100644 --- a/lib/sasacore/sasArg.ml +++ b/lib/sasacore/sasArg.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 22/01/2020 (at 10:02) by Erwan Jahier> *) +(* Time-stamp: <modified the 04/02/2020 (at 10:38) by Erwan Jahier> *) type t = { @@ -287,7 +287,7 @@ let parse argv = ( ) with | Arg.Bad msg -> - Printf.fprintf stderr "*** Error when calling '%s': %s\n%s\n" (argv.(0)) + Printf.fprintf stderr " [sasa] Error when calling '%s': %s\n%s\n%!" (argv.(0)) (first_line msg) (usage_msg argv.(0)); exit 2; | Arg.Help msg -> Printf.fprintf stdout "%s\n%s\n" msg (usage_msg argv.(0)); diff --git a/src/sasaMain.ml b/src/sasaMain.ml index 98a1a793..411ba1d5 100644 --- a/src/sasaMain.ml +++ b/src/sasaMain.ml @@ -80,7 +80,7 @@ let () = let n = args.length in simuloop n n args "" pl_n e with - | Failure msg -> Printf.printf "Error: %s\n" msg + | Failure msg -> Printf.eprintf " [sasa] Error: %s\n%!" msg | Silent i -> let str = if args.rif then "#" else "" in Printf.eprintf "\n%sThis algo is silent after %i steps\n" str i ; diff --git a/test/Makefile.inc b/test/Makefile.inc index a72fa588..71ae2bb3 100644 --- a/test/Makefile.inc +++ b/test/Makefile.inc @@ -1,4 +1,4 @@ -# Time-stamp: <modified the 27/01/2020 (at 22:40) by Erwan Jahier> +# Time-stamp: <modified the 05/02/2020 (at 14:37) by Erwan Jahier> DIR=../../_build/install/default @@ -30,6 +30,8 @@ LIB=-package algo osage -Tpdf $*.dot -o $*.pdf xpdf $*.pdf +%.ocd: %.ml + rdbg -camldebug -sut "sasa $.dot" -l 1000 @@ -38,7 +40,7 @@ s:sim2chrogtk genclean: rm -f *.cmxs sasa *.cm* *.o *.pdf *.rif *.gp *.log *.dro *.seed *.c *.h sasa-*.dot - rm -f rdbg-session*.ml luretteSession*.ml *.lut a.out *.cov + rm -f rdbg-session*.ml luretteSession* *.lut a.out *.cov read_dot.ml rm -f *.exec *.sh ################################################################################## -include Makefile.untracked diff --git a/test/coloring/p.ml b/test/coloring/p.ml index 7bc44e28..66a2df71 100644 --- a/test/coloring/p.ml +++ b/test/coloring/p.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 04/12/2019 (at 17:17) by Erwan Jahier> *) +(* Time-stamp: <modified the 06/02/2020 (at 11:05) by Erwan Jahier> *) (* This is algo 3.1 in the book *) @@ -44,7 +44,7 @@ let (free : 'v neighbor list -> 'v list) = fun nl -> let (enable_f: 'v -> 'v neighbor list -> action list) = fun e nl -> - if (clash e nl) then ["conflict"] else [] + if (clash e nl) then ["conflict"] else [] let (step_f : 'v -> 'v neighbor list -> action -> 'v) = fun e nl a -> diff --git a/test/unison/Makefile b/test/unison/Makefile index 42c82551..98832e2f 100644 --- a/test/unison/Makefile +++ b/test/unison/Makefile @@ -1,4 +1,4 @@ -# Time-stamp: <modified the 23/10/2019 (at 15:40) by Erwan Jahier> +# Time-stamp: <modified the 05/02/2020 (at 13:42) by Erwan Jahier> test: test1 test2 lurette0 lurette1 rdbg_test @@ -35,8 +35,7 @@ lurette1: ring.lut ring_oracle.lus lurette: lurette0 s g rdbg: ring.ml - rdbg -o unison.rif \ - -sut "$(sasa) ring.dot -sd -rif" \ + rdbg -o unison.rif -sut "$(sasa) ring.dot -sd -rif" rdbg_test: ring.ml echo "\nnr\nsd\n" | rdbg -o unison.rif \ -- GitLab