From cc029128132f66299170ba0ee822ad8614b8f0c6 Mon Sep 17 00:00:00 2001
From: Erwan Jahier <erwan.jahier@univ-grenoble-alpes.fr>
Date: Thu, 17 Jun 2021 14:42:22 +0200
Subject: [PATCH] Chore: refactor the code to be able to provide the whole
 SimuState.t to Daemons

---
 guides/contributors/Makefile        |   2 +-
 guides/contributors/dune-deps.pdf   | Bin 19669 -> 18969 bytes
 guides/contributors/module-deps.pdf | Bin 22388 -> 22515 bytes
 lib/sasa/sasaRun.ml                 |  32 +++++++++++++++-----------
 lib/sasacore/daemon.ml              |  31 ++++++++-----------------
 lib/sasacore/daemon.mli             |  26 +++++----------------
 lib/sasacore/daemonType.ml          |  16 +++++++++++++
 lib/sasacore/evil.ml                |  34 ++++++++++++++++------------
 lib/sasacore/evil.mli               |  24 +++++++++++---------
 lib/sasacore/sasArg.ml              |  22 +++++++++---------
 lib/sasacore/sasArg.mli             |   4 ++--
 lib/sasacore/simuState.mli          |   4 ++--
 lib/sasacore/step.ml                |   9 +++++++-
 lib/sasacore/step.mli               |   4 ++--
 src/sasaMain.ml                     |  11 ++++-----
 15 files changed, 114 insertions(+), 105 deletions(-)
 create mode 100644 lib/sasacore/daemonType.ml

diff --git a/guides/contributors/Makefile b/guides/contributors/Makefile
index 7745cdef..1259e211 100644
--- a/guides/contributors/Makefile
+++ b/guides/contributors/Makefile
@@ -6,7 +6,7 @@ module-deps.dot:
 	git ls-files ../.. | depgraph -i "test" -i "tools" | tred > $@
 
 dune-deps.dot:
-	dune-deps ../.. >  $@
+	dune-deps ../.. | tred  >  $@
 
 %.pdf: %.dot
 	dot -Tpdf $< > $@
