From a07e17b8b31c25b6c40eb5e56168e6b07a5f9794 Mon Sep 17 00:00:00 2001 From: Erwan Jahier <erwan.jahier@univ-grenoble-alpes.fr> Date: Sun, 25 Mar 2018 23:16:34 +0200 Subject: [PATCH] Lus2licRun: catch errors properly (duplicating the work done in main.ml). By not catching errors, rdbg and (thus) lurette were silently do nothing in presence of errors in Lustre files. --- lv6-ref-man/lv6-ref-man.pdf | Bin 324101 -> 324100 bytes src/lic.ml | 2 +- src/lus2licRun.ml | 63 +++++++++++++++++++++++++++++++++--- src/lv6errors.ml | 6 ++-- src/lv6version.ml | 4 +-- src/main.ml | 15 +++++---- src/socExecValue.ml | 2 +- test/lus2lic.sum | 42 ++++++++++++------------ 8 files changed, 96 insertions(+), 38 deletions(-) diff --git a/lv6-ref-man/lv6-ref-man.pdf b/lv6-ref-man/lv6-ref-man.pdf index ccdca251d1a74a2caec8b1ec24706eb9b337e1b3..9f7a1bbee3476b878dd7d7a3110cd4a039294990 100644 GIT binary patch delta 3715 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 delta 3689 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 diff --git a/src/lic.ml b/src/lic.ml index 832bcbfd..89db4579 100644 --- a/src/lic.ml +++ b/src/lic.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 21/07/2017 (at 15:28) by Erwan Jahier> *) +(* Time-stamp: <modified the 25/03/2018 (at 22:07) by Erwan Jahier> *) (** Define the Data Structure representing Compiled programs. By compiled we mean that constant are propagated, packages are diff --git a/src/lus2licRun.ml b/src/lus2licRun.ml index 70770cb9..448681a7 100644 --- a/src/lus2licRun.ml +++ b/src/lus2licRun.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 03/07/2017 (at 10:38) by Erwan Jahier> *) +(* Time-stamp: <modified the 25/03/2018 (at 22:59) by Erwan Jahier> *) (*----------------------------------------------------------------------- ** Copyright (C) - Verimag. *) @@ -10,8 +10,8 @@ open Soc open SocExecValue open RdbgPlugin -let make argv = - let opt = Lv6MainArgs.parse argv in + +let make_do argv opt = Lv6Verbose.exe ~level:3 (fun () -> Gc.set { (Gc.get ()) with Gc.verbose = 0x01 } ); @@ -38,7 +38,7 @@ let make argv = print_string ("Error: cannot find node "^opt.main_node^" in "^ (String.concat "," opt.infiles)^".\n"); flush stdout; - exit 1 + exit 1 ) in let soc = SocUtils.find_no_exc sk soc_tbl in @@ -104,3 +104,58 @@ let make argv = step=step; step_dbg=step_dbg; } + +open Lv6errors +open Parsing + +let my_exit opt i = + if opt.outfile <> "" then ( + flush opt.oc; + close_out opt.oc + ); + flush stdout; + flush stderr; + (* if i>0 && Sys.file_exists opt.outfile then Sys.remove opt.outfile; *) + exit i + +let make argv = + let opt = Lv6MainArgs.parse argv in + try make_do argv opt with + | Sys_error(s) -> prerr_string (s^"\n"); my_exit opt 1 + | Global_error s -> print_global_error s; my_exit opt 1 + | Parsing.Parse_error -> + print_compile_error (Lxm.last_made ()) "Syntax error"; + exit 1 + + | Unknown_var(lxm,id) -> + print_compile_error lxm ("unknown variable (" ^ (Lv6Id.to_string id) ^")"); + my_exit opt 1 + | Unknown_constant(lxm,str) -> + print_compile_error lxm ("unknown constant (" ^ str ^")"); + my_exit opt 1 + | Compile_error(lxm,msg) -> print_compile_error lxm msg; my_exit opt 1 + | L2lCheckLoops.Error(lxm,msg,lic_prg) -> + (* Sometime it helps to see the current state of the faulty program *) + let main_node = + if opt.main_node = "" then None else + Some (Lv6Id.idref_of_string opt.main_node) + in + LicPrg.to_file opt lic_prg main_node; + flush opt.oc; + print_compile_error lxm msg; + my_exit opt 1 + | SocExec.AssertViolation lxm -> + print_compile_error lxm "An assertion is violated in the Lustre program"; + my_exit opt 1 + | Assert_failure (file, line, col) -> + prerr_string ( + "\nError: oops, lus2lic internal error\n\tFile \""^ file ^ + "\", line " ^ (string_of_int line) ^ ", column " ^ + (string_of_int col) ^ "\nError: when compiling lustre program" ^ + (if List.length opt.infiles > 1 then "s " else " ") ^ + (String.concat ", " opt.infiles) ^ "\n"^ + "\nError: You migth want to sent a bug report to "^Lv6version.maintainer ^"\n") ; + flush stderr; + my_exit opt 2 + + diff --git a/src/lv6errors.ml b/src/lv6errors.ml index 984d41ec..6fb6132b 100644 --- a/src/lv6errors.ml +++ b/src/lv6errors.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 06/01/2017 (at 16:32) by Erwan Jahier> *) +(* Time-stamp: <modified the 25/03/2018 (at 23:10) by Erwan Jahier> *) (** *) @@ -105,7 +105,7 @@ exception Global_error of string Formatage standard des erreurs de compil ----------------------------------------------------------------------*) let compile_error_string lxm msg = ( - Printf.sprintf "*** Error %s:\n*** %s\n" (Lxm.details lxm) msg + Printf.sprintf "\nError: %s:\nError: %s\n" (Lxm.details lxm) msg ) (** --------------------------------------------------------------------- @@ -128,7 +128,7 @@ let warning lxm msg = ( Message d'erreur (sans lexeme) sur stderr ----------------------------------------------------------------------*) let print_global_error msg = ( - Printf.eprintf "Error. %s\n" msg ; + Printf.eprintf "Error: %s\n" msg ; flush stderr ) diff --git a/src/lv6version.ml b/src/lv6version.ml index ebfbf033..8aee6963 100644 --- a/src/lv6version.ml +++ b/src/lv6version.ml @@ -1,7 +1,7 @@ (** Automatically generated from Makefile *) let tool = "lus2lic" let branch = "master" -let commit = "734" -let sha_1 = "342785b6636005cf00391b5d7cabf55334790a59" +let commit = "735" +let sha_1 = "8abbfca9d55f544bd32843ea5f36c6f0860d65b0" let str = (branch ^ "." ^ commit ^ " (" ^ sha_1 ^ ")") let maintainer = "erwan.jahier@univ-grenoble-alpes.fr" diff --git a/src/main.ml b/src/main.ml index 6a3923fa..a948821b 100644 --- a/src/main.ml +++ b/src/main.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 21/03/2018 (at 14:18) by Erwan Jahier> *) +(* Time-stamp: <modified the 25/03/2018 (at 22:27) by Erwan Jahier> *) open Lv6Verbose open AstV6 @@ -18,6 +18,8 @@ let my_exit opt i = output_string opt.oc "\nbye\n"; flush opt.oc; close_out opt.oc; + flush stdout; + flush stderr; if i>0 && Sys.file_exists opt.outfile then Sys.remove opt.outfile; exit i @@ -33,7 +35,7 @@ let find_a_node opt = let name = try Filename.chop_extension (Filename.basename first_file) with _ -> - print_string ("*** Error: '"^first_file^"' is a bad file name.\n"); + print_string ("Error: '"^first_file^"' is a bad file name.\n"); my_exit opt 1 in name @@ -310,7 +312,8 @@ let main () = ( ) with Sys_error(s) -> prerr_string (s^"\n"); my_exit opt 1 | Global_error s -> print_global_error s; my_exit opt 1 - | Parse_error -> print_compile_error (Lxm.last_made ()) "syntax error"; my_exit opt 1 + | Parse_error -> + print_compile_error (Lxm.last_made ()) "Syntax error"; my_exit opt 1 | Unknown_var(lxm,id) -> print_compile_error lxm ("unknown variable (" ^ (Lv6Id.to_string id) ^")"); my_exit opt 1 @@ -329,12 +332,12 @@ let main () = ( my_exit opt 1 | Assert_failure (file, line, col) -> prerr_string ( - "\n*** oops: lus2lic internal error\n\tFile \""^ file ^ + "\nError: oops, lus2lic internal error\n\tFile \""^ file ^ "\", line " ^ (string_of_int line) ^ ", column " ^ - (string_of_int col) ^ "\n*** when compiling lustre program" ^ + (string_of_int col) ^ "\nError: when compiling lustre program" ^ (if List.length opt.infiles > 1 then "s " else " ") ^ (String.concat ", " opt.infiles) ^ "\n"^ - "\n*** You migth want to sent a bug report to "^Lv6version.maintainer ^"\n") ; + "\nError: You migth want to sent a bug report to "^Lv6version.maintainer ^"\n") ; flush stderr; my_exit opt 2 ); diff --git a/src/socExecValue.ml b/src/socExecValue.ml index 2384d166..12905c12 100644 --- a/src/socExecValue.ml +++ b/src/socExecValue.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 26/09/2017 (at 17:27) by Erwan Jahier> *) +(* Time-stamp: <modified the 25/03/2018 (at 22:16) by Erwan Jahier> *) let dbg = (Lv6Verbose.get_flag "exec") diff --git a/test/lus2lic.sum b/test/lus2lic.sum index 958eedb0..75ed0e25 100644 --- a/test/lus2lic.sum +++ b/test/lus2lic.sum @@ -1,5 +1,5 @@ ==> lus2lic0.sum <== -Test Run By jahier on Thu Mar 22 08:50:03 +Test Run By jahier on Sun Mar 25 23:05:19 Native configuration is x86_64-unknown-linux-gnu === lus2lic0 tests === @@ -66,7 +66,7 @@ XFAIL: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/lecte XFAIL: Test bad programs (assert): test_lus2lic_no_node should_fail/assert/s.lus ==> lus2lic1.sum <== -Test Run By jahier on Thu Mar 22 08:50:04 +Test Run By jahier on Sun Mar 25 23:05:19 Native configuration is x86_64-unknown-linux-gnu === lus2lic1 tests === @@ -409,7 +409,7 @@ PASS: sh multipar.sh PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c multipar.lus {} ==> lus2lic2.sum <== -Test Run By jahier on Thu Mar 22 08:50:46 +Test Run By jahier on Sun Mar 25 23:06:09 Native configuration is x86_64-unknown-linux-gnu === lus2lic2 tests === @@ -602,7 +602,7 @@ PASS: sh rs.sh PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c rs.lus {} PASS: ./lus2lic {-2c sample_time_change.lus -n sample_time_change} PASS: sh sample_time_change.sh -PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c sample_time_change.lus {} +FAIL: Try to compare lus2lic -exec and -2c: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c sample_time_change.lus {} PASS: ./lus2lic {-2c sample_time_change_MainNode.lus -n sample_time_change_MainNode} PASS: sh sample_time_change_MainNode.sh PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c sample_time_change_MainNode.lus {} @@ -749,7 +749,7 @@ PASS: sh zzz2.sh PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c zzz2.lus {} ==> lus2lic3.sum <== -Test Run By jahier on Thu Mar 22 08:51:30 +Test Run By jahier on Sun Mar 25 23:06:55 Native configuration is x86_64-unknown-linux-gnu === lus2lic3 tests === @@ -1258,7 +1258,7 @@ PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node multipar.lus {} ==> lus2lic4.sum <== -Test Run By jahier on Thu Mar 22 08:52:29 +Test Run By jahier on Sun Mar 25 23:07:56 Native configuration is x86_64-unknown-linux-gnu === lus2lic4 tests === @@ -1528,7 +1528,7 @@ PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node rs.lus {} PASS: ./lus2lic {} {-o sample_time_change.lic sample_time_change.lus} PASS: ./lus2lic {-ec -o sample_time_change.ec sample_time_change.lus} PASS: ./myec2c {-o sample_time_change.c sample_time_change.ec} -PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node sample_time_change.lus {} +FAIL: Try to compare lus2lic -exec and ecexe: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node sample_time_change.lus {} PASS: ./lus2lic {} {-o sample_time_change_MainNode.lic sample_time_change_MainNode.lus} PASS: ./lus2lic {-ec -o sample_time_change_MainNode.ec sample_time_change_MainNode.lus} PASS: ./myec2c {-o sample_time_change_MainNode.c sample_time_change_MainNode.ec} @@ -1757,8 +1757,8 @@ PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node zzz2.lus {} === lus2lic2 Summary === -# of expected passes 327 -# of unexpected failures 1 +# of expected passes 326 +# of unexpected failures 2 ==> lus2lic3.sum <== === lus2lic3 Summary === @@ -1771,18 +1771,18 @@ PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node zzz2.lus {} === lus2lic4 Summary === -# of expected passes 465 -# of unexpected failures 6 +# of expected passes 464 +# of unexpected failures 7 =============================== -# Total number of failures: 13 -lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 1 seconds -lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 42 seconds -lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 44 seconds -lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 59 seconds -lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 31 seconds +# Total number of failures: 15 +lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 0 seconds +lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 50 seconds +lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 46 seconds +lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 61 seconds +lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 33 seconds * Ref time: -118.72user 26.88system 2:57.25elapsed 82%CPU (0avgtext+0avgdata 283400maxresident)k -8inputs+6007488outputs (0major+21724435minor)pagefaults 0swaps +125.16user 27.33system 3:09.85elapsed 80%CPU (0avgtext+0avgdata 283484maxresident)k +0inputs+6068528outputs (0major+17946845minor)pagefaults 0swaps * Quick time (-j 4): -167.43user 35.36system 2:25.12elapsed 139%CPU (0avgtext+0avgdata 283240maxresident)k -5256inputs+5874296outputs (11major+21309306minor)pagefaults 0swaps +154.19user 30.98system 1:44.92elapsed 176%CPU (0avgtext+0avgdata 283500maxresident)k +0inputs+5933600outputs (0major+17590195minor)pagefaults 0swaps -- GitLab