diff --git a/lib/socExecDbg.ml b/lib/socExecDbg.ml index 96c9c23122c9756f23aa524e1049b8d3834d703c..763e22f7dc561649071d623e95a3727ca1032e81 100644 --- a/lib/socExecDbg.ml +++ b/lib/socExecDbg.ml @@ -1,4 +1,4 @@ -(* Time-stamp: <modified the 10/12/2019 (at 10:20) by Erwan Jahier> *) +(* Time-stamp: <modified the 16/03/2020 (at 11:37) by Erwan Jahier> *) open Soc open Data open SocExecValue @@ -40,19 +40,19 @@ let make_simple_sinfo lxm name is os = Some(fun () -> let atom = { - Event.str = name; - Event.file = Lxm.file lxm ; - Event.line = Lxm.line lxm ,Lxm.line lxm ; - Event.char = Lxm.cstart lxm, Lxm.cend lxm; - Event.stack = None; + RdbgEvent.str = name; + RdbgEvent.file = Lxm.file lxm ; + RdbgEvent.line = Lxm.line lxm ,Lxm.line lxm ; + RdbgEvent.char = Lxm.cstart lxm, Lxm.cend lxm; + RdbgEvent.stack = None; } in { - Event.expr = Expr.Var (Lxm.str lxm); - Event.atoms = [atom]; - Event.more = None; - Event.in_subst = is ; - Event.out_subst = os ; + RdbgEvent.expr = Expr.Var (Lxm.str lxm); + RdbgEvent.atoms = [atom]; + RdbgEvent.more = None; + RdbgEvent.in_subst = is ; + RdbgEvent.out_subst = os ; } ) @@ -61,23 +61,23 @@ let make_sinfo lxm name_opt ectx in_subst out_subst = Some(fun () -> let atom = { - Event.str = (match name_opt with Some n -> n | None -> Lxm.str lxm); - (* Event.str = (Lxm.str lxm); *) - Event.file = Lxm.file lxm ; - Event.line = Lxm.line lxm ,Lxm.line lxm ; - Event.char = Lxm.cstart lxm, Lxm.cend lxm; - Event.stack = - match ectx.Event.sinfo with + RdbgEvent.str = (match name_opt with Some n -> n | None -> Lxm.str lxm); + (* RdbgEvent.str = (Lxm.str lxm); *) + RdbgEvent.file = Lxm.file lxm ; + RdbgEvent.line = Lxm.line lxm ,Lxm.line lxm ; + RdbgEvent.char = Lxm.cstart lxm, Lxm.cend lxm; + RdbgEvent.stack = + match ectx.RdbgEvent.sinfo with | None -> None - | Some si -> Some (List.hd ((si()).Event.atoms)); + | Some si -> Some (List.hd ((si()).RdbgEvent.atoms)); } in { - Event.expr = Expr.Var (Lxm.str lxm); - Event.atoms = [atom]; - Event.more = None; (* yet *) - Event.in_subst = in_subst ; - Event.out_subst = out_subst ; + RdbgEvent.expr = Expr.Var (Lxm.str lxm); + RdbgEvent.atoms = [atom]; + RdbgEvent.more = None; (* yet *) + RdbgEvent.in_subst = in_subst ; + RdbgEvent.out_subst = out_subst ; } ) let sinfo_subst arg var = @@ -89,8 +89,8 @@ let sinfo_subst arg var = | Slice (_,_,_,_,_,t) -> (SocUtils.string_of_filter arg, t), var -let (assign_expr_dbg : Lxm.t -> SocExecValue.ctx -> var_expr -> var_expr -> Event.t -> - (Event.t -> SocExecValue.ctx -> Event.t) -> Event.t) = +let (assign_expr_dbg : Lxm.t -> SocExecValue.ctx -> var_expr -> var_expr -> RdbgEvent.t -> + (RdbgEvent.t -> SocExecValue.ctx -> RdbgEvent.t) -> RdbgEvent.t) = fun lxm ctx ve_in ve_out ectx cont -> (* ve_out := ve_in (in ctx) *) let val_ve_in = SocExecValue.get_value ctx ve_in in let res = @@ -102,10 +102,10 @@ let (assign_expr_dbg : Lxm.t -> SocExecValue.ctx -> var_expr -> var_expr -> Even in (* let (datal:Data.subst list) = SocExecValue.get_vals res in *) let (datal:Data.subst list) = ["rhs",val_ve_in] in - let n = ectx.Event.nb in + let n = ectx.RdbgEvent.nb in let ectx = { ectx with - Event.nb = ectx.Event.nb+1; - Event.depth = ectx.Event.depth+1; + RdbgEvent.nb = ectx.RdbgEvent.nb+1; + RdbgEvent.depth = ectx.RdbgEvent.depth+1; } in let t = data_type_of_var_expr ve_in in @@ -115,39 +115,39 @@ let (assign_expr_dbg : Lxm.t -> SocExecValue.ctx -> var_expr -> var_expr -> Even in let cont2 local_ectx val_ctx = let (datal:Data.subst list) = [("rhs",val_ve_in);("lhs",val_ve_in)] in - let nectx = Event.incr_event_nb local_ectx in - let nectx = Event.decr_event_depth nectx in + let nectx = RdbgEvent.incr_event_nb local_ectx in + let nectx = RdbgEvent.decr_event_depth nectx in { ectx with - Event.kind = Event.Exit; - Event.name = "Assign"; - Event.lang = "lustre"; - Event.inputs = [("rhs", t)]; - Event.outputs = ["lhs", t]; - Event.locals = []; + RdbgEvent.kind = RdbgEvent.Exit; + RdbgEvent.name = "Assign"; + RdbgEvent.lang = "lustre"; + RdbgEvent.inputs = [("rhs", t)]; + RdbgEvent.outputs = ["lhs", t]; + RdbgEvent.locals = []; - Event.step = ectx.Event.step; - Event.nb = local_ectx.Event.nb; - Event.depth = ectx.Event.depth; - Event.sinfo = sinfo; - Event.data = datal; - Event.next = (fun () -> cont nectx val_ctx); - Event.terminate = ectx.Event.terminate; - Event.reset = ectx.Event.reset; + RdbgEvent.step = ectx.RdbgEvent.step; + RdbgEvent.nb = local_ectx.RdbgEvent.nb; + RdbgEvent.depth = ectx.RdbgEvent.depth; + RdbgEvent.sinfo = sinfo; + RdbgEvent.data = datal; + RdbgEvent.next = (fun () -> cont nectx val_ctx); + RdbgEvent.terminate = ectx.RdbgEvent.terminate; + RdbgEvent.reset = ectx.RdbgEvent.reset; } in { ectx with - Event.kind = Event.Call; - Event.name = "Assign"; - Event.lang = "lustre"; - Event.inputs = [("rhs", t)]; - Event.outputs = ["lhs", t]; - Event.locals = []; + RdbgEvent.kind = RdbgEvent.Call; + RdbgEvent.name = "Assign"; + RdbgEvent.lang = "lustre"; + RdbgEvent.inputs = [("rhs", t)]; + RdbgEvent.outputs = ["lhs", t]; + RdbgEvent.locals = []; - Event.sinfo = sinfo; - Event.step = ectx.Event.step; - Event.nb = n; - Event.data = datal; - Event.next = (fun () -> cont2 ectx res); + RdbgEvent.sinfo = sinfo; + RdbgEvent.step = ectx.RdbgEvent.step; + RdbgEvent.nb = n; + RdbgEvent.data = datal; + RdbgEvent.next = (fun () -> cont2 ectx res); } @@ -170,8 +170,8 @@ let get_input_vals val_ctx in_vars = (* Generates events that mimick node calls when array or struct are accessed *) let (gen_access_events : - Lxm.t -> var_expr -> Event.t -> SocExecValue.ctx -> - (Event.t -> SocExecValue.ctx -> Event.t) -> Event.t) = + Lxm.t -> var_expr -> RdbgEvent.t -> SocExecValue.ctx -> + (RdbgEvent.t -> SocExecValue.ctx -> RdbgEvent.t) -> RdbgEvent.t) = fun lxm v ectx val_ctx cont -> let v_str = SocUtils.lustre_string_of_var_expr v in let ve,id,short_id,t = match v with @@ -190,8 +190,8 @@ let (gen_access_events : let val_v_in = SocExecValue.get_value val_ctx0 ve in let (data:Data.subst list) = [ fst v_in, val_v_in] in let cont2 local_ectx val_ctx = - let nectx = Event.incr_event_nb local_ectx in - let nectx = { nectx with Event.sinfo = initial_sinfo } in + let nectx = RdbgEvent.incr_event_nb local_ectx in + let nectx = { nectx with RdbgEvent.sinfo = initial_sinfo } in let val_v_out = match v, val_v_in with | Index(_ve, i, _t) , A a -> a.(i) @@ -201,42 +201,42 @@ let (gen_access_events : in let data = (fst v_out, val_v_out)::data in { ectx with - Event.step = ectx.Event.step; - Event.nb = nectx.Event.nb; - Event.depth = ectx.Event.depth; - Event.kind = Event.Exit; - Event.lang = "lustre"; - Event.name = id; - Event.inputs = [v_in]; - Event.outputs = [v_out]; - Event.locals = []; - Event.sinfo = sinfo; - Event.data = data; - Event.next = (fun () -> cont nectx val_ctx); - Event.terminate = ectx.Event.terminate; - Event.reset = ectx.Event.reset; + RdbgEvent.step = ectx.RdbgEvent.step; + RdbgEvent.nb = nectx.RdbgEvent.nb; + RdbgEvent.depth = ectx.RdbgEvent.depth; + RdbgEvent.kind = RdbgEvent.Exit; + RdbgEvent.lang = "lustre"; + RdbgEvent.name = id; + RdbgEvent.inputs = [v_in]; + RdbgEvent.outputs = [v_out]; + RdbgEvent.locals = []; + RdbgEvent.sinfo = sinfo; + RdbgEvent.data = data; + RdbgEvent.next = (fun () -> cont nectx val_ctx); + RdbgEvent.terminate = ectx.RdbgEvent.terminate; + RdbgEvent.reset = ectx.RdbgEvent.reset; } in { ectx with - Event.step = ectx.Event.step; - Event.nb = ectx.Event.nb; - Event.depth = ectx.Event.depth; - Event.kind = Event.Call; - Event.lang = "lustre"; - Event.name = id; - Event.inputs = [v_in]; - Event.outputs = [v_out]; - Event.locals = []; - Event.sinfo = sinfo; - Event.data = data; - Event.next = (fun () -> cont2 ectx val_ctx); - Event.terminate = ectx.Event.terminate; - Event.reset = ectx.Event.reset; + RdbgEvent.step = ectx.RdbgEvent.step; + RdbgEvent.nb = ectx.RdbgEvent.nb; + RdbgEvent.depth = ectx.RdbgEvent.depth; + RdbgEvent.kind = RdbgEvent.Call; + RdbgEvent.lang = "lustre"; + RdbgEvent.name = id; + RdbgEvent.inputs = [v_in]; + RdbgEvent.outputs = [v_out]; + RdbgEvent.locals = []; + RdbgEvent.sinfo = sinfo; + RdbgEvent.data = data; + RdbgEvent.next = (fun () -> cont2 ectx val_ctx); + RdbgEvent.terminate = ectx.RdbgEvent.terminate; + RdbgEvent.reset = ectx.RdbgEvent.reset; } let rec (gen_access_events_list : - Lxm.t -> var_expr list -> Event.t -> SocExecValue.ctx -> - (Event.t -> SocExecValue.ctx -> Event.t) -> Event.t) = + Lxm.t -> var_expr list -> RdbgEvent.t -> SocExecValue.ctx -> + (RdbgEvent.t -> SocExecValue.ctx -> RdbgEvent.t) -> RdbgEvent.t) = fun lxm vel_in ectx val_ctx cont -> let vel_in = List.filter (function Index _ | Field _ -> true | _ -> false) vel_in in match vel_in with @@ -247,8 +247,8 @@ let rec (gen_access_events_list : let rec (soc_step : Lxm.t -> Soc.step_method -> Soc.tbl -> Soc.t -> - Event.t -> SocExecValue.ctx -> - (Event.t -> SocExecValue.ctx -> Event.t) -> Event.t) = + RdbgEvent.t -> SocExecValue.ctx -> + (RdbgEvent.t -> SocExecValue.ctx -> RdbgEvent.t) -> RdbgEvent.t) = fun _lxm step soc_tbl soc ectx val_ctx cont -> profile_info ("SocExecDbg.soc_step \n"); let soc_name,_,_ = soc.key in @@ -397,8 +397,8 @@ let rec (soc_step : Lxm.t -> Soc.step_method -> Soc.tbl -> Soc.t -> in event -and (do_gaol : Soc.tbl -> Event.t -> gao list -> SocExecValue.ctx -> - (Event.t -> SocExecValue.ctx -> Event.t) -> Event.t) = +and (do_gaol : Soc.tbl -> RdbgEvent.t -> gao list -> SocExecValue.ctx -> + (RdbgEvent.t -> SocExecValue.ctx -> RdbgEvent.t) -> RdbgEvent.t) = fun soc_tbl ectx gaol val_ctx cont -> match gaol with | [] -> assert false @@ -407,8 +407,8 @@ and (do_gaol : Soc.tbl -> Event.t -> gao list -> SocExecValue.ctx -> let cont ectx val_ctx = do_gaol soc_tbl ectx gaol val_ctx cont in do_gao soc_tbl ectx gao val_ctx cont -and (do_gao : Soc.tbl -> Event.t -> gao -> SocExecValue.ctx -> - (Event.t -> SocExecValue.ctx -> Event.t) -> Event.t) = +and (do_gao : Soc.tbl -> RdbgEvent.t -> gao -> SocExecValue.ctx -> + (RdbgEvent.t -> SocExecValue.ctx -> RdbgEvent.t) -> RdbgEvent.t) = fun soc_tbl ectx gao val_ctx cont -> match gao with | Case(id, id_gao_l,lxm) -> ( @@ -423,10 +423,10 @@ and (do_gao : Soc.tbl -> Event.t -> gao -> SocExecValue.ctx -> let (datal:Data.subst list) = ["clock", v] in let clock = ("clock", t) in - let n = ectx.Event.nb in + let n = ectx.RdbgEvent.nb in let ectx = { ectx with - Event.nb = ectx.Event.nb+1; - (* Event.depth = ectx.Event.depth+1; *) + RdbgEvent.nb = ectx.RdbgEvent.nb+1; + (* RdbgEvent.depth = ectx.RdbgEvent.depth+1; *) } in let sinfo = make_sinfo lxm (Some "when") ectx @@ -434,40 +434,40 @@ and (do_gao : Soc.tbl -> Event.t -> gao -> SocExecValue.ctx -> [] in let cont2 local_ectx val_ctx = - let nectx = Event.incr_event_nb local_ectx in - (* let nectx = Event.decr_event_depth nectx in *) + let nectx = RdbgEvent.incr_event_nb local_ectx in + (* let nectx = RdbgEvent.decr_event_depth nectx in *) { ectx with - Event.kind = Event.Exit; - Event.name = "when"; - Event.lang = "lustre"; - Event.inputs = [clock]; - Event.outputs = []; - Event.locals = []; + RdbgEvent.kind = RdbgEvent.Exit; + RdbgEvent.name = "when"; + RdbgEvent.lang = "lustre"; + RdbgEvent.inputs = [clock]; + RdbgEvent.outputs = []; + RdbgEvent.locals = []; - Event.step = ectx.Event.step; - Event.nb = local_ectx.Event.nb; - Event.depth = ectx.Event.depth+1; - Event.sinfo = sinfo; - Event.data = datal; - Event.next = (fun () -> cont nectx val_ctx); - Event.terminate = ectx.Event.terminate; - Event.reset = ectx.Event.reset; + RdbgEvent.step = ectx.RdbgEvent.step; + RdbgEvent.nb = local_ectx.RdbgEvent.nb; + RdbgEvent.depth = ectx.RdbgEvent.depth+1; + RdbgEvent.sinfo = sinfo; + RdbgEvent.data = datal; + RdbgEvent.next = (fun () -> cont nectx val_ctx); + RdbgEvent.terminate = ectx.RdbgEvent.terminate; + RdbgEvent.reset = ectx.RdbgEvent.reset; } in { ectx with - Event.kind = Event.Call; - Event.name = "when"; - Event.lang = "lustre"; - Event.inputs = [clock]; - Event.outputs = []; - Event.locals = []; + RdbgEvent.kind = RdbgEvent.Call; + RdbgEvent.name = "when"; + RdbgEvent.lang = "lustre"; + RdbgEvent.inputs = [clock]; + RdbgEvent.outputs = []; + RdbgEvent.locals = []; - Event.depth = ectx.Event.depth+1; - Event.sinfo = sinfo; - Event.step = ectx.Event.step; - Event.nb = n; - Event.data = datal; - Event.next = (fun () -> do_gaol soc_tbl ectx gaol val_ctx cont2); + RdbgEvent.depth = ectx.RdbgEvent.depth+1; + RdbgEvent.sinfo = sinfo; + RdbgEvent.step = ectx.RdbgEvent.step; + RdbgEvent.nb = n; + RdbgEvent.data = datal; + RdbgEvent.next = (fun () -> do_gaol soc_tbl ectx gaol val_ctx cont2); } @@ -527,8 +527,8 @@ and (do_gao : Soc.tbl -> Event.t -> gao -> SocExecValue.ctx -> cont ectx val_ctx ) and (do_soc_step : Lxm.t -> int option -> step_method -> SocExecValue.ctx -> - Soc.tbl -> Soc.t -> var_expr list -> var_expr list -> Event.t -> - (Event.t -> SocExecValue.ctx -> Event.t) -> Event.t) = + Soc.tbl -> Soc.t -> var_expr list -> var_expr list -> RdbgEvent.t -> + (RdbgEvent.t -> SocExecValue.ctx -> RdbgEvent.t) -> RdbgEvent.t) = fun lxm int_opt step val_ctx0 soc_tbl soc vel_in vel_out ectx0 cont0 -> let (soc_name,_,_) = soc.key in profile_info ("SocExecDbg.do_soc_step "^soc_name^"\n"); @@ -562,10 +562,10 @@ and (do_soc_step : Lxm.t -> int option -> step_method -> SocExecValue.ctx -> if String.length step_name > 8 && String.sub step_name 0 8 = "Lustre::" then None else Some step_name in - let initial_sinfo = ectx0.Event.sinfo in + let initial_sinfo = ectx0.RdbgEvent.sinfo in let ectx0 = { ectx0 with - Event.depth = ectx0.Event.depth+1; + RdbgEvent.depth = ectx0.RdbgEvent.depth+1; } in let sinfo = make_sinfo lxm name_opt ectx0 @@ -578,46 +578,46 @@ and (do_soc_step : Lxm.t -> int option -> step_method -> SocExecValue.ctx -> cont0 ectx { val_ctx with s = s_out } in let (datal:Data.subst list) = SocExecValue.get_vals val_ctx in - let nectx = Event.incr_event_nb local_ectx in - let nectx = Event.decr_event_depth nectx in - let nectx = { nectx with Event.sinfo = initial_sinfo } in + let nectx = RdbgEvent.incr_event_nb local_ectx in + let nectx = RdbgEvent.decr_event_depth nectx in + let nectx = { nectx with RdbgEvent.sinfo = initial_sinfo } in { nectx with - Event.step = nectx.Event.step; - Event.nb = local_ectx.Event.nb; - Event.depth = ectx0.Event.depth; - Event.kind = Event.Exit; - Event.lang = "lustre"; - Event.name = step_name; - Event.inputs = fst soc.profile; - Event.outputs = snd soc.profile; - Event.locals = locals; - Event.sinfo = sinfo; - Event.data = datal; - Event.next = (fun () -> cont3 nectx val_ctx); - Event.terminate = nectx.Event.terminate; - Event.reset = nectx.Event.reset; + RdbgEvent.step = nectx.RdbgEvent.step; + RdbgEvent.nb = local_ectx.RdbgEvent.nb; + RdbgEvent.depth = ectx0.RdbgEvent.depth; + RdbgEvent.kind = RdbgEvent.Exit; + RdbgEvent.lang = "lustre"; + RdbgEvent.name = step_name; + RdbgEvent.inputs = fst soc.profile; + RdbgEvent.outputs = snd soc.profile; + RdbgEvent.locals = locals; + RdbgEvent.sinfo = sinfo; + RdbgEvent.data = datal; + RdbgEvent.next = (fun () -> cont3 nectx val_ctx); + RdbgEvent.terminate = nectx.RdbgEvent.terminate; + RdbgEvent.reset = nectx.RdbgEvent.reset; } in let cont1 lectx val_ctx = let ectx = { lectx with - Event.name = step_name; - Event.inputs = fst soc.profile; - Event.outputs = snd soc.profile; - Event.locals = locals; - Event.sinfo = sinfo; + RdbgEvent.name = step_name; + RdbgEvent.inputs = fst soc.profile; + RdbgEvent.outputs = snd soc.profile; + RdbgEvent.locals = locals; + RdbgEvent.sinfo = sinfo; } in let val_ctx = { val_ctx with s = new_s } in (* let (datal:Data.subst list) = get_all_subst val_ctx.s in *) let datal = get_input_vals val_ctx step_in_vars in { ectx with - Event.kind = Event.Call; - Event.lang = "lustre"; - Event.data = datal; - Event.next = (fun () -> + RdbgEvent.kind = RdbgEvent.Call; + RdbgEvent.lang = "lustre"; + RdbgEvent.data = datal; + RdbgEvent.next = (fun () -> assert (List.mem step soc.step); - let ectx = Event.incr_event_nb ectx in + let ectx = RdbgEvent.incr_event_nb ectx in soc_step lxm step soc_tbl soc ectx val_ctx cont2 ); } @@ -644,8 +644,8 @@ and (filter_params : Soc.t -> Soc.var list -> int list -> Soc.var list) = (****************************************************************************) (* exported *) -and (do_step_dbg : Soc.tbl -> Soc.t -> Event.t -> SocExecValue.ctx -> - (Event.t -> SocExecValue.ctx -> Event.t) -> Event.t) = +and (do_step_dbg : Soc.tbl -> Soc.t -> RdbgEvent.t -> SocExecValue.ctx -> + (RdbgEvent.t -> SocExecValue.ctx -> RdbgEvent.t) -> RdbgEvent.t) = fun soc_tbl soc ectx val_ctx cont -> let soc_in_vars, _soc_out_vars = soc.profile in (* let (datal:Data.subst list) = get_all_subst val_ctx.s in *) @@ -665,76 +665,76 @@ and (do_step_dbg : Soc.tbl -> Soc.t -> Event.t -> SocExecValue.ctx -> Some(fun () -> let atom = { - Event.str = soc_name; - Event.file = Lxm.file lxm; - Event.line = Lxm.line lxm,Lxm.line lxm; - Event.char = Lxm.cstart lxm, Lxm.cend lxm; - Event.stack = None; + RdbgEvent.str = soc_name; + RdbgEvent.file = Lxm.file lxm; + RdbgEvent.line = Lxm.line lxm,Lxm.line lxm; + RdbgEvent.char = Lxm.cstart lxm, Lxm.cend lxm; + RdbgEvent.stack = None; } in { - Event.expr = Expr.Var "dummy" ; (* XXX *) - Event.atoms = [atom]; - Event.more = None; (* yet *) - Event.in_subst = []; - Event.out_subst = []; + RdbgEvent.expr = Expr.Var "dummy" ; (* XXX *) + RdbgEvent.atoms = [atom]; + RdbgEvent.more = None; (* yet *) + RdbgEvent.in_subst = []; + RdbgEvent.out_subst = []; } ) in let ectx = { ectx with - Event.name = soc_name; - Event.depth = ectx.Event.depth+1; - Event.data = datal; - Event.inputs = fst soc.profile; - Event.outputs = snd soc.profile; - Event.locals = locals; - Event.sinfo = sinfo; + RdbgEvent.name = soc_name; + RdbgEvent.depth = ectx.RdbgEvent.depth+1; + RdbgEvent.data = datal; + RdbgEvent.inputs = fst soc.profile; + RdbgEvent.outputs = snd soc.profile; + RdbgEvent.locals = locals; + RdbgEvent.sinfo = sinfo; } in let cont2 local_ectx val_ctx = (* je pourrais enlver les entrées... *) let (datal:Data.subst list) = SocExecValue.get_vals val_ctx in let nectx = { ectx with - Event.nb = local_ectx.Event.nb+1; - Event.data = datal; - Event.depth = ectx.Event.depth-1; + RdbgEvent.nb = local_ectx.RdbgEvent.nb+1; + RdbgEvent.data = datal; + RdbgEvent.depth = ectx.RdbgEvent.depth-1; } in { ectx with - Event.step = ectx.Event.step; - Event.nb = local_ectx.Event.nb; - Event.depth = ectx.Event.depth; - Event.kind = Event.Exit; - Event.lang = "lustre"; - Event.name = soc_name; - Event.inputs = fst soc.profile; - Event.outputs = snd soc.profile; - Event.locals = locals; - Event.sinfo = sinfo; - Event.data = datal; - Event.next = (fun () -> cont nectx val_ctx); - Event.terminate = ectx.Event.terminate; - Event.reset = ectx.Event.reset; + RdbgEvent.step = ectx.RdbgEvent.step; + RdbgEvent.nb = local_ectx.RdbgEvent.nb; + RdbgEvent.depth = ectx.RdbgEvent.depth; + RdbgEvent.kind = RdbgEvent.Exit; + RdbgEvent.lang = "lustre"; + RdbgEvent.name = soc_name; + RdbgEvent.inputs = fst soc.profile; + RdbgEvent.outputs = snd soc.profile; + RdbgEvent.locals = locals; + RdbgEvent.sinfo = sinfo; + RdbgEvent.data = datal; + RdbgEvent.next = (fun () -> cont nectx val_ctx); + RdbgEvent.terminate = ectx.RdbgEvent.terminate; + RdbgEvent.reset = ectx.RdbgEvent.reset; } in { ectx with - Event.step = ectx.Event.step; - Event.nb = ectx.Event.nb; - Event.depth = ectx.Event.depth; - Event.kind = Event.Call; - Event.lang = "lustre"; - Event.name = soc_name; - Event.inputs = ectx.Event.inputs; - Event.outputs = ectx.Event.outputs; - Event.locals = locals; - Event.sinfo = sinfo; - Event.data = ectx.Event.data; - Event.next = (fun () -> + RdbgEvent.step = ectx.RdbgEvent.step; + RdbgEvent.nb = ectx.RdbgEvent.nb; + RdbgEvent.depth = ectx.RdbgEvent.depth; + RdbgEvent.kind = RdbgEvent.Call; + RdbgEvent.lang = "lustre"; + RdbgEvent.name = soc_name; + RdbgEvent.inputs = ectx.RdbgEvent.inputs; + RdbgEvent.outputs = ectx.RdbgEvent.outputs; + RdbgEvent.locals = locals; + RdbgEvent.sinfo = sinfo; + RdbgEvent.data = ectx.RdbgEvent.data; + RdbgEvent.next = (fun () -> let step = match soc.step with [step] -> step | _ -> assert false in - let ectx = Event.incr_event_nb ectx in + let ectx = RdbgEvent.incr_event_nb ectx in soc_step step.lxm step soc_tbl soc ectx val_ctx cont2 ); - Event.terminate = ectx.Event.terminate; - Event.reset = ectx.Event.reset; + RdbgEvent.terminate = ectx.RdbgEvent.terminate; + RdbgEvent.reset = ectx.RdbgEvent.reset; } diff --git a/lib/socExecDbg.mli b/lib/socExecDbg.mli index 6cc1b703054f5d08ffea9dc624f459d06d9efce9..4d7d145d017afffea7a7b7f01945a342358242e4 100644 --- a/lib/socExecDbg.mli +++ b/lib/socExecDbg.mli @@ -1,8 +1,8 @@ -(* Time-stamp: <modified the 10/02/2016 (at 14:34) by Erwan Jahier> *) +(* Time-stamp: <modified the 16/03/2020 (at 11:37) by Erwan Jahier> *) (* The entry points for lus2licRun (i.e., for ltop/ldbg) *) val do_step : Soc.tbl -> Soc.t -> SocExecValue.ctx -> SocExecValue.ctx -val do_step_dbg : Soc.tbl -> Soc.t -> Event.t -> SocExecValue.ctx -> - (Event.t -> SocExecValue.ctx -> Event.t) -> Event.t +val do_step_dbg : Soc.tbl -> Soc.t -> RdbgEvent.t -> SocExecValue.ctx -> + (RdbgEvent.t -> SocExecValue.ctx -> RdbgEvent.t) -> RdbgEvent.t diff --git a/test/lus2lic.sum b/test/lus2lic.sum index 3f153b25a1778ffe0aaad71daee8b1b7f892ca82..816cb252f48ece3b1950c862b69a6086978dd174 100644 --- a/test/lus2lic.sum +++ b/test/lus2lic.sum @@ -1,5 +1,5 @@ ==> lus2lic0.sum <== -Test run by jahier on Fri Mar 13 11:51:14 +Test run by jahier on Tue Mar 17 15:59:19 Native configuration is x86_64-pc-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 Fri Mar 13 11:51:15 +Test run by jahier on Tue Mar 17 15:59:20 Native configuration is x86_64-pc-linux-gnu === lus2lic1 tests === @@ -413,7 +413,7 @@ PASS: ./lus2lic {-2c multipar.lus -n multipar} PASS: sh multipar.sh ==> lus2lic2.sum <== -Test run by jahier on Fri Mar 13 11:51:48 +Test run by jahier on Tue Mar 17 15:59:54 Native configuration is x86_64-pc-linux-gnu === lus2lic2 tests === @@ -753,7 +753,7 @@ PASS: sh zzz2.sh PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c zzz2.lus {} ==> lus2lic3.sum <== -Test run by jahier on Fri Mar 13 11:52:27 +Test run by jahier on Tue Mar 17 16:00:36 Native configuration is x86_64-pc-linux-gnu === lus2lic3 tests === @@ -1267,7 +1267,7 @@ PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node multipar.lus {} ==> lus2lic4.sum <== -Test run by jahier on Fri Mar 13 11:53:12 +Test run by jahier on Tue Mar 17 16:01:24 Native configuration is x86_64-pc-linux-gnu === lus2lic4 tests === @@ -1759,7 +1759,7 @@ PASS: /home/jahier/lus2lic/test/../utils/test_lus2lic_no_node zzz2.lus {} # of expected failures 54 ==> lus2lic1.sum <== -PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c multipar.lus 33421 {} +PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c multipar.lus 42945 {} === lus2lic1 Summary === @@ -1788,13 +1788,13 @@ PASS: /home/jahier/lus2lic/test/../utils/compare_exec_and_2c multipar.lus 33421 =============================== # Total number of failures: 10 lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 1 seconds -lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 33 seconds -lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 39 seconds -lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 45 seconds -lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 25 seconds +lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 34 seconds +lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 42 seconds +lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 48 seconds +lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 27 seconds * Ref time: -82.98user 26.19system 2:22.66elapsed 76%CPU (0avgtext+0avgdata 283996maxresident)k -0inputs+149888outputs (0major+11433733minor)pagefaults 0swaps +91.35user 25.60system 2:31.55elapsed 77%CPU (0avgtext+0avgdata 283744maxresident)k +8inputs+149864outputs (0major+11398400minor)pagefaults 0swaps * Quick time (-j 4): -104.96user 28.76system 1:25.60elapsed 156%CPU (0avgtext+0avgdata 283296maxresident)k -0inputs+147480outputs (0major+11277942minor)pagefaults 0swaps +103.77user 26.30system 1:25.06elapsed 152%CPU (0avgtext+0avgdata 283240maxresident)k +10496inputs+147536outputs (7major+11271430minor)pagefaults 0swaps