diff --git a/guides/contributors/dune-deps.pdf b/guides/contributors/dune-deps.pdf
index 79ad81e7ea7395da74da00d4a26ff29028bb7817..582e623c3c1d56dc552a8662ed2d95bf98fbc0e1 100644
GIT binary patch
delta 17421
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
R<F+s}Fyc~Gb@g}S0szAC(|rH{

delta 18064
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
LX=X-rCu#lz*|;^L

diff --git a/guides/contributors/module-deps.pdf b/guides/contributors/module-deps.pdf
index 627955d1274d9465f6be01fd0839e0bffe46189f..c36d6ccfc8073832507cac365c1edb60e86471ad 100644
GIT binary patch
delta 20895
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%0AU@cDGs`;N8VOe~@>_d?M>J7<jdtRrx52SGrXm
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

delta 20766
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
J?FV-t{{uaHShWBE

diff --git a/lib/sasa/sasaRun.ml b/lib/sasa/sasaRun.ml
index dd4f96f4..adac46d8 100644
--- a/lib/sasa/sasaRun.ml
+++ b/lib/sasa/sasaRun.ml
@@ -104,12 +104,12 @@ let (make_do: string array -> 'v SimuState.t -> RdbgPlugin.t) =
         (* 2: read the actions from the outside process, i.e., from sl_in *)
         let _, pnal = Daemon.f st.sasarg.dummy_input
             (st.sasarg.verbose > 0) st.sasarg.daemon st.network
-            (SimuState.neigbors_of_pid st) st.config pre_pnall pre_enab_ll
-            (get_action_value sl_in)
+            (SimuState.neigbors_of_pid st) st pre_pnall pre_enab_ll
+            (get_action_value sl_in) Step.f
         in
         (* 3: Do the steps *)
-        let ne = Sasacore.Step.f pnal st.config in
-        let nst = update_config ne st in
+        let st = Sasacore.Step.f pnal st in
+        let nst = update_config st.config st in
         let sasa_nenv = from_sasa_env nst in
         (* 1': Get enable processes *)
         let pnall, enab_ll = Sasacore.SimuState.get_enable_processes nst in
@@ -117,7 +117,7 @@ let (make_do: string array -> 'v SimuState.t -> RdbgPlugin.t) =
         let silent = List.for_all (fun b -> not b) (List.flatten enab_ll) in
         let legit = compute_legitimate silent nst in
         pre_enable_processes_opt := Some(pnall, enab_ll);
-        sasa_config := ne;    
+        sasa_config := st.config;    
         ("silent", Data.B silent)::("legitimate", Data.B legit)::pot_sl @
         sasa_nenv @ (get_sl_out true pl enab_ll) 
   in
@@ -140,19 +140,25 @@ let (make_do: string array -> 'v SimuState.t -> RdbgPlugin.t) =
       )
       else
         (* 2: read the actions from the outside process, i.e., from sl_in *)
-        let activate_val, pnal = Daemon.f st.sasarg.dummy_input
-            (st.sasarg.verbose > 0) st.sasarg.daemon st.network (SimuState.neigbors_of_pid st)
-            st.config pnall enab_ll
-            (get_action_value sl_in)
+        let activate_val, pnal =
+          Daemon.f st.sasarg.dummy_input
+            (st.sasarg.verbose > 0) st.sasarg.daemon st.network
+            (SimuState.neigbors_of_pid st) st pnall enab_ll
+            (get_action_value sl_in) Step.f
         in
         (* 3: Do the steps *)
-        let ne = Sasacore.Step.f pnal st.config in
-        sasa_config := ne;
+        let st = Sasacore.Step.f pnal st in
+        sasa_config := st.config;
         ("silent", Data.B silent)::("legitimate", Data.B legit)::pot_sl @
         (from_sasa_env st) @ (get_sl_out true pl enab_ll) @
         (get_sl_out false pl activate_val)
   in
-  let step = if st.sasarg.daemon = Daemon.Custom then step_custom else step_internal_daemon in
+  let step =
+    if st.sasarg.daemon = DaemonType.Custom then
+      step_custom
+    else
+      step_internal_daemon
+  in
   let ss_table = Hashtbl.create 10 in
   let step_dbg sl_in ctx cont =
     let sl_out = step sl_in in 
@@ -200,7 +206,7 @@ let (make_do: string array -> 'v SimuState.t -> RdbgPlugin.t) =
           sasa_config := e; pre_enable_processes_opt := pepo
         | None ->
           Printf.eprintf "Cannot restore state %i from sasa\n" i;
-          flush stderr 
+          flush stderr
       );
   }
 
diff --git a/lib/sasacore/daemon.ml b/lib/sasacore/daemon.ml
index 1df0f285..5fcdad89 100644
--- a/lib/sasacore/daemon.ml
+++ b/lib/sasacore/daemon.ml
@@ -1,19 +1,8 @@
-(* Time-stamp: <modified the 31/05/2021 (at 11:22) by Erwan Jahier> *)
-
-type t =
-  | Synchronous (* select all actions *) 
-  | Central (* select 1 action *)
-  | LocallyCentral (* never activates two neighbors actions in the same step *)
-  | Distributed (* select at least one action *)
-  | Custom
-  | Greedy (* always choose the set of actions that maximize the potential function *)
-  | GreedyCentral (* Ditto, but chooses one action only *)
-  | Bad of int (* try to  choose the set  actions that  maximize the
-                  potential function but looking at sub-graphs of size
-                  N at max *)
+(* Time-stamp: <modified the 17/06/2021 (at 11:32) by Erwan Jahier> *)
 
 (* Enabled processes (with its enabling action + neighbors) *)           
 type 'v pna = 'v Process.t * 'v Register.neighbor list * Register.action
+type 'v step = 'v pna list -> 'v SimuState.t -> 'v SimuState.t
 
 let (random_list : 'a list -> 'a) = fun l ->
   assert (l <> []);
@@ -141,18 +130,18 @@ let (get_activate_val: 'v pna list -> 'v Process.t list -> bool list list)=
     let al = List.map (fun (p,_,a) -> p,a) al in
     List.map  (List.map (fun a -> List.mem a al)) actions 
 
-let (f: bool -> bool -> t -> 'v Process.t list ->
-     (string -> 'v * ('v Register.neighbor * string) list) -> 'v Env.t ->
-     'v pna list list -> bool list list -> (string -> string -> bool) ->
+let (f: bool -> bool -> DaemonType.t -> 'v Process.t list ->
+     (string -> 'v * ('v Register.neighbor * string) list) -> 'v SimuState.t ->
+     'v pna list list -> bool list list -> (string -> string -> bool) -> 'v step ->
      bool list list * 'v pna list) =
-  fun dummy_input verbose_mode daemon pl neigbors_of_pid e all enab get_action_value ->
+  fun dummy_in verbose_mode daemon pl neigbors_of_pid st all enab get_action_value step ->
   let nall = remove_empty_list all in
   if nall = [] then (
     Printf.printf "Warning: the algorithm is now Silent\n%!";
     get_activate_val [] pl, []
   )
   else (
-    if daemon <> Custom && dummy_input then
+    if daemon <> Custom && dummy_in then
       ignore (RifRead.bool verbose_mode ((List.hd pl).pid) "");
     match daemon with
     | Synchronous  ->
@@ -168,13 +157,13 @@ let (f: bool -> bool -> t -> 'v Process.t list ->
        let al = distributed nall in
        get_activate_val al pl, al
     | Greedy ->
-       let al = Evil.greedy verbose_mode e pl neigbors_of_pid nall in
+       let al = Evil.greedy verbose_mode st pl neigbors_of_pid step nall in
        get_activate_val al pl, al
     | GreedyCentral ->
-       let al = Evil.greedy_central verbose_mode e pl neigbors_of_pid nall in
+       let al = Evil.greedy_central verbose_mode st pl neigbors_of_pid step nall in
        get_activate_val al pl, al
     | Bad i ->
-       let al = Evil.bad i e nall in
+       let al = Evil.bad i st nall in
        get_activate_val al pl, al
     | Custom -> custom all pl enab get_action_value
   )
diff --git a/lib/sasacore/daemon.mli b/lib/sasacore/daemon.mli
index 6a71adba..2d1f5ef0 100644
--- a/lib/sasacore/daemon.mli
+++ b/lib/sasacore/daemon.mli
@@ -1,20 +1,4 @@
-(* Time-stamp: <modified the 07/05/2021 (at 16:42) by Erwan Jahier> *)
-
-type t =
-  | Synchronous (* select all actions *) 
-  | Central (* select 1 action *)
-  | LocallyCentral (* never activates two neighbors actions in the same step [1] *)
-  | Distributed (* select at least one action *)
-  | Custom (* enable/actions are communicated via stdin/stdout in RIF *)
-  | Greedy (* always choose the set that maximize the potential function *)
-  | GreedyCentral (* Ditto, but chooses one action only *)
-  | Bad of int (* try  to choose the  set actions that  maximize the
-                   potential  function but  looking  at sub-graphs  of
-                   size N at max *)
-
-(* [1] nb: the current implementation of locally central daemon is
-   biased by the degree of nodes. *)
-
+(* Time-stamp: <modified the 17/06/2021 (at 11:33) by Erwan Jahier> *)
 
 type 'v pna = 'v Process.t * 'v Register.neighbor list * Register.action
 
@@ -44,10 +28,12 @@ nb: it is possible that we read on stdin that an action should be
    inhibit the activation.
 *)
 
-val f : bool -> bool -> t -> 'v Process.t list ->
+type 'v step = 'v pna list -> 'v SimuState.t -> 'v SimuState.t
+            
+val f : bool -> bool -> DaemonType.t -> 'v Process.t list ->
   (string -> 'v * ('v Register.neighbor * string) list) ->
-  'v Env.t -> 'v pna list list -> bool list list ->
-  (string -> string -> bool) -> bool list list * 'v pna list
+  'v SimuState.t -> 'v pna list list -> bool list list ->
+  (string -> string -> bool) -> 'v step -> bool list list * 'v pna list
 
 
 (** Used in gtkgui.ml *)
diff --git a/lib/sasacore/daemonType.ml b/lib/sasacore/daemonType.ml
new file mode 100644
index 00000000..5835adde
--- /dev/null
+++ b/lib/sasacore/daemonType.ml
@@ -0,0 +1,16 @@
+(* Time-stamp: <modified the 17/06/2021 (at 11:05) by Erwan Jahier> *)
+
+type t =
+  | Synchronous (* select all actions *) 
+  | Central (* select 1 action *)
+  | LocallyCentral (* never activates two neighbors actions in the same step [1] *)
+  | Distributed (* select at least one action *)
+  | Custom (* enable/actions are communicated via stdin/stdout in RIF *)
+  | Greedy (* always choose the set that maximize the potential function *)
+  | GreedyCentral (* Ditto, but chooses one action only *)
+  | Bad of int (* try  to choose the  set actions that  maximize the
+                   potential  function but  looking  at sub-graphs  of
+                   size N at max *)
+
+(* [1] nb: the current implementation of locally central daemon is
+   biased by the degree of nodes. *)
diff --git a/lib/sasacore/evil.ml b/lib/sasacore/evil.ml
index e8ed51c1..e5e47934 100644
--- a/lib/sasacore/evil.ml
+++ b/lib/sasacore/evil.ml
@@ -1,6 +1,7 @@
-(* Time-stamp: <modified the 03/05/2021 (at 16:17) by Erwan Jahier> *)
+(* Time-stamp: <modified the 17/06/2021 (at 11:32) by Erwan Jahier> *)
 
 type 'v pna = 'v Process.t * 'v Register.neighbor list * Register.action
+type 'v step = 'v pna list -> 'v SimuState.t -> 'v SimuState.t
 
 (* Enumerate all schedules using continuations *) 
 type 'a cont = NoMore | Elt of 'a * (unit -> 'a cont)
@@ -118,20 +119,20 @@ let time3 verb lbl f x y z =
   if verb then Printf.eprintf " [%s] Execution time: %fs\n" lbl (Sys.time() -. t);
   fxy 
 
-let (greedy: bool -> 'v Env.t -> 'v Process.t list ->
-     (string -> 'v * ('v Register.neighbor * string) list) -> 'v pna list list ->
-     'v pna list) =
-  fun verb e pl neigbors_of_pid all ->
+let (greedy: bool -> 'v SimuState.t -> 'v Process.t list ->
+     (string -> 'v * ('v Register.neighbor * string) list) -> 
+     'v step -> 'v pna list list -> 'v pna list) =
+  fun verb st pl neigbors_of_pid step all ->
   assert (all<>[]);
   match Register.get_potential () with
   | None -> failwith "No potential function has been provided"
   | Some user_pf ->
     let pf pnal = (* pnal contains a list of activated processes *)
       let pidl = List.map (fun p -> p.Process.pid) pl in
-      let ne = Step.f pnal e in
+      let nst = step pnal st in
       let get_info pid =
         let _, nl = neigbors_of_pid pid in
-        Env.get ne pid, nl
+        Env.get nst.config pid, nl
       in
       user_pf pidl get_info
     in
@@ -153,7 +154,9 @@ let (greedy: bool -> 'v Env.t -> 'v Process.t list ->
           then search_max [] (pnal_acc, v_acc) (c())
           else search_max [] (pnal, v)  (c())
       in
-      let maxl = (time3 verb "Evil.greedy search" search_max [] (pnal1, p1) (shedules())) in
+      let maxl =
+        time3 verb "Evil.greedy search" search_max [] (pnal1, p1) (shedules())
+      in
       List.nth maxl (Random.int (List.length maxl))
     in
     let res = fst (get_max all) in
@@ -161,19 +164,20 @@ let (greedy: bool -> 'v Env.t -> 'v Process.t list ->
     res
 
 (* val greedy_central: bool -> 'v Env.t -> ('v Process.t * 'v Register.neighbor list) list -> *)
-let (greedy_central: bool -> 'v Env.t -> 'v Process.t list ->
-     (string -> 'v * ('v Register.neighbor * string) list) -> 'v pna list list -> 'v pna list) =
-  fun verb e pl neigbors_of_pid all ->
+let (greedy_central: bool -> 'v SimuState.t -> 'v Process.t list ->
+     (string -> 'v * ('v Register.neighbor * string) list) ->
+     'v step -> 'v pna list list -> 'v pna list) =
+  fun verb st pl neigbors_of_pid step all ->
   assert (all<>[]);
   match Register.get_potential () with
   | None -> failwith "No potential function has been provided"
   | Some user_pf ->
     let pf pna = 
       let pidl = List.map (fun p -> p.Process.pid) pl in
-      let ne = Step.f [pna] e in
+      let nst = step [pna] st in
       let get_info pid =
         let _, nl = neigbors_of_pid pid in
-        Env.get ne pid, nl
+        Env.get nst.config pid, nl
       in
       user_pf pidl get_info
     in
@@ -208,12 +212,12 @@ let (greedy_central: bool -> 'v Env.t -> 'v Process.t list ->
     [res]
 
 (* exported *)
-let (bad: int -> 'v Env.t -> 'v pna list list -> 'v pna list) =
+let (bad: int -> 'v SimuState.t -> 'v pna list list -> 'v pna list) =
   fun _max_size _e _all ->
   assert false (* todo *)
 
 (* exported *)
-let (worst4convex: 'v Env.t -> 'v pna list list -> 'v pna list) =
+let (worst4convex: 'v SimuState.t -> 'v pna list list -> 'v pna list) =
   fun _e _all ->
   assert false (* todo *)
 
diff --git a/lib/sasacore/evil.mli b/lib/sasacore/evil.mli
index 6cee4338..fc1d57b0 100644
--- a/lib/sasacore/evil.mli
+++ b/lib/sasacore/evil.mli
@@ -1,29 +1,31 @@
-(* Time-stamp: <modified the 03/05/2021 (at 16:17) by Erwan Jahier> *)
+(* Time-stamp: <modified the 17/06/2021 (at 15:28) by Erwan Jahier> *)
 
 
 (** This module gathers daemons that tries to reach the worst case with
    a potential function using various heuristic. *)
 
 type 'v pna = 'v Process.t * 'v Register.neighbor list * Register.action
+type 'v step = 'v pna list -> 'v SimuState.t -> 'v SimuState.t
 
-(**  [greedy verb e pl neigbors_of_pid all] take the worst case among the  combinations of
-   length 1, i.e., O(2^n) where n  is the number of enabled processes
-   (|all|) *)
-val greedy: bool -> 'v Env.t -> 'v Process.t list ->
+(** [greedy verb st pl neighbors_of_pid  step all] take the worst case
+   among the  combinations of length  1, i.e.,  O(2^n) where n  is the
+   number of enabled processes (|all|) *)
+val greedy: bool -> 'v SimuState.t -> 'v Process.t list ->
   (string -> 'v * ('v Register.neighbor * string) list) ->
-  'v pna list list -> 'v pna list
+  'v step -> 'v pna list list -> 'v pna list
 
 (** Ditto, but for central daemons (of a connected component) *)
-val greedy_central: bool -> 'v Env.t -> 'v Process.t list ->
-  (string -> 'v * ('v Register.neighbor * string) list) -> 'v pna list list ->
-  'v pna list
+val greedy_central:
+  bool -> 'v SimuState.t -> 'v Process.t list ->
+  (string -> 'v * ('v Register.neighbor * string) list) ->
+  'v step -> 'v pna list list -> 'v pna list
 
 (** Returns  the worst  case among  the combinations  of length  1 for
    convex  potential functions,  and just  a bad  one otherwise  (O(n)
    where n is the number of enabled processes).  *)
-val worst4convex: 'v Env.t -> 'v pna list list -> 'v pna list
+val worst4convex: 'v SimuState.t -> 'v pna list list -> 'v pna list
 
 (** enumerate all the cases (of length 1) in sub-graphs of given size (O(2^size_max)) *)
-val bad: int -> 'v Env.t -> 'v pna list list -> 'v pna list
+val bad: int -> 'v SimuState.t -> 'v pna list list -> 'v pna list
 
   
diff --git a/lib/sasacore/sasArg.ml b/lib/sasacore/sasArg.ml
index 2d20f7da..2019e823 100644
--- a/lib/sasacore/sasArg.ml
+++ b/lib/sasacore/sasArg.ml
@@ -1,11 +1,11 @@
-(* Time-stamp: <modified the 20/05/2021 (at 09:02) by Erwan Jahier> *)
+(* Time-stamp: <modified the 17/06/2021 (at 11:10) by Erwan Jahier> *)
 
 
 type t = {
   mutable topo: string;
   mutable length: int;
   mutable verbose: int;
-  mutable daemon: Daemon.t;
+  mutable daemon: DaemonType.t;
   mutable rif: bool;
   mutable no_data_file: bool;
   mutable quiet: bool;
@@ -36,7 +36,7 @@ let (make_args : unit -> t) =
       topo = "";
       length = 10000;
       verbose = 0;
-      daemon = Daemon.Distributed;
+      daemon = DaemonType.Distributed;
       rif = false;
       no_data_file = false;
       quiet = false;
@@ -97,38 +97,38 @@ let (mkoptab : string array -> t -> unit) =
   fun argv args ->  
     (
     mkopt args  ["--synchronous-daemon";"-sd"]
-      (Arg.Unit(fun () -> args.daemon <- Daemon.Synchronous))
+      (Arg.Unit(fun () -> args.daemon <- DaemonType.Synchronous))
       ["Use a Synchronous daemon"];
 
     mkopt args  ["--central-daemon";"-cd"]
-      (Arg.Unit(fun () -> args.daemon <- Daemon.Central))
+      (Arg.Unit(fun () -> args.daemon <- DaemonType.Central))
       ["Use a Central daemon (selects exactly one action)"];
     
     mkopt args  ["--locally-central-daemon";"-lcd"]
-      (Arg.Unit(fun () -> args.daemon <- Daemon.LocallyCentral))
+      (Arg.Unit(fun () -> args.daemon <- DaemonType.LocallyCentral))
       ["Use a Locally Central daemon";
        "(i.e., never activates two neighbors actions in the same step)"];
     mkopt args  ["--distributed-daemon";"-dd"]
-      (Arg.Unit(fun () -> args.daemon <- Daemon.Distributed))
+      (Arg.Unit(fun () -> args.daemon <- DaemonType.Distributed))
       ["Use a Distributed daemon (which select at least one action).";
        "This is the default daemon."];
     
     mkopt args  ["--custom-daemon";"-custd"]
-      (Arg.Unit(fun () -> args.daemon <- Daemon.Custom;args.rif <- true))
+      (Arg.Unit(fun () -> args.daemon <- DaemonType.Custom;args.rif <- true))
       ["Use a Custom daemon (forces --rif)"];
 
     mkopt args  ["--greedy-central-daemon";"-gcd"]
-      (Arg.Unit(fun () -> args.daemon <- Daemon.GreedyCentral))
+      (Arg.Unit(fun () -> args.daemon <- DaemonType.GreedyCentral))
       ["Use the central daemon that maximizes the potential function";
        "for the next step (greedy). Performs |enabled| trials)"];
 
     mkopt args  ["--greedy-daemon";"-gd"]
-      (Arg.Unit(fun () -> args.daemon <- Daemon.Greedy))
+      (Arg.Unit(fun () -> args.daemon <- DaemonType.Greedy))
       ["Use the daemon that maximizes the potential function";
        "for the next step (greedy). Performs 2^|enabled| trials) "];
 
     (*     mkopt args  ["--bad-daemon";"-bd"] ~arg:" <int>" *)
-    (*       (Arg.Int (fun i -> args.daemon <- Daemon.Bad i)) *)
+    (*       (Arg.Int (fun i -> args.daemon <- DaemonType.Bad i)) *)
     (*       ["Use a  daemon that tries  to maximize the  potential function, "; *)
     (*         "considering sub-graphs of a given maximal size"]; *)
 
diff --git a/lib/sasacore/sasArg.mli b/lib/sasacore/sasArg.mli
index efabb6ca..8dd6466b 100644
--- a/lib/sasacore/sasArg.mli
+++ b/lib/sasacore/sasArg.mli
@@ -1,10 +1,10 @@
-(* Time-stamp: <modified the 20/05/2021 (at 09:02) by Erwan Jahier> *)
+(* Time-stamp: <modified the 17/06/2021 (at 11:09) by Erwan Jahier> *)
 
 type t = {
   mutable topo: string;
   mutable length: int;
   mutable verbose: int;
-  mutable daemon: Daemon.t;
+  mutable daemon: DaemonType.t;
   mutable rif: bool;
   mutable no_data_file: bool;
   mutable quiet: bool;
diff --git a/lib/sasacore/simuState.mli b/lib/sasacore/simuState.mli
index 6c02a144..7946f3be 100644
--- a/lib/sasacore/simuState.mli
+++ b/lib/sasacore/simuState.mli
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 04/05/2021 (at 08:27) by Erwan Jahier> *)
+(* Time-stamp: <modified the 17/06/2021 (at 15:29) by Erwan Jahier> *)
 
 (** The module is used by
     - the main sasa simulation loop (in ../../src/sasaMain.ml)
@@ -24,7 +24,7 @@ type 'v enable_processes =
     
 val get_enable_processes: 'v t -> 'v enable_processes
 
-(** update the config and network processes *)
+(** update the config *)
 val update_config: 'v Env.t -> 'v t -> 'v t
 
 (** Get pid's state and neigbors *)
diff --git a/lib/sasacore/step.ml b/lib/sasacore/step.ml
index 6e62b4bb..a97f5fbd 100644
--- a/lib/sasacore/step.ml
+++ b/lib/sasacore/step.ml
@@ -9,7 +9,8 @@ let (update_env: 'v Env.t -> 'v Process.t * 'v -> 'v Env.t) =
     Env.set e p.pid st    
 
   
-let (f : ('v Process.t * 'v Register.neighbor list * action) list -> 'v Env.t -> 'v Env.t) =
+let (f2 :
+       ('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) ->
@@ -22,3 +23,9 @@ let (f : ('v Process.t * 'v Register.neighbor list * action) list -> 'v Env.t ->
     (* 4: update the env *)
     let ne = List.fold_left update_env e lenv_list in
     ne
+
+let (f : ('v Process.t * 'v Register.neighbor list * Register.action) list ->
+          'v SimuState.t -> 'v SimuState.t) =
+  fun pnal st ->
+  let e = f2 pnal st.config in
+  SimuState.update_config e st
diff --git a/lib/sasacore/step.mli b/lib/sasacore/step.mli
index 436e95e3..b5796b26 100644
--- a/lib/sasacore/step.mli
+++ b/lib/sasacore/step.mli
@@ -1,5 +1,5 @@
 
 (* [f pnal e] performs a step (according to the actions in pnal) and returns a new env *)
 
-val f : ('v Process.t * 'v Register.neighbor list * Register.action) list -> 'v Env.t
-  -> 'v Env.t
+val f : ('v Process.t * 'v Register.neighbor list * Register.action) list ->
+         'v SimuState.t -> 'v SimuState.t
diff --git a/src/sasaMain.ml b/src/sasaMain.ml
index 65f1918a..24937493 100644
--- a/src/sasaMain.ml
+++ b/src/sasaMain.ml
@@ -10,7 +10,7 @@ let (print_step : int -> int -> string -> SasArg.t -> 'v Env.t -> 'v Process.t l
   if args.no_data_file then (
     Printf.printf "\n#step %s\n%!" (string_of_int (n-i))
   ) else (
-    if args.daemon = Daemon.Custom then (
+    if args.daemon = DaemonType.Custom then (
       (* in custom mode, to be able to talk with lurette, this should not be 
            printed on stdout
        *)
@@ -136,24 +136,23 @@ let (simustep: int -> int -> string -> 'v SimuState.t -> 'v SimuState.t * string
     else
       st, all, enab_ll
   in
-  if st.sasarg.daemon = Daemon.Custom then
+  if st.sasarg.daemon = DaemonType.Custom then
     print_step n i pot st.sasarg st.config pl activate_val enab_ll;
   (* 2: read the actions *)
   if verb then Printf.eprintf "==> SasaSimuState.simustep : 2: read the actions\n%!";
   let get_action_value = RifRead.bool (st.sasarg.verbose > 1) in
   let next_activate_val, pnal = Daemon.f st.sasarg.dummy_input
       (st.sasarg.verbose >= 1) st.sasarg.daemon st.network (SimuState.neigbors_of_pid st)
-      st.config all enab_ll get_action_value 
+      st all enab_ll get_action_value Step.f
   in
   List.iter (List.iter (fun b -> if b then incr moves)) next_activate_val;
   update_round next_activate_val enab_ll;
   let next_activate_val = bool_ll_to_string next_activate_val in
   (* 3: Do the steps *)
   if verb then Printf.eprintf "==> SasaSimuState.simustep : 3: Do the steps\n%!";
-  if st.sasarg.daemon <> Daemon.Custom then
+  if st.sasarg.daemon <> DaemonType.Custom then
     print_step n i pot st.sasarg st.config pl next_activate_val enab_ll;
-  let ne = Sasacore.Step.f pnal st.config in
-  let st = update_config ne st in
+  let st = Sasacore.Step.f pnal st in
   st, next_activate_val
 
 let rec (simuloop: int -> int -> string -> 'v SimuState.t -> unit) =
-- 
GitLab