From 20ea0839819bc152dbb9d3fa73c14fbb95e44ea1 Mon Sep 17 00:00:00 2001 From: Erwan Jahier <erwan.jahier@univ-grenoble-alpes.fr> Date: Wed, 1 Jul 2020 15:33:24 +0200 Subject: [PATCH] Fix: track the Step module, defined in the previous commit (result of the Main split) --- lib/sasacore/step.ml | 27 +++++++++++++++++++++++++++ lib/sasacore/step.mli | 2 ++ 2 files changed, 29 insertions(+) create mode 100644 lib/sasacore/step.ml create mode 100644 lib/sasacore/step.mli diff --git a/lib/sasacore/step.ml b/lib/sasacore/step.ml new file mode 100644 index 00000000..55068b97 --- /dev/null +++ b/lib/sasacore/step.ml @@ -0,0 +1,27 @@ + +open Register +open Process + + +let (update_neighbor_env: 'v Env.t -> 'v Register.neighbor -> 'v Register.neighbor) = + fun e n -> + { n with state = Env.get_copy e n.Register.pid } + +let (update_env: 'v Env.t -> 'v Process.t * 'v -> 'v Env.t) = + fun e (p, st) -> + Env.set e p.pid st + + +let (f : ('v Process.t * 'v Register.neighbor list * action) list -> 'v Env.t + -> 'v Env.t) = + fun pnal e -> + let lenv_list = + List.map (fun (p,nl,a) -> + let nl = List.map (update_neighbor_env e) nl in + let lenv = Env.get_copy e p.pid in + p, p.step nl lenv a) + pnal + in + (* 4: update the env *) + let ne = List.fold_left update_env e lenv_list in + ne diff --git a/lib/sasacore/step.mli b/lib/sasacore/step.mli new file mode 100644 index 00000000..0ca3da97 --- /dev/null +++ b/lib/sasacore/step.mli @@ -0,0 +1,2 @@ +val f : ('v Process.t * 'v Register.neighbor list * Register.action) list -> 'v Env.t + -> 'v Env.t -- GitLab