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