diff --git a/src/l2lCheckKcgKeyWord.ml b/src/l2lCheckKcgKeyWord.ml index 7a0980007552135c4ba870d042d82e9aae8f2cf6..388eda8c66eb74b17222ccd3e08d800bfa3ed5a4 100644 --- a/src/l2lCheckKcgKeyWord.ml +++ b/src/l2lCheckKcgKeyWord.ml @@ -18,15 +18,17 @@ module StringSet = let kcg_kw_list = ["state";"clock";"initial"] let kcg_kw = StringSet.of_list kcg_kw_list -let (check_var_info : Lic.var_info-> unit) = +let (check_var_info : Lic.var_info -> unit) = fun v -> (match v with |var_name_eff-> - if StringSet.mem v.var_name_eff kcg_kw then - assert false; + if StringSet.mem v.var_name_eff kcg_kw then + (let msg = "kcg name clash" in + raise (Lv6errors.Global_error msg) + ); |_ -> () - ) + ) let (check_type :Lic.type_ -> unit) = diff --git a/src/licDump.ml b/src/licDump.ml index ec0e7473ed382dd547ae709feeef32752aaddbc9..9b818942ffc46b6a5cd81bc62267479cc43966e2 100644 --- a/src/licDump.ml +++ b/src/licDump.ml @@ -465,9 +465,9 @@ and (string_of_by_pos_op_eff: Lic.by_pos_op srcflagged -> Lic.val_exp list -> st | WHEN clk, vel -> (tuple vel) ^ (string_of_clock clk) - | CURRENT Some _,_ -> (*if global_opt.kcg then "merge " ^ tuple_par vel ^ " (true -> " ^ - (tuple_par vel) ^ ") (false -> pre " ^ (tuple_par vel) ^")" - else *)"current " ^ tuple_par (if global_opt.ec then List.tl vel else vel) + | CURRENT Some _,_ -> if global_opt.kcg then + "merge " ^ tuple_par (List.tl vel) ^ " (true -> " ^(tuple_par (List.tl vel)) ^ ") (false -> pre " ^ (tuple_par (List.tl vel)) ^ ")" + else "current " ^ tuple_par (if global_opt.ec then List.tl vel else vel) | CURRENT None,_ -> (*if global_opt.kcg then else *) "current " ^ tuple_par vel | TUPLE,_ -> (tuple vel) | CONCAT, [ve1; ve2] -> @@ -596,7 +596,7 @@ and string_of_eq_info_eff (leff_list, vee) = and (string_of_assert : Lic.val_exp srcflagged -> string ) = fun eq_eff -> wrap_long_line ( - if global_opt.kcg then "assume ID : " ^ string_of_val_exp_eff eq_eff.it ^ ";" + if global_opt.kcg then "assume " ^ FreshName.local_var "A" ^ ": " ^ string_of_val_exp_eff eq_eff.it ^ ";" else "assert(" ^ string_of_val_exp_eff eq_eff.it ^ ");") diff --git a/test/lus2lic-kcg.sum b/test/lus2lic-kcg.sum index e17d88f76fa0e3215ddf229dc13ec28531a46b88..b18f2fb05d44abbae49ab8f9ca8f1b50f7564845 100644 --- a/test/lus2lic-kcg.sum +++ b/test/lus2lic-kcg.sum @@ -1,4 +1,4 @@ -Test Run By ndiaye on Thu Jun 25 09:41:30 2015 +Test Run By ndiaye on Fri Jul 3 11:13:08 2015 Native configuration is x86_64-unknown-linux-gnu === lus2lic-kcg tests === @@ -35,15 +35,12 @@ PASS: /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c SOURIS_scade.lus -n PASS: ./lus2lic {-kcg -o STABLE_scade.lus STABLE.lus -n STABLE} FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c STABLE_scade.lus -node STABLE PASS: ./lus2lic {-kcg -o SWITCH_scade.lus SWITCH.lus -n SWITCH} -FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c SWITCH_scade.lus -node SWITCH PASS: ./lus2lic {-kcg -o SWITCH1_scade.lus SWITCH1.lus -n SWITCH1} -FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c SWITCH1_scade.lus -node SWITCH1 PASS: ./lus2lic {-kcg -o TIME_STABLE_scade.lus TIME_STABLE.lus -n TIME_STABLE} FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c TIME_STABLE_scade.lus -node TIME_STABLE PASS: ./lus2lic {-kcg -o TIME_STABLE1_scade.lus TIME_STABLE1.lus -n TIME_STABLE1} FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c TIME_STABLE1_scade.lus -node TIME_STABLE1 PASS: ./lus2lic {-kcg -o Watch_scade.lus Watch.lus -n Watch} -FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c Watch_scade.lus -node Watch PASS: ./lus2lic {-kcg -o X_scade.lus X.lus -n X} FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c X_scade.lus -node X PASS: ./lus2lic {-kcg -o X2_scade.lus X2.lus -n X2} @@ -65,7 +62,6 @@ PASS: /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c after_scade.lus -no PASS: ./lus2lic {-kcg -o alias_scade.lus alias.lus -n alias} FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c alias_scade.lus -node alias PASS: ./lus2lic {-kcg -o arbitre_scade.lus arbitre.lus -n arbitre} -FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c arbitre_scade.lus -node arbitre PASS: ./lus2lic {-kcg -o argos_scade.lus argos.lus -n argos} PASS: /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c argos_scade.lus -node argos PASS: ./lus2lic {-kcg -o array_concat_scade.lus array_concat.lus -n array_concat} @@ -129,7 +125,6 @@ FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/mi PASS: ./lus2lic {-kcg -o clock_ite_scade.lus clock_ite.lus -n clock_ite} FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c clock_ite_scade.lus -node clock_ite PASS: ./lus2lic {-kcg -o cminus_scade.lus cminus.lus -n cminus} -FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c cminus_scade.lus -node cminus PASS: ./lus2lic {-kcg -o complex_scade.lus complex.lus -n complex} PASS: /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c complex_scade.lus -node complex PASS: ./lus2lic {-kcg -o compteur_scade.lus compteur.lus -n compteur} @@ -177,7 +172,6 @@ FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/mi PASS: ./lus2lic {-kcg -o filter_scade.lus filter.lus -n filter} PASS: /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c filter_scade.lus -node filter PASS: ./lus2lic {-kcg -o flo_scade.lus flo.lus -n flo} -FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c flo_scade.lus -node flo PASS: ./lus2lic {-kcg -o followed_by_scade.lus followed_by.lus -n followed_by} PASS: /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c followed_by_scade.lus -node followed_by PASS: ./lus2lic {-kcg -o fresh_name_scade.lus fresh_name.lus -n fresh_name} @@ -275,13 +269,9 @@ PASS: /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c morel4_scade.lus -n PASS: ./lus2lic {-kcg -o morel5_scade.lus morel5.lus -n morel5} PASS: /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c morel5_scade.lus -node morel5 PASS: ./lus2lic {-kcg -o mouse_scade.lus mouse.lus -n mouse} -FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c mouse_scade.lus -node mouse PASS: ./lus2lic {-kcg -o mouse1_scade.lus mouse1.lus -n mouse1} -FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c mouse1_scade.lus -node mouse1 PASS: ./lus2lic {-kcg -o mouse2_scade.lus mouse2.lus -n mouse2} -FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c mouse2_scade.lus -node mouse2 PASS: ./lus2lic {-kcg -o mouse3_scade.lus mouse3.lus -n mouse3} -FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c mouse3_scade.lus -node mouse3 PASS: ./lus2lic {-kcg -o moyenne_scade.lus moyenne.lus -n moyenne} FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c moyenne_scade.lus -node moyenne PASS: ./lus2lic {-kcg -o multiclock_scade.lus multiclock.lus -n multiclock} @@ -324,13 +314,11 @@ FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/mi PASS: ./lus2lic {-kcg -o notTwo_scade.lus notTwo.lus -n notTwo} PASS: /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c notTwo_scade.lus -node notTwo PASS: ./lus2lic {-kcg -o o2l_feux_compl_scade.lus o2l_feux_compl.lus -n o2l_feux_compl} -FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c o2l_feux_compl_scade.lus -node o2l_feux_compl +PASS: /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c o2l_feux_compl_scade.lus -node o2l_feux_compl PASS: ./lus2lic {-kcg -o oneq_scade.lus oneq.lus -n oneq} PASS: /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c oneq_scade.lus -node oneq PASS: ./lus2lic {-kcg -o onlyroll_scade.lus onlyroll.lus -n onlyroll} -FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c onlyroll_scade.lus -node onlyroll PASS: ./lus2lic {-kcg -o onlyroll2_scade.lus onlyroll2.lus -n onlyroll2} -FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c onlyroll2_scade.lus -node onlyroll2 PASS: ./lus2lic {-kcg -o over2_scade.lus over2.lus -n over2} FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c over2_scade.lus -node over2 PASS: ./lus2lic {-kcg -o over3_scade.lus over3.lus -n over3} @@ -366,8 +354,8 @@ PASS: ./lus2lic {-kcg -o ply03_scade.lus ply03.lus -n ply03} FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c ply03_scade.lus -node ply03 PASS: ./lus2lic {-kcg -o polymorphic_pack_scade.lus polymorphic_pack.lus -n polymorphic_pack} PASS: ./lus2lic {-kcg -o poussoir_scade.lus poussoir.lus -n poussoir} -FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c poussoir_scade.lus -node poussoir -FAIL: Test -kcg : ./lus2lic {-kcg -o pplus_scade.lus pplus.lus -n pplus} +PASS: ./lus2lic {-kcg -o pplus_scade.lus pplus.lus -n pplus} +PASS: /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c pplus_scade.lus -node pplus PASS: ./lus2lic {-kcg -o pre_x_scade.lus pre_x.lus -n pre_x} PASS: /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c pre_x_scade.lus -node pre_x PASS: ./lus2lic {-kcg -o predef01_scade.lus predef01.lus -n predef01} @@ -448,7 +436,7 @@ FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/mi PASS: ./lus2lic {-kcg -o test_node_expand_scade.lus test_node_expand.lus -n test_node_expand} PASS: /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c test_node_expand_scade.lus -node test_node_expand PASS: ./lus2lic {-kcg -o test_node_expand2_scade.lus test_node_expand2.lus -n test_node_expand2} -FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c test_node_expand2_scade.lus -node test_node_expand2 +PASS: /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c test_node_expand2_scade.lus -node test_node_expand2 PASS: ./lus2lic {-kcg -o test_poly_scade.lus test_poly.lus -n test_poly} FAIL: Check that the generated scade code compiles : /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c test_poly_scade.lus -node test_poly PASS: ./lus2lic {-kcg -o test_struct_scade.lus test_struct.lus -n test_struct} @@ -498,5 +486,5 @@ PASS: /usr/local/tools/lustre/misc/scade-win32/621/bin/s2c zzz2_scade.lus -nod === lus2lic-kcg Summary === -# of expected passes 368 -# of unexpected failures 119 +# of expected passes 372 +# of unexpected failures 103