diff --git a/src/compile.ml b/src/compile.ml index 62a9ffe95654764ae139464cb663440252baa933..92ba6c82ccf437ff2ca61f5fc2cb490c9bb6858e 100644 --- a/src/compile.ml +++ b/src/compile.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 26/02/2015 (at 11:20) by Erwan Jahier> *) +(* Time-stamp: <modified the 03/03/2015 (at 10:58) by Erwan Jahier> *) open Lxm open Lv6errors @@ -151,7 +151,6 @@ let test_lex ( lexbuf ) = ( let lus_load lexbuf = let tree = Lv6parser.program Lv6lexer.lexer lexbuf in LicName.update_fresh_var_prefix (); - (* ICI *) AstRecognizePredef.f tree type maybe_packed = diff --git a/src/l2lExpandArrays.ml b/src/l2lExpandArrays.ml index 1702de02800f4ca7f7c6be3379feff00d3519d87..8a48e3751c15545c375196b3df373e2c389ca952 100644 --- a/src/l2lExpandArrays.ml +++ b/src/l2lExpandArrays.ml @@ -1,4 +1,4 @@ -(** Time-stamp: <modified the 26/02/2015 (at 11:21) by Erwan Jahier> *) +(** Time-stamp: <modified the 03/03/2015 (at 10:43) by Erwan Jahier> *) (* Replace structures and arrays by as many variables as necessary. Since structures can be nested, it migth be a lot of new variables... @@ -38,7 +38,6 @@ let dbg = (Verbose.get_flag "esa") (********************************************************************************) (* pack useful info (while expanding nodes) into a single struct *) type local_ctx = { - idgen : LicPrg.id_generator; node : Lic.node_exp; prg : LicPrg.t; } @@ -47,8 +46,7 @@ type local_ctx = { XXX code dupl. with Split.new_var *) let new_var str lctx type_eff clock_eff = - let id = Lv6Id.of_string (LicName.new_local_var str) in - (* let id = lctx.idgen str in (* XXX use which one ??? *) *) + let id = Lv6Id.of_string (LicName.new_local_var str) in let var = { var_name_eff = id; @@ -655,7 +653,6 @@ let rec (doit : LicPrg.t -> LicPrg.t) = Verbose.exe ~flag:dbg (fun() -> Printf.printf "#DBG: L2lExpandArrays expands '%s'\n" (Lic.string_of_node_key nk)); let lctx = { - idgen = LicPrg.fresh_var_id_generator inprg ne; node = ne; prg = inprg; } diff --git a/src/l2lExpandMetaOp.ml b/src/l2lExpandMetaOp.ml index d0ab95a201e25858371230f7d54e9e8ee2b9d096..da8f0cdfa509f551db1c599ef7240f29cdb90f14 100644 --- a/src/l2lExpandMetaOp.ml +++ b/src/l2lExpandMetaOp.ml @@ -1,4 +1,4 @@ -(** Time-stamp: <modified the 26/02/2015 (at 11:21) by Erwan Jahier> *) +(** Time-stamp: <modified the 03/03/2015 (at 10:43) by Erwan Jahier> *) open Lxm open Lic @@ -7,7 +7,6 @@ let dbg = (Verbose.get_flag "ei") (* pack useful info into a single struct *) type local_ctx = { - idgen : LicPrg.id_generator; node : Lic.node_exp; prg : LicPrg.t; } @@ -15,7 +14,7 @@ type local_ctx = { (********************************************************************************) (* stuff to create fresh var names. *) let new_var str lctx type_eff clock_eff = - let id = Lv6Id.of_string (LicName.new_local_var str) in + let id = Lv6Id.of_string (LicName.new_local_var str) in let var = { var_name_eff = id; @@ -515,7 +514,6 @@ let (doit : LicPrg.t -> LicPrg.t) = let rec (do_node : Lic.node_key -> Lic.node_exp -> LicPrg.t -> LicPrg.t) = fun nk ne outprg -> let lctx = { - idgen = LicPrg.fresh_var_id_generator inprg ne; node = ne; prg = inprg; } diff --git a/src/l2lOptimIte.ml b/src/l2lOptimIte.ml index bb4eb2073e9e5825a688ff9ac7b521de4073a7b6..088ca249eef7886bff6ed15a9c77108c4cf883b0 100644 --- a/src/l2lOptimIte.ml +++ b/src/l2lOptimIte.ml @@ -1,4 +1,4 @@ -(** Time-stamp: <modified the 21/01/2015 (at 15:44) by Erwan Jahier> *) +(** Time-stamp: <modified the 02/03/2015 (at 17:47) by Erwan Jahier> *) open Lxm open Lic @@ -54,7 +54,7 @@ let (val_exp_when_clk : Lic.val_exp -> Lic.clock -> Lic.val_exp) = ve_clk = List.map (fun _ -> clk) ve.ve_clk; (* *) ve_core = CallByPosLic({ src=lxm; it=Lic.WHEN clk },[ve]); } - + let (gen_merge : Lxm.t -> Lic.val_exp -> Lic.val_exp -> Lic.val_exp -> acc -> Lic.val_exp_core * acc ) = fun lxm cond ve1 ve2 acc -> diff --git a/src/l2lSplit.ml b/src/l2lSplit.ml index 2cad1577974221001665ed699843bd0bf42c57a3..5bd08494ccb797359e17223958d404c6566bef24 100644 --- a/src/l2lSplit.ml +++ b/src/l2lSplit.ml @@ -17,16 +17,13 @@ let info msg = (********************************************************************************) -(* XXX use LicName.new_var_info *) - -let new_var getid type_eff clock_eff = - let id = getid "v" in +let new_var type_eff clock_eff = + let id = Lv6Id.of_string (LicName.new_local_var "v") in let var = { var_name_eff = id; var_nature_eff = AstCore.VarLocal; - var_number_eff = -1; (* this field is used only for i/o. - Should i rather put something sensible there ? *) + var_number_eff = -1; var_type_eff = type_eff; var_clock_eff = id,clock_eff; } in @@ -163,21 +160,19 @@ let (split_tuples:Lic.eq_info Lxm.srcflagged list -> Lic.eq_info Lxm.srcflagged *) type split_acc = (Lic.eq_info srcflagged) list * Lic.var_info list -let rec (eq : LicPrg.id_generator -> Lic.eq_info Lxm.srcflagged -> split_acc) = - fun getid { src = lxm_eq ; it = (lhs, rhs) } -> - let n_rhs, (neqs, nlocs) = split_val_exp false true getid rhs in +let rec (eq : Lic.eq_info Lxm.srcflagged -> split_acc) = + fun { src = lxm_eq ; it = (lhs, rhs) } -> + let n_rhs, (neqs, nlocs) = split_val_exp false true rhs in { src = lxm_eq ; it = (lhs, n_rhs) }::neqs, nlocs -and (split_eq_acc : - LicPrg.id_generator -> split_acc -> Lic.eq_info srcflagged -> split_acc) = - fun getid (eqs, locs) equation -> - let (neqs, nlocs) = eq getid equation in +and (split_eq_acc : split_acc -> Lic.eq_info srcflagged -> split_acc) = + fun (eqs, locs) equation -> + let (neqs, nlocs) = eq equation in let neqs = split_tuples neqs in List.rev_append neqs eqs, List.rev_append nlocs locs -and (split_val_exp : bool -> bool -> LicPrg.id_generator -> Lic.val_exp -> - Lic.val_exp * split_acc) = - fun when_flag top_level getid ve -> +and (split_val_exp : bool -> bool -> Lic.val_exp -> Lic.val_exp * split_acc) = + fun when_flag top_level ve -> (* [when_flag] is true is the call is made from a "when" statement. We need this flag in order to know if it is necessary to add a when on constants. Indeed, in Lustre V6, it is not necessary @@ -191,9 +186,9 @@ and (split_val_exp : bool -> bool -> LicPrg.id_generator -> Lic.val_exp -> *) match ve.ve_core with | Merge(ce,cl) -> ( - let ce,(eql1, vl1) = split_val_exp false false getid ce in + let ce,(eql1, vl1) = split_val_exp false false ce in let const_l, vel = List.split cl in - let vel,(eql2, vl2) = split_val_exp_list false false getid vel in + let vel,(eql2, vl2) = split_val_exp_list false false vel in let eql, vl = eql1@eql2, vl1@vl2 in let cl = List.combine const_l vel in let rhs = { ve with ve_core = Merge(ce,cl)} in @@ -202,7 +197,7 @@ and (split_val_exp : bool -> bool -> LicPrg.id_generator -> Lic.val_exp -> let clk_l = ve.ve_clk in let typ_l = ve.ve_typ in assert (List.length typ_l = List.length clk_l); - let nv_l = List.map2 (new_var getid) typ_l clk_l in + let nv_l = List.map2 new_var typ_l clk_l in let lxm = lxm_of_val_exp ve in let vi2val_exp nv = let _,clk = nv.var_clock_eff in @@ -243,7 +238,7 @@ and (split_val_exp : bool -> bool -> LicPrg.id_generator -> Lic.val_exp -> let fl, eql, vl = List.fold_left (fun (fl_acc, eql_acc, vl_acc) (fn, fv) -> - let fv, (eql, vl) = split_val_exp false false getid fv in + let fv, (eql, vl) = split_val_exp false false fv in ((fn,fv)::fl_acc, eql@eql_acc, vl@vl_acc) ) ([],[],[]) @@ -257,7 +252,7 @@ and (split_val_exp : bool -> bool -> LicPrg.id_generator -> Lic.val_exp -> let clk_l = ve.ve_clk in let typ_l = ve.ve_typ in assert (List.length typ_l = List.length clk_l); - let nv_l = List.map2 (new_var getid) typ_l clk_l in + let nv_l = List.map2 new_var typ_l clk_l in let nve = match nv_l with | [nv] -> { ve with ve_core = CallByPosLic( @@ -276,17 +271,17 @@ and (split_val_exp : bool -> bool -> LicPrg.id_generator -> Lic.val_exp -> let (rhs, (eql,vl)) = match by_pos_op_eff.it with | Lic.HAT(i) -> - let vel, (eql, vl) = split_val_exp_list false false getid vel in + let vel, (eql, vl) = split_val_exp_list false false vel in let by_pos_op_eff = Lxm.flagit (Lic.HAT(i)) lxm in let rhs = CallByPosLic(by_pos_op_eff, vel) in rhs, (eql, vl) | Lic.WHEN ve -> (* should we create a var for the clock? *) - let vel,(eql, vl) = split_val_exp_list true false getid vel in + let vel,(eql, vl) = split_val_exp_list true false vel in let by_pos_op_eff = Lxm.flagit (Lic.WHEN(ve)) lxm in let rhs = CallByPosLic(by_pos_op_eff, vel) in rhs, (eql, vl) | _ -> - let vel, (eql, vl) = split_val_exp_list false false getid vel in + let vel, (eql, vl) = split_val_exp_list false false vel in let rhs = CallByPosLic(by_pos_op_eff, vel) in rhs, (eql, vl) in @@ -298,7 +293,7 @@ and (split_val_exp : bool -> bool -> LicPrg.id_generator -> Lic.val_exp -> let clk_l = ve.ve_clk in let typ_l = ve.ve_typ in assert (List.length typ_l = List.length clk_l); - let nv_l = List.map2 (new_var getid) typ_l clk_l in + let nv_l = List.map2 new_var typ_l clk_l in let nve = match nv_l with | [nv] -> { @@ -334,17 +329,16 @@ and (split_val_exp : bool -> bool -> LicPrg.id_generator -> Lic.val_exp -> nve, (eql@[eq], vl@nv_l) ) -and (split_val_exp_list : bool -> - bool -> LicPrg.id_generator -> Lic.val_exp list -> Lic.val_exp list * split_acc) = - fun when_flag top_level getid vel -> +and (split_val_exp_list : bool -> bool -> Lic.val_exp list -> Lic.val_exp list * split_acc) = + fun when_flag top_level vel -> let vel, accl = - List.split (List.map (split_val_exp when_flag top_level getid) vel) + List.split (List.map (split_val_exp when_flag top_level) vel) in let eqll,vll = List.split accl in let eql, vl = List.flatten eqll, List.flatten vll in (vel,(eql,vl)) -and split_node (opt:Lv6MainArgs.t) (getid: LicPrg.id_generator) (n: Lic.node_exp) : Lic.node_exp = +and split_node (opt:Lv6MainArgs.t) (n: Lic.node_exp) : Lic.node_exp = Verbose.exe ~flag:dbg (fun () -> Printf.eprintf "*** Splitting node %s\n" (LicDump.string_of_node_key_iter n.node_key_eff); @@ -354,10 +348,10 @@ and split_node (opt:Lv6MainArgs.t) (getid: LicPrg.id_generator) (n: Lic.node_exp | MetaOpLic | AbstractLic None -> n | AbstractLic (Some pn) -> - { n with def_eff = AbstractLic (Some (split_node opt getid pn)) } + { n with def_eff = AbstractLic (Some (split_node opt pn)) } | BodyLic b -> let loc = match n.loclist_eff with None -> [] | Some l -> l in - let (neqs, nv) = List.fold_left (split_eq_acc getid) ([], loc) b.eqs_eff in + let (neqs, nv) = List.fold_left (split_eq_acc) ([], loc) b.eqs_eff in info (Printf.sprintf "Split %i equations into %i ones\n" (List.length b.eqs_eff)(List.length neqs)); @@ -370,7 +364,7 @@ and split_node (opt:Lv6MainArgs.t) (getid: LicPrg.id_generator) (n: Lic.node_exp let asserts = List.map (fun x -> x.it) b.asserts_eff in let lxm_asserts = List.map (fun x -> x.src) b.asserts_eff in let nasserts,(neqs_asserts,nv_asserts) = - split_val_exp_list false true getid asserts + split_val_exp_list false true asserts in assert (List.length nasserts = List.length lxm_asserts); let nasserts = List.map2 Lxm.flagit nasserts lxm_asserts in @@ -403,8 +397,7 @@ let rec doit (opt:Lv6MainArgs.t) (inprg : LicPrg.t) : LicPrg.t = let rec do_node k (ne:Lic.node_exp) = (* On passe en parametre un constructeur de nouvelle variable locale *) info (Printf.sprintf "#DBG: split equations of '%s'\n" (Lic.string_of_node_key k)); - let getid = LicPrg.fresh_var_id_generator inprg ne in - let ne' = split_node opt getid ne in + let ne' = split_node opt ne in res := LicPrg.add_node k ne' !res in (*LET's GO *) diff --git a/src/licName.ml b/src/licName.ml index 77e68aa517f94e57d2d412e42f3a4c9aed01dca4..7ba3b1f8ce8b32eaddeba39567608dfc4a4d4640 100644 --- a/src/licName.ml +++ b/src/licName.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 26/02/2015 (at 11:22) by Erwan Jahier> *) +(* Time-stamp: <modified the 03/03/2015 (at 10:50) by Erwan Jahier> *) (* maps node_key to a string that won't clash *) @@ -45,7 +45,7 @@ let local_var_tbl = Hashtbl.create 0 by "_0", and then "_1", and so on so forth. We take the first possible one. - nb : this won't work if the user defined idents from "_1" to + nb : this won't work if the user have defined all idents from "_1" to "_1073741823" (on 32-bits machine), but I bet that this compiler would die before anyway... @@ -84,6 +84,9 @@ module IntSet = let compare = compare end) +(* Make sure that update_fresh_var_prefix has been called *) +let fresh_var_prefix_updated = ref false + (* exported *) let (update_fresh_var_prefix : unit -> unit) = fun _ -> @@ -116,42 +119,43 @@ let (update_fresh_var_prefix : unit -> unit) = prerr_string ("I use " ^ new_prefix ^ " as prefix for fresh var names.\n"); flush stderr ) - ) + ); + fresh_var_prefix_updated := true -(********************************************************************************) -(* exported -XXX duplique le job de LicPrg.id_generator !!! -*) +(********************************************************************************) +(* exported *) let (new_local_var : string -> string) = fun prefix -> try let cpt = Hashtbl.find local_var_tbl prefix in - Hashtbl.replace local_var_tbl prefix (cpt+1); - !fresh_var_prefix ^ prefix ^"_"^ (string_of_int cpt) + assert (!fresh_var_prefix_updated); + Hashtbl.replace local_var_tbl prefix (cpt+1); + !fresh_var_prefix ^ prefix ^"_"^ (string_of_int cpt) with Not_found -> Hashtbl.add local_var_tbl prefix 2; !fresh_var_prefix ^ prefix ^ "_1" + (********************************************************************************) (* exported *) open Lic let (new_var_info : string -> Lic.type_ -> Lic.id_clock -> Lic.var_info) = fun str type_eff clock_eff -> - let id = Lv6Id.of_string (new_local_var str) in - let var = - { - var_name_eff = id; - var_nature_eff = AstCore.VarLocal; - var_number_eff = -1; (* this field is used only for i/o. - Should i rather put something sensible there ? *) - var_type_eff = type_eff; - var_clock_eff = clock_eff; - } - in - var + let id = Lv6Id.of_string (new_local_var str) in + let var = + { + var_name_eff = id; + var_nature_eff = AstCore.VarLocal; + var_number_eff = -1; (* this field is used only for i/o. + Should i rather put something sensible there ? *) + var_type_eff = type_eff; + var_clock_eff = clock_eff; + } + in + var (********************************************************************************) diff --git a/src/licName.mli b/src/licName.mli index 818748bc970c9e28f940f6839e24e83919e4c401..7ca61ad011b62ebdcf382f3b697bd24f88e48d02 100644 --- a/src/licName.mli +++ b/src/licName.mli @@ -1,16 +1,24 @@ -(* Time-stamp: <modified the 16/01/2015 (at 13:52) by Erwan Jahier> *) +(* Time-stamp: <modified the 03/03/2015 (at 11:01) by Erwan Jahier> *) (** All new identifier names ougth to be created via this module. *) +(** To be called just after the parsing (to make sure that fresh + var names won't clash with user idents. ) + + Indeed, during the parsing, we collect the set of forbidden id that + we (somehow) transmit to the fresh id generator below. +*) +val update_fresh_var_prefix : unit -> unit + (** [node_key nk] returns a fresh node ident. - The idea is the following: the caller propose a name to map the - node key. But since that name may clash, we need to work a little bit - more. This is the purpose of that function. - - nb : for a certain node key, it will always return the same string - (which means that [name] migth be ignored). + The idea is the following: the caller propose a name to map the + node key. But since that name may clash, we sometimes need to work + a little bit more. This is the purpose of that function. + + nb : for a node key, it will always return the same string + (which means that [name] migth be ignored). *) val node_key: Lic.node_key -> string -> string @@ -27,7 +35,5 @@ val new_var_info : string -> Lic.type_ -> Lic.id_clock -> Lic.var_info (** *) val array_type : Lic.type_ -> string -> string -(** To be called just after the parsing (to make sure that fresh var names won't clash with - user idents. ) *) -val update_fresh_var_prefix : unit -> unit + diff --git a/src/licPrg.ml b/src/licPrg.ml index a40c870bd118da4698a48e5ac71965feab48b12d..612ead3765f4e238ad27cbb88966012531f336d0 100644 --- a/src/licPrg.ml +++ b/src/licPrg.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 26/02/2015 (at 11:22) by Erwan Jahier> *) +(* Time-stamp: <modified the 03/03/2015 (at 10:42) by Erwan Jahier> *) module ItemKeyMap = struct include Map.Make ( @@ -47,15 +47,6 @@ let rec pretty_sfx i = else (pretty_sfx ((i-1)/5))^(Char.escaped (char_of_int (97 + (i-1) mod 5))) -(** CREER DES IDENTS TOUT FRAIS *) -let fresh_type_id this pname pfx = - let rec fresh x = - let id = Printf.sprintf "%s%s" pfx (pretty_sfx x) in - let res = Lv6Id.make_long pname id in - if ItemKeyMap.mem res this.types then fresh (x+1) - else res - in - fresh 0 (** RECHERCHE *) let find_type this k = try Some(ItemKeyMap.find k this.types ) with Not_found -> None @@ -265,38 +256,16 @@ let to_file (opt: Lv6MainArgs.t) (this:t) (main_node: Lv6Id.idref option) = this.nodes ) -(* GENERATEUR DE NOM DE VARIABLES +(********************************************************************************) +(* exported *) + +(** Creer Des Idents De Type Tout Frais *) +let fresh_type_id this pname pfx = + let rec fresh x = + let id = Printf.sprintf "%s%s" pfx (pretty_sfx x) in + let res = Lv6Id.make_long pname id in + if ItemKeyMap.mem res this.types then fresh (x+1) + else res + in + fresh 0 -XXX Refait le boulot de LicName !!! Merger les 2 mechanismes et prendre le meilleur !!! -ce qui est sur, c'est qu'il est mal rangé ici !!! -*) -type id_generator = string -> string - -let fresh_var_id_generator : t -> Lic.node_exp -> id_generator = - fun prg ne -> - let cpt = ref 0 in - let forbidden = Hashtbl.create 100 in - let _ = iter_consts (fun i c -> match c with - | Lic.Extern_const_eff (s,_) - | Lic.Abstract_const_eff (s,_,_,_) - | Lic.Enum_const_eff (s,_) -> Hashtbl.add forbidden (snd s) () - | _ -> () - ) prg in - let dovar vi = Hashtbl.add forbidden vi.Lic.var_name_eff () in - let _ = List.iter dovar ne.Lic.inlist_eff in - let _ = List.iter dovar ne.Lic.outlist_eff in - let _ = match ne.Lic.loclist_eff with - | Some l -> List.iter dovar l | None -> () - in - let rec dogen (pfx: string) : string = - let id = Printf.sprintf "%s%02d" pfx !cpt in - incr cpt; - try ( - let _ = Hashtbl.find forbidden id in - dogen pfx - ) with Not_found -> ( - Hashtbl.add forbidden id (); - id - ) - in - dogen diff --git a/src/licPrg.mli b/src/licPrg.mli index abadb2f20951c1a90ba3e24953e642e9c54bdcc2..99d5760a27c8acdb9af5ee81e0a0a282bdcf506f 100644 --- a/src/licPrg.mli +++ b/src/licPrg.mli @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 26/02/2015 (at 13:45) by Erwan Jahier> *) +(* Time-stamp: <modified the 03/03/2015 (at 10:42) by Erwan Jahier> *) (** The data structure resulting from the compilation process *) @@ -57,14 +57,3 @@ val choose_node : t -> (Lic.node_key * Lic.node_exp) option val find_var : Lv6Id.t -> Lic.node_exp -> Lic.var_info option val fresh_type_id : t -> Lv6Id.pack_name -> string -> Lv6Id.long - -(** utile : générateur de noms de flow 'frais' - ATTENTION ! si on en utilise plusieurs - en meme temps, il ne doivent pas interferer ! -*) -type id_generator = string -> string -(** Initialisé avec -- le programme (pour éviter les constantes existantes) -- le noeud auquel on veut ajouter des variables -Et renvoie un générateur d'id unique prefixe -> nom *) -val fresh_var_id_generator : t -> Lic.node_exp -> id_generator diff --git a/src/lv6parserUtils.ml b/src/lv6parserUtils.ml index ef8a48555463339e62915164c6b5e8ffd6935de5..da06a0f362c0ba2229b0c71063035c2369713b64 100644 --- a/src/lv6parserUtils.ml +++ b/src/lv6parserUtils.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 26/02/2015 (at 11:22) by Erwan Jahier> *) +(* Time-stamp: <modified the 03/03/2015 (at 10:57) by Erwan Jahier> *) (** *) diff --git a/test/lus2lic.sum b/test/lus2lic.sum index f29d16704692090b111696ece791a7bc3fda20f6..f63f5b21e4403d636e1ffba4ac9b86756ee654b0 100644 --- a/test/lus2lic.sum +++ b/test/lus2lic.sum @@ -1,5 +1,5 @@ ==> lus2lic0.sum <== -Test Run By jahier on Fri Feb 27 09:29:00 +Test Run By jahier on Tue Mar 3 11:08:43 Native configuration is x86_64-unknown-linux-gnu === lus2lic0 tests === @@ -63,7 +63,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 Fri Feb 27 09:29:05 +Test Run By jahier on Tue Mar 3 11:08:52 Native configuration is x86_64-unknown-linux-gnu === lus2lic1 tests === @@ -397,7 +397,7 @@ PASS: gcc -o multipar.exec multipar_multipar.c multipar_multipar_loop.c PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c multipar.lus {} ==> lus2lic2.sum <== -Test Run By jahier on Fri Feb 27 09:29:43 +Test Run By jahier on Tue Mar 3 11:09:30 Native configuration is x86_64-unknown-linux-gnu === lus2lic2 tests === @@ -727,7 +727,7 @@ PASS: gcc -o zzz2.exec zzz2_zzz2.c zzz2_zzz2_loop.c PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c zzz2.lus {} ==> lus2lic3.sum <== -Test Run By jahier on Fri Feb 27 09:31:01 +Test Run By jahier on Tue Mar 3 11:10:33 Native configuration is x86_64-unknown-linux-gnu === lus2lic3 tests === @@ -1230,7 +1230,7 @@ PASS: ./myec2c {-o multipar.c multipar.ec} PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node multipar.lus {} ==> lus2lic4.sum <== -Test Run By jahier on Fri Feb 27 09:31:53 +Test Run By jahier on Tue Mar 3 11:11:13 Native configuration is x86_64-unknown-linux-gnu === lus2lic4 tests === @@ -1726,14 +1726,14 @@ PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node zzz2.lus {} # of unexpected failures 3 =============================== # Total number of failures: 14 -lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 5 seconds +lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 9 seconds lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 38 seconds -lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 78 seconds -lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 51 seconds -lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 86 seconds +lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 63 seconds +lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 39 seconds +lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 71 seconds * Ref time: -0.04user 0.04system 4:19.05elapsed 0%CPU (0avgtext+0avgdata 5120maxresident)k -160inputs+0outputs (0major+5547minor)pagefaults 0swaps +0.05user 0.03system 3:40.99elapsed 0%CPU (0avgtext+0avgdata 5092maxresident)k +160inputs+0outputs (0major+5545minor)pagefaults 0swaps * Quick time (-j 4): -0.04user 0.02system 1:27.38elapsed 0%CPU (0avgtext+0avgdata 5088maxresident)k +0.04user 0.01system 1:28.07elapsed 0%CPU (0avgtext+0avgdata 5088maxresident)k 160inputs+0outputs (0major+5580minor)pagefaults 0swaps diff --git a/test/lus2lic.time b/test/lus2lic.time index 250753ec499bc0a8e5d8e2c27612e4d3a9f26ea4..5c371ba2080279605eaf1a5d3874b91fd67e143b 100644 --- a/test/lus2lic.time +++ b/test/lus2lic.time @@ -1,11 +1,11 @@ -lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 5 seconds +lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 9 seconds lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 38 seconds -lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 78 seconds -lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 51 seconds -lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 86 seconds +lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 63 seconds +lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 39 seconds +lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 71 seconds * Ref time: -0.04user 0.04system 4:19.05elapsed 0%CPU (0avgtext+0avgdata 5120maxresident)k -160inputs+0outputs (0major+5547minor)pagefaults 0swaps +0.05user 0.03system 3:40.99elapsed 0%CPU (0avgtext+0avgdata 5092maxresident)k +160inputs+0outputs (0major+5545minor)pagefaults 0swaps * Quick time (-j 4): -0.04user 0.02system 1:27.38elapsed 0%CPU (0avgtext+0avgdata 5088maxresident)k +0.04user 0.01system 1:28.07elapsed 0%CPU (0avgtext+0avgdata 5088maxresident)k 160inputs+0outputs (0major+5580minor)pagefaults 0swaps