diff --git a/_oasis b/_oasis index b8954e1e9f33eba8d36d7610db286e4c5a2f1a98..534828e9a4fb4d55c8cee65a728fa8166cc77624 100644 --- a/_oasis +++ b/_oasis @@ -1,6 +1,6 @@ OASISFormat: 0.4 Name: lustre-v6 -Version: 1.656 +Version: 1.657 Synopsis: The Lustre V6 Verimag compiler Description: This package contains: (1) lus2lic: the (current) name of the compiler (and interpreter via -exec). diff --git a/src/l2lNoWhenNot.ml b/src/l2lNoWhenNot.ml index 8f3d79fb2268720ee57b21d6a3ef933208033801..488a0518a1a96b7d8b5b1786ac21054cc72c43aa 100644 --- a/src/l2lNoWhenNot.ml +++ b/src/l2lNoWhenNot.ml @@ -1,4 +1,4 @@ -(** Time-stamp: <modified the 26/08/2016 (at 15:04) by Erwan Jahier> *) +(** Time-stamp: <modified the 26/08/2016 (at 15:31) by Erwan Jahier> *) open Lxm open Lic @@ -89,6 +89,12 @@ let rec update_clock : Lxm.t -> acc -> clock -> clock * acc = in On((("Lustre","true"),nv.var_name_eff, Bool_type_eff), sclk), acc +let rec update_clock_list : Lxm.t -> clock list * acc -> clock -> clock list * acc = + fun lxm (res,acc) clk -> + let clk, acc = update_clock lxm acc clk in + clk::res, acc + + let update_var_info : Lxm.t -> acc -> var_info -> var_info * acc = fun lxm acc vi -> let (id, clk) = vi.var_clock_eff in @@ -189,7 +195,11 @@ and (do_val_exp: LicPrg.t -> val_exp -> acc -> val_exp * acc) = CallByPosLic(op, vel), acc ) in - { ve with ve_core = ve_core },acc + let lxm = lxm_of_val_exp ve in + let ve_clk, acc = List.fold_left (update_clock_list lxm) ([],acc) ve.ve_clk in + { ve with ve_core = ve_core; + ve_clk = List.rev ve_clk; + },acc and (do_val_exp_flag: LicPrg.t -> val_exp srcflagged -> acc -> val_exp srcflagged * acc) = diff --git a/src/l2lWhenOnId.ml b/src/l2lWhenOnId.ml index ee77956b57006e8ec2c5ccbdf3307e05392c2da8..853eb00130189dafa7fe176c826de47a5a023088 100644 --- a/src/l2lWhenOnId.ml +++ b/src/l2lWhenOnId.ml @@ -1,4 +1,4 @@ -(** Time-stamp: <modified the 26/08/2016 (at 10:53) by Erwan Jahier> *) +(** Time-stamp: <modified the 26/08/2016 (at 15:27) by Erwan Jahier> *) open Lxm open Lic @@ -99,6 +99,12 @@ let rec update_clock : Lxm.t -> acc -> clock -> clock * acc = let nv, acc = gen_ident lxm cc cv ct sclk acc in On((("Lustre","true"),nv.var_name_eff, Bool_type_eff), sclk), acc +let rec update_clock_list : Lxm.t -> clock list * acc -> clock -> clock list * acc = + fun lxm (res,acc) clk -> + let clk, acc = update_clock lxm acc clk in + clk::res, acc + + let update_var_info : Lxm.t -> acc -> var_info -> var_info * acc = fun lxm acc vi -> let (id, clk) = vi.var_clock_eff in @@ -198,8 +204,13 @@ and (do_val_exp: LicPrg.t -> val_exp -> acc -> val_exp * acc) = | _ -> CallByPosLic(op, vel), acc ) - in - { ve with ve_core = ve_core },acc + in + let lxm = lxm_of_val_exp ve in + let ve_clk, acc = List.fold_left (update_clock_list lxm) ([],acc) ve.ve_clk in + { ve with + ve_core = ve_core; + ve_clk = List.rev ve_clk; + },acc and (do_val_exp_flag: LicPrg.t -> val_exp srcflagged -> acc -> val_exp srcflagged * acc) = diff --git a/src/lv6version.ml b/src/lv6version.ml index 6499d5aba61391e132b78738ec641fa18dc01c5e..84d1bc3708c047e128e5e5b4232b4ca76aefa130 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 = "656" -let sha_1 = "ec68a79c765f907feb08a0a74eff5262bc4cd18c" +let commit = "657" +let sha_1 = "1a153291f645c667cb3189a1f1352817bf316944" let str = (branch ^ "." ^ commit ^ " (" ^ sha_1 ^ ")") let maintainer = "jahier@imag.fr"