diff --git a/guides/users/README.md b/guides/users/README.md
index f033facf01a4c7f7a76427c13829d736d4c61b71..1c7e052095eba1a5b221a9158d7af48e03d79dcf 100644
--- a/guides/users/README.md
+++ b/guides/users/README.md
@@ -1,42 +1,42 @@
-- [TL;DR](#orgc82f76b)
-- [Topology](#orgf1bf668)
-- [Algorithms](#org675fb02)
-- [Examples](#orgd0a590c)
-- [Batch mode](#org7bb68a4)
-  - [Running batch simulations](#org4b6393c)
-  - [Running batch simulations with Built-in daemons](#orgfe448db)
-  - [Running batch simulations with manual (a.k.a. custom) daemons](#orgadfdca2)
-  - [Running batch simulations with `lurette`](#org347b172)
-  - [Viewing Results](#orgba27fbc)
-  - [The `sasa` CLI](#orgae5deb1)
-- [Interactive mode](#orga63cb12)
-  - [Example: use `rdbg` from the `test/alea-coloring/` directory](#org913b4b7)
-  - [The examples of test directory](#orgeb18210)
-  - [Running interactive sessions with `rdbg`](#org3a65716)
-  - [Getting `rdbg` on-line help](#org48fa50d)
-  - [A `rdbg`  `sasa` GUI](#orgad6bf70)
-  - [Useful Modules](#org9d9173a)
-- [Install](#org282e5ca)
-  - [TL;DR](#org45124dd)
-  - [Not strictly mandatory, but useful, third-party software](#org8d183f0)
-  - [Install `sasa` via opam (version >= 2.\*)](#org2504ba4)
-  - [Install `sasa` via `git`](#orgc5e8c3e)
-  - [Use `sasa` via docker](#org03256dd)
-  - [Use `sasa` via a Virtual Machine](#org9f93471)
-- [Screencasts](#org57f191d)
-- [More](#orgbc6bd0b)
-- [FAQ](#org046be58)
-  - [Is there a FAQ?](#org99b42b5)
-  - [I have a compilation error that I don't understand](#orgbd579cf)
-  - [I have the error `Invalid_argument("compare: functional value")`](#org1d85558)
-
-
-
-<a id="orgc82f76b"></a>
+- [TL;DR](#orgfb6de52)
+- [Topology](#org2744ac5)
+- [Algorithms](#org59056c6)
+- [Examples](#orgcb4db19)
+- [Batch mode](#orgf3689c0)
+  - [Running batch simulations](#orgd68d0b3)
+  - [Running batch simulations with Built-in daemons](#org489a669)
+  - [Running batch simulations with manual (a.k.a. custom) daemons](#org14c0bf6)
+  - [Running batch simulations with `lurette`](#orgae85a46)
+  - [Viewing Results](#orgd0df37c)
+  - [The `sasa` CLI](#org3826451)
+- [Interactive mode](#org51d255d)
+  - [Example: use `rdbg` from the `test/alea-coloring/` directory](#orgf1f33df)
+  - [The examples of test directory](#orgba2643a)
+  - [Running interactive sessions with `rdbg`](#org8e0608b)
+  - [Getting `rdbg` on-line help](#orga0e4b56)
+  - [A `rdbg`  `sasa` GUI](#orgc178a5b)
+  - [Useful Modules](#org104bb05)
+- [Install](#org82c0381)
+  - [TL;DR](#orgaa9dedc)
+  - [Not strictly mandatory, but useful, third-party software](#org73fe296)
+  - [Install `sasa` via opam (version >= 2.\*)](#org73891dc)
+  - [Install `sasa` via `git`](#org0593787)
+  - [Use `sasa` via docker](#orgc204a38)
+  - [Use `sasa` via a Virtual Machine](#org6a314b3)
+- [Screencasts](#org823ffcf)
+- [More](#org92ef883)
+- [FAQ](#org7a3d43b)
+  - [Is there a FAQ?](#orgc33433c)
+  - [I have a compilation error that I don't understand](#orgebe736a)
+  - [I have the error `Invalid_argument("compare: functional value")`](#orge399e50)
+
+
+
+<a id="orgfb6de52"></a>
 
 # TL;DR
 
-<a id="orgc076fc7"></a> SASA is a **Self-stabilizing Algorithms SimulAtor**, based on the so-called **Atomic State model** (ASM) introduced by <span class="underline">Dijkstra</span> in its seminal article on [Self-stabilizing distributed algorithms](http://www.cs.utexas.edu/~EWD/ewd04xx/EWD426.PDF). This model is also sometimes named "locally shared memory model with composite atomicity"
+<a id="orgee82fbd"></a> SASA is a **Self-stabilizing Algorithms SimulAtor**, based on the so-called **Atomic State model** (ASM) introduced by <span class="underline">Dijkstra</span> in its seminal article on [Self-stabilizing distributed algorithms](http://www.cs.utexas.edu/~EWD/ewd04xx/EWD426.PDF). This model is also sometimes named "locally shared memory model with composite atomicity"
 
 Basically, one needs to provide:
 
@@ -61,11 +61,11 @@ sasa ring.dot -l 4      # run a batch simulation for 4 steps
 [![img](poster.png)](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/sasa/poster.pdf)
 
 
-<a id="orgf1bf668"></a>
+<a id="org2744ac5"></a>
 
 # Topology
 
-<a id="orga98bc12"></a> <a id="orge45f409"></a> The topology is given via `.dot` files, that should
+<a id="org32c18d2"></a> <a id="orga2b2179"></a> The topology is given via `.dot` files, that should
 
 1.  follow the [graphviz/dot format](https://en.wikipedia.org/wiki/DOT_(graph_description_language))
 2.  have nodes **labeled** by the `algo` field
@@ -86,6 +86,8 @@ graph ring {
 
 Of course the `some_algo.ml` file must exist and contains an algorithm.
 
+nb : sasa uses ml files, and salut lustre files. Therefore the extension used in this `algo` field is actually ignored by tools. Then sasa will remove the extension, and add an `.ml` one, while salut will add a `.lus` one.
+
 In order to define an initial configuration, one can use the `init` node [attribute](http://www.graphviz.org/doc/info/attrs.html).
 
 ```dot
@@ -121,14 +123,14 @@ graph ring {
 
 Such parameters can be retrieved in algorithms using the `Algo.get_graph_attribute : string -> string` function. For example, if you know the graph diameter, you can define it as a graph attribute (a `Algo.diameter: unit -> int` function is provided, but it can be expensive to use for large graphs).
 
-Some tools are provided in the `sasa` [distributions](#orgd3c4718) to generate such kinds of `dot` graphs: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/articles/sasa-gg/>
+Some tools are provided in the `sasa` [distributions](#org8d572c2) to generate such kinds of `dot` graphs: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/articles/sasa-gg/>
 
 
-<a id="org675fb02"></a>
+<a id="org59056c6"></a>
 
 # Algorithms
 
-<a id="org7a9490c"></a>
+<a id="orgda68756"></a>
 
 The following has been generated from [algo.mli](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/blob/master/lib/algo/algo.mli)
 
@@ -140,7 +142,7 @@ The following has been generated from [algo.mli](https://gricad-gitlab.univ-gren
 </iframe>
 
 
-<a id="orgd0a590c"></a>
+<a id="orgcb4db19"></a>
 
 # Examples
 
@@ -180,14 +182,14 @@ The `test` directory also contains sub-directories which gathers programs shared
 -   `test/*/my-rdbg-tuning.ml`: includes `test/my-rdbg-tuning.ml` and defines commands specific to the example of the directory. Indeed, `rdbg`, once launched, first tries to read the content of the file name `my-rdbg-tuning.ml` (if it exists).
 
 
-<a id="org7bb68a4"></a>
+<a id="orgf3689c0"></a>
 
 # Batch mode
 
 ![img](./sasabatch.svg)
 
 
-<a id="org4b6393c"></a>
+<a id="orgd68d0b3"></a>
 
 ## Running batch simulations
 
@@ -228,39 +230,37 @@ All the CLI commands above can be run automatically using a `make` rule containe
  sasa ring.dot    # launch the simulation
 ```
 
-    make: 'ring.cmxs' is up to date.
-    # Automatically generated by /home/jahier/.opam/4.14.0/bin/sasa version "v4.7.0" ("1f6fd7d")
-    # on crevetete the 21/7/2022 at 11:05:40
+    sasa -reg ring.dot
+    ocamlfind ocamlopt -bin-annot -package algo -shared state.ml p.ml config.ml ring.ml -o ring.cmxs
+    # Automatically generated by /home/jahier/.opam/4.14.0/bin/sasa version "v4.8.0" ("f7eaf99")
+    # on crevetete the 29/11/2022 at 15:15:13
     #sasa ring.dot
     
-    #seed 839491647
+    #seed 750070073
     #inputs 
     #outputs "p1_c":int "p2_c":int "p3_c":int "p4_c":int "p5_c":int "p6_c":int "p7_c":int "Enab_p1_conflict":bool "Enab_p2_conflict":bool "Enab_p3_conflict":bool "Enab_p4_conflict":bool "Enab_p5_conflict":bool "Enab_p6_conflict":bool "Enab_p7_conflict":bool "p1_conflict":bool "p2_conflict":bool "p3_conflict":bool "p4_conflict":bool "p5_conflict":bool "p6_conflict":bool "p7_conflict":bool "legitimate":bool potential:real round:bool round_nb:int
     
     
     #step 0
-    #outs 1 1 0 0 1 0 0 t t t t f t t t f f f f t f f 6. f 0
+    #outs 1 1 0 0 1 0 1 t t t t f f t f t t t f f t f 6. f 0
     
     #step 1
-    #outs 2 1 0 0 1 2 0 f f t t f f f f f t t f f f f 2. f 1
+    #outs 1 2 2 2 1 0 2 f t t t f f f f f t t f f f f 4. t 2
     
     #step 2
-    #outs 2 1 2 2 1 2 0 f f t t f f f f f t t f f f f 2. t 2
+    #outs 1 2 0 0 1 0 2 f f t t f f f f f t f f f f f 2. t 3
     
     #step 3
-    #outs 2 1 0 0 1 2 0 f f t t f f f f f f t f f f f 2. t 3
-    
-    #step 4
-    #outs 2 1 0 2 1 2 0 f f f f f f f f f f f f f f t 0. t 3
+    #outs 1 2 1 0 1 0 2 f f f f f f f f f f f f f f t 0. t 3
     
-    This algo is silent after 7 moves, 4 steps, 3 rounds.
+    This algo is silent after 7 moves, 3 steps, 3 rounds.
     
     #quit
 
 nb: the simulation output (in the green frame) follows the [RIF](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/#outline-container-orga43b00b) conventions.
 
 
-<a id="orgfe448db"></a>
+<a id="org489a669"></a>
 
 ## Running batch simulations with Built-in daemons
 
@@ -279,7 +279,7 @@ sasa -h | grep "\-daemon"
     --greedy-daemon, -gd
 
 
-<a id="orgadfdca2"></a>
+<a id="org14c0bf6"></a>
 
 ## Running batch simulations with manual (a.k.a. custom) daemons
 
@@ -317,7 +317,7 @@ In order to enter such input more easily, one can use (requires [the lustre V4 t
 Daemons can also by simulated by [`lutin`](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/#outline-container-sec-4) programs via the use of [`lurette`](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/#outline-container-sec-9) (for batch executions) or [`rdbg`](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/#outline-container-sec-10) (for interactive sessions).
 
 
-<a id="org347b172"></a>
+<a id="orgae85a46"></a>
 
 ## Running batch simulations with `lurette`
 
@@ -342,14 +342,14 @@ Note that for `lurette`, the role of the SUT (System Under Test) and the one of
 For more information on this topic: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/articles/sasa-daemons/>
 
 
-<a id="orgba27fbc"></a>
+<a id="orgd0df37c"></a>
 
 ## Viewing Results
 
 `sasa -rif` and `lurette` generates `.rif` files that can be viewed with `gnuplot-rif` or `sim2chro`; cf <http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/reactive-toolbox/>
 
 
-<a id="orgae5deb1"></a>
+<a id="org3826451"></a>
 
 ## The `sasa` CLI
 
@@ -436,11 +436,11 @@ More `sasa` options:
                 Display the version ocaml version sasa was compiled with and exit.
 
 
-<a id="orga63cb12"></a>
+<a id="org51d255d"></a>
 
 # Interactive mode
 
-<a id="org4f2e672"></a> If you want to perform step-by-step simulations, you can use the `-custd` option. But if you want to perform step-by-step simulations without the burden of playing the role of the daemon, you can launch `sasa` under the control of [rdbg](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/rdbg/).
+<a id="org62bde61"></a> If you want to perform step-by-step simulations, you can use the `-custd` option. But if you want to perform step-by-step simulations without the burden of playing the role of the daemon, you can launch `sasa` under the control of [rdbg](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/rdbg/).
 
 Another advantage of [rdbg](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/rdbg/) is its ability to display a graphical view of the current configuration during the simulation, to move step by step, or round by round, forward or backwards.
 
@@ -449,7 +449,7 @@ cf <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/articles/rdbg-sasa/>
 Before reading this section, please read at least the [Basic usage Section if the rdbg documentation](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/rdbg/README.html#outline-container-sec-3).
 
 
-<a id="org913b4b7"></a>
+<a id="orgf1f33df"></a>
 
 ## Example: use `rdbg` from the `test/alea-coloring/` directory
 
@@ -492,7 +492,7 @@ rdbg
      [q] quit
 
 
-<a id="orgeb18210"></a>
+<a id="orgba2643a"></a>
 
 ## The examples of test directory
 
@@ -503,7 +503,7 @@ The [test](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/t
 -   `test/*/my-rdbg-tuning.ml`: includes `test/my-rdbg-tuning.ml` and defines commands specific to the example of the directory. Indeed, `rdbg`, once launched, first tries to read the content of the file name `my-rdbg-tuning.ml` (it it exists).
 
 
-<a id="org3a65716"></a>
+<a id="org8e0608b"></a>
 
 ## Running interactive sessions with `rdbg`
 
@@ -520,7 +520,7 @@ The [test](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/t
 All those commands are defined in (the common) [test/my-rdbg-tuning.ml](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/tree/master/test/my-rdbg-tuning.ml) that is included in (locals) `test/*/my-rdbg-tuning.ml` that are included in (generated) `test/*/rdbg-session.ml` files. `my-rdbg-tuning.ml` contains straigthforward `ocaml` code that defines various `rdbg` shortcuts to ease the simulation of `sasa` systems. Feel free to tailor those command to yours needs by modyfying the local `my-rdbg-tuning.ml`!
 
 
-<a id="org48fa50d"></a>
+<a id="orga0e4b56"></a>
 
 ## Getting `rdbg` on-line help
 
@@ -616,7 +616,7 @@ Here are 2 useful entry-points to rdbg on-line help:
     (rdbg) 
 
 
-<a id="orgad6bf70"></a>
+<a id="orgc178a5b"></a>
 
 ## A `rdbg`  `sasa` GUI
 
@@ -630,7 +630,7 @@ opam install -y rdbgui4ocaml
 To use it: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/articles/rdbgui4sasa/>
 
 
-<a id="org9d9173a"></a>
+<a id="org104bb05"></a>
 
 ## Useful Modules
 
@@ -665,14 +665,14 @@ Some modules, used by the sasa core engine, can be useful from `rdbg`.
 </iframe>
 
 
-<a id="org282e5ca"></a>
+<a id="org82c0381"></a>
 
 # Install
 
-<a id="orgd3c4718"></a> <a id="org61057ff"></a>
+<a id="org8d572c2"></a> <a id="orga187057"></a>
 
 
-<a id="org45124dd"></a>
+<a id="orgaa9dedc"></a>
 
 ## TL;DR
 
@@ -726,7 +726,7 @@ git clone https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa.gi
 ```
 
 
-<a id="org8d183f0"></a>
+<a id="org73fe296"></a>
 
 ## Not strictly mandatory, but useful, third-party software
 
@@ -769,7 +769,7 @@ sudo apt install -y wish
 Otherwise: <http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v4/distrib/index.html>
 
 
-<a id="org2504ba4"></a>
+<a id="org73891dc"></a>
 
 ## Install `sasa` via opam (version >= 2.\*)
 
@@ -803,7 +803,7 @@ opam upgrade
 ```
 
 
-<a id="orgc5e8c3e"></a>
+<a id="org0593787"></a>
 
 ## Install `sasa` via `git`
 
@@ -847,14 +847,14 @@ make test
 One can also mimic the content of the `test` job in the project [.gitlab-ci.yml Gitlab CI script](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/tree/master/.gitlab-ci.yml).
 
 
-<a id="org03256dd"></a>
+<a id="orgc204a38"></a>
 
 ## Use `sasa` via docker
 
 cf the Docker Install section of the [Synchrone Reactive Tool Box](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/#docker). This docker image contains all the tools mentioned in this section (`sasa`, `lustre`, `opam`, `ocaml`, emacs, graphviz, etc.).
 
 
-<a id="org9f93471"></a>
+<a id="org6a314b3"></a>
 
 ## Use `sasa` via a Virtual Machine
 
@@ -864,7 +864,7 @@ cf the Docker Install section of the [Synchrone Reactive Tool Box](http://www-ve
 -   passwd:sasa
 
 
-<a id="org57f191d"></a>
+<a id="org823ffcf"></a>
 
 # Screencasts
 
@@ -880,7 +880,7 @@ cf the Docker Install section of the [Synchrone Reactive Tool Box](http://www-ve
 cf <http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/sasa/screencasts/>
 
 
-<a id="orgbc6bd0b"></a>
+<a id="org92ef883"></a>
 
 # More
 
@@ -889,12 +889,12 @@ cf <http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/sasa/screencasts/>
 -   Tutorials: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt//tags/sasa/>
 
 
-<a id="org046be58"></a>
+<a id="org7a3d43b"></a>
 
 # FAQ
 
 
-<a id="org99b42b5"></a>
+<a id="orgc33433c"></a>
 
 ## Is there a FAQ?
 
@@ -903,7 +903,7 @@ Yes.
 Beside, some tutorials are also available here: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/tags/sasa/>
 
 
-<a id="orgbd579cf"></a>
+<a id="orgebe736a"></a>
 
 ## I have a compilation error that I don't understand
 
@@ -913,7 +913,7 @@ Beside, some tutorials are also available here: <https://verimag.gricad-pages.un
 -   If the message is totally useless, please feel free to add an issue here <https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/issues>
 
 
-<a id="org1d85558"></a>
+<a id="orge399e50"></a>
 
 ## I have the error `Invalid_argument("compare: functional value")`
 
diff --git a/guides/users/README.org b/guides/users/README.org
index 016e893761ae0ef0c5d9f4527a064b3ae92d6572..54e04d380e6c68949a0229cd4c10a0ccad7dd5ed 100644
--- a/guides/users/README.org
+++ b/guides/users/README.org
@@ -120,6 +120,11 @@ graph ring {
 
 Of course the =some_algo.ml= file must exist and contains an algorithm. 
 
+nb : sasa uses ml files, and salut lustre files. Therefore the extension used
+in this =algo= field is actually ignored by tools. Then sasa will
+remove the extension, and add an =.ml= one, while salut will
+add a =.lus= one.
+
 In order to  define an initial configuration, one can use the =init= 
 node [[http://www.graphviz.org/doc/info/attrs.html][attribute]]. 
 
diff --git a/lib/sasacore/genRegister.ml b/lib/sasacore/genRegister.ml
index f688fe23f3a64af2aaa505ca32bdb21d9b043acd..0d2aebeaab637631cc32d4f2a27cd2c71aeadd25 100644
--- a/lib/sasacore/genRegister.ml
+++ b/lib/sasacore/genRegister.ml
@@ -17,7 +17,7 @@ the following interface:
   *)
 
 let ml_filename_to_module fn =
-  let str = Filename.chop_extension fn in
+  let str = Filename.remove_extension fn in
   String.capitalize_ascii str
 
 let from_ml ml =
diff --git a/lib/sasacore/process.ml b/lib/sasacore/process.ml
index b28577d4050123d183e7cda74fc9703ec1642419..dcc19f8f12d53ed1d5b90aca9ea55ed8486a9a9f 100644
--- a/lib/sasacore/process.ml
+++ b/lib/sasacore/process.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 19/02/2020 (at 09:35) by Erwan Jahier> *)
+(* Time-stamp: <modified the 28/11/2022 (at 17:41) by Erwan Jahier> *)
 
 type 'v t = {
   pid : string;
@@ -12,7 +12,7 @@ let (make: bool -> Topology.node -> 'v -> 'v t) =
   fun custom_mode n init ->
     let pid = n.Topology.id in
     let ml = n.Topology.file in
-    let id = Filename.chop_suffix ml ".ml" in
+    let id = Filename.remove_extension ml in
     let actions = Register.get_actions () in
     if custom_mode && actions = [] then
       failwith
diff --git a/lib/sasacore/simuState.ml b/lib/sasacore/simuState.ml
index a62f42ca6b88bb0c1e38865af00e87a2d618c3e1..4c984363b5f6a30653bf092f8c1b5002c4fd09a4 100644
--- a/lib/sasacore/simuState.ml
+++ b/lib/sasacore/simuState.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 22/06/2022 (at 22:49) by Erwan Jahier> *)
+(* Time-stamp: <modified the 28/11/2022 (at 17:38) by Erwan Jahier> *)
 
 open Register
 open Topology
@@ -199,22 +199,31 @@ let (make : bool -> string array -> 'v t) =
     let dot_file = args.topo in
     let g = Topology.read dot_file in
     let nl = g.nodes in
+      let algo_files = List.map (fun n -> n.Topology.file) nl in
+      let algo_files = List.sort_uniq compare algo_files in
+      let algo_files =
+        (* we should have ml files  here; even if the dot file refers
+           to, e.g.,  lustre files. The justification  for doing that
+           is that  only the  file name  matters, not  the extension.
+           This is necessary if we want  to share dot files with sasa
+           and  salut.   Probably  it  would be  better  to  have  no
+           extension at all in the .dot files, and let the tools that
+           are  using  it decide  what  the  real file  extension  is
+           supposed to be (sasa => .ml, salut => .lus) *)
+        List.map (fun f -> (Filename.remove_extension f)^".ml") algo_files
+      in
     if args.output_algos then (
-      let fl = List.map (fun n -> n.Topology.file) nl in
-      let fl = List.sort_uniq compare fl in
-      Printf.printf "%s\n%!" (String.concat " " fl);
+      Printf.printf "%s\n%!" (String.concat " " algo_files);
       exit 0
     );
-    let cmxs = (Filename.chop_extension dot_file) ^ ".cmxs" in
+    let cmxs = (Filename.remove_extension dot_file) ^ ".cmxs" in
     if args.gen_register then (
-      let base = Filename.chop_extension dot_file in
+      let base = Filename.remove_extension dot_file in
       let base = Filename.basename base in
       let base = Str.global_replace (Str.regexp "\\.") "" base in
       let ml_register_file = base ^ ".ml" in
       let ml_state_file = "state.ml" in
       let ml_config_file = "config.ml" in
-      let algo_files = List.map (fun n -> n.Topology.file) nl in
-      let algo_files = List.sort_uniq compare algo_files in
       let ml_inputs = String.concat " " algo_files in
       GenRegister.f algo_files (ml_state_file, ml_config_file, ml_register_file);
       Printf.eprintf " [sasa] Hint: you may wish to generate %s out of %s with:\n"
@@ -245,7 +254,7 @@ let (make : bool -> string array -> 'v t) =
         Printf.eprintf " [sasa] Empty algo attribute in %s.\n%!" dot_file;
         exit 1
         );
-        let algo_id = Filename.chop_suffix n.Topology.file ".ml" in
+        let algo_id = Filename.remove_extension n.Topology.file in
         let value_of_string_opt = Register.get_value_of_string () in
         if value_of_string_opt = None || n.Topology.init = "" then
           (* Use the init functions if initial values are not in the dot *)
diff --git a/lib/sasacore/worstInit.ml b/lib/sasacore/worstInit.ml
index 93ee105a8b5e6fa179b9f98de5e55cc31b13d829..c8826f2daf90fb3f15df115fa3de516cdc0f0ea5 100644
--- a/lib/sasacore/worstInit.ml
+++ b/lib/sasacore/worstInit.ml
@@ -1,4 +1,4 @@
-(* Time-stamp: <modified the 19/04/2022 (at 15:20) by Erwan Jahier> *)
+(* Time-stamp: <modified the 28/11/2022 (at 17:41) by Erwan Jahier> *)
 
 open Register
 
@@ -291,7 +291,7 @@ let reinit_simu g ss =
   let pl = List.map2
       (fun n p ->
          { p with
-           init = let algo_id = Filename.chop_suffix n.Topology.file ".ml" in
+           init = let algo_id = Filename.remove_extension n.Topology.file in
              Register.get_init_state algo_id (List.length (g.succ p.pid)) p.pid
          })
       g.nodes