Skip to content
Snippets Groups Projects
Commit ce76287f authored by erwan's avatar erwan
Browse files

doc: fix the v4 installation process description

parent cb7e0836
No related branches found
No related tags found
No related merge requests found
- [TL;DR](#orgf2470e2) - [TL;DR](#orgd1705b0)
- [Topology](#orgd6d501d) - [Topology](#orge9db193)
- [Algorithms](#orgce59185) - [Algorithms](#orgdba5582)
- [Examples](#orgec5f4e7) - [Examples](#org33bb233)
- [Batch mode](#org30a5d38) - [Batch mode](#org5f5c4f5)
- [Running batch simulations](#org86a8c98) - [Running batch simulations](#orgc2ed5bc)
- [Running batch simulations with Built-in daemons](#orgf957f59) - [Running batch simulations with Built-in daemons](#orgf58fe90)
- [Running batch simulations with manual (a.k.a. custom) daemons](#org2ac3779) - [Running batch simulations with manual (a.k.a. custom) daemons](#orgf6edca9)
- [Running batch simulations with `lurette`](#org3973e9b) - [Running batch simulations with `lurette`](#org1e373f4)
- [Viewing Results](#org50909cc) - [Viewing Results](#orgd0dea06)
- [The `sasa` CLI](#orgdcc2767) - [The `sasa` CLI](#org60eecdb)
- [Interactive mode](#orgb7d8cc6) - [Interactive mode](#org7e515d7)
- [Example: use `rdbg` from the `test/alea-coloring/` directory](#org6db5eef) - [Example: use `rdbg` from the `test/alea-coloring/` directory](#org7be2907)
- [The examples of test directory](#org34cef43) - [The examples of test directory](#org674a21c)
- [Running interactive sessions with `rdbg`](#org42e0a4c) - [Running interactive sessions with `rdbg`](#orgf781d43)
- [Getting `rdbg` on-line help](#org9306ae6) - [Getting `rdbg` on-line help](#org3832092)
- [A `rdbg` `sasa` GUI](#org2b3110e) - [A `rdbg` `sasa` GUI](#orgc8042a6)
- [Useful Modules](#org6ec961a) - [Useful Modules](#org4c80d42)
- [Install](#org32bb903) - [Install](#orgd7160ac)
- [TL;DR](#org53b0731) - [TL;DR](#org0611b2e)
- [Not strictly mandatory, but useful, third-party software](#org5b78530) - [Not strictly mandatory, but useful, third-party software](#org449a2c8)
- [Install `sasa` via opam (version >= 2.\*)](#orgd860979) - [Install `sasa` via opam (version >= 2.\*)](#org5129260)
- [Install `sasa` via `git`](#org435098a) - [Install `sasa` via `git`](#org3048efb)
- [Use `sasa` via docker](#org0f52d25) - [Use `sasa` via docker](#org19a7db8)
- [Use `sasa` via a Virtual Machine](#org37d6abb) - [Use `sasa` via a Virtual Machine](#orgcbbbb16)
- [Screencasts](#org1ace131) - [Screencasts](#org73741f6)
- [More](#orgce24451) - [More](#orgbad2570)
- [FAQ](#org75b5edb) - [FAQ](#org4b28265)
- [Is there a FAQ?](#orgcef3a3f) - [Is there a FAQ?](#org7243183)
- [I have a compilation error that I don't understand](#org602d497) - [I have a compilation error that I don't understand](#org2f7cf1b)
- [I have the error `Invalid_argument("compare: functional value")`](#org71301ed) - [I have the error `Invalid_argument("compare: functional value")`](#orgbeadae9)
<a id="orgf2470e2"></a> <a id="orgd1705b0"></a>
# TL;DR # TL;DR
<a id="org8949e4a"></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="orgc103e09"></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: Basically, one needs to provide:
...@@ -61,11 +61,11 @@ sasa ring.dot -l 4 # run a batch simulation for 4 steps ...@@ -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) [![img](poster.png)](http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/sasa/poster.pdf)
<a id="orgd6d501d"></a> <a id="orge9db193"></a>
# Topology # Topology
<a id="org3ddd7ad"></a> <a id="orga64c3dd"></a> The topology is given via `.dot` files, that should <a id="org42e1c30"></a> <a id="orgad922eb"></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)) 1. follow the [graphviz/dot format](https://en.wikipedia.org/wiki/DOT_(graph_description_language))
2. have nodes **labeled** by the `algo` field 2. have nodes **labeled** by the `algo` field
...@@ -121,14 +121,14 @@ graph ring { ...@@ -121,14 +121,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). 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](#orgb220121) 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](#orgc01ca5e) to generate such kinds of `dot` graphs: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/articles/sasa-gg/>
<a id="orgce59185"></a> <a id="orgdba5582"></a>
# Algorithms # Algorithms
<a id="org9de8fa1"></a> <a id="org65cdf87"></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) 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 +140,7 @@ The following has been generated from [algo.mli](https://gricad-gitlab.univ-gren ...@@ -140,7 +140,7 @@ The following has been generated from [algo.mli](https://gricad-gitlab.univ-gren
</iframe> </iframe>
<a id="orgec5f4e7"></a> <a id="org33bb233"></a>
# Examples # Examples
...@@ -180,14 +180,14 @@ The `test` directory also contains sub-directories which gathers programs shared ...@@ -180,14 +180,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). - `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="org30a5d38"></a> <a id="org5f5c4f5"></a>
# Batch mode # Batch mode
![img](./sasabatch.svg) ![img](./sasabatch.svg)
<a id="org86a8c98"></a> <a id="orgc2ed5bc"></a>
## Running batch simulations ## Running batch simulations
...@@ -228,27 +228,23 @@ All the CLI commands above can be run automatically using a `make` rule containe ...@@ -228,27 +228,23 @@ All the CLI commands above can be run automatically using a `make` rule containe
sasa ring.dot # launch the simulation sasa ring.dot # launch the simulation
``` ```
sasa -reg ring.dot make: 'ring.cmxs' is up to date.
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.13.1/bin/sasa version "v4.5.9" ("11dc6e0") # Automatically generated by /home/jahier/.opam/4.13.1/bin/sasa version "v4.5.9" ("11dc6e0")
# on crevetete the 9/3/2022 at 15:02:39 # on crevetete the 16/3/2022 at 14:52:00
#sasa ring.dot #sasa ring.dot
#seed 715403169 #seed 416774442
#inputs #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 #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
#step 0 #step 0
#outs 1 1 1 0 0 0 0 t t t t t t t f t t f f t t f 10. #outs 0 1 0 0 1 0 1 f f t t f f f f f f t f f f f 2.
#step 1 #step 1
#outs 1 0 2 0 0 1 2 f f f t t f f f f f t t f f f 2. #outs 0 1 0 2 1 0 1 f f f f f f f f f f t f f f t 0.
#step 2
#outs 1 0 2 1 2 1 2 f f f f f f f f f f t t f f t 0.
This algo is silent after 6 moves, 2 steps, 2 rounds. This algo is silent after 1 move, 1 step, 1 round.
q q
#quit #quit
...@@ -257,7 +253,7 @@ All the CLI commands above can be run automatically using a `make` rule containe ...@@ -257,7 +253,7 @@ All the CLI commands above can be run automatically using a `make` rule containe
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. 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="orgf957f59"></a> <a id="orgf58fe90"></a>
## Running batch simulations with Built-in daemons ## Running batch simulations with Built-in daemons
...@@ -276,7 +272,7 @@ sasa -h | grep "\-daemon" ...@@ -276,7 +272,7 @@ sasa -h | grep "\-daemon"
--greedy-daemon, -gd --greedy-daemon, -gd
<a id="org2ac3779"></a> <a id="orgf6edca9"></a>
## Running batch simulations with manual (a.k.a. custom) daemons ## Running batch simulations with manual (a.k.a. custom) daemons
...@@ -314,7 +310,7 @@ In order to enter such input more easily, one can use (requires [the lustre V4 t ...@@ -314,7 +310,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). 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="org3973e9b"></a> <a id="org1e373f4"></a>
## Running batch simulations with `lurette` ## Running batch simulations with `lurette`
...@@ -339,14 +335,14 @@ Note that for `lurette`, the role of the SUT (System Under Test) and the one of ...@@ -339,14 +335,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/> For more information on this topic: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/articles/sasa-daemons/>
<a id="org50909cc"></a> <a id="orgd0dea06"></a>
## Viewing Results ## 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/> `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="orgdcc2767"></a> <a id="org60eecdb"></a>
## The `sasa` CLI ## The `sasa` CLI
...@@ -415,11 +411,11 @@ More `sasa` options: ...@@ -415,11 +411,11 @@ More `sasa` options:
Display the version ocaml version sasa was compiled with and exit. Display the version ocaml version sasa was compiled with and exit.
<a id="orgb7d8cc6"></a> <a id="org7e515d7"></a>
# Interactive mode # Interactive mode
<a id="orgd358e1f"></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="orgbabc457"></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. 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.
...@@ -428,7 +424,7 @@ cf <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/articles/rdbg-sasa/> ...@@ -428,7 +424,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). 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="org6db5eef"></a> <a id="org7be2907"></a>
## Example: use `rdbg` from the `test/alea-coloring/` directory ## Example: use `rdbg` from the `test/alea-coloring/` directory
...@@ -471,7 +467,7 @@ rdbg ...@@ -471,7 +467,7 @@ rdbg
[q] quit [q] quit
<a id="org34cef43"></a> <a id="org674a21c"></a>
## The examples of test directory ## The examples of test directory
...@@ -482,13 +478,13 @@ The [test](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/t ...@@ -482,13 +478,13 @@ 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). - `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="org42e0a4c"></a> <a id="orgf781d43"></a>
## Running interactive sessions with `rdbg` ## Running interactive sessions with `rdbg`
1. type `rdbg` 1. type `rdbg`
2. press enter to load the defaut session (`rdbg-session.ml`). Then you can type: 2. press enter to load the defaut session (`rdbg-session.ml`). Then you can type:
3. `d` for displaying a (dynamic) dot graph with `dot` 3. `gv` (graph view) for displaying a (dynamic) dot graph with `dot`
4. or ALTERNATIVELY `ne` to use the `neato` layout engine (`tw`, `ci`, `fd`, `sf`, `pa`, `os` to use the `twopi`, `circo`, `fdp`, `sfd`, `patchwork`, `osage` layout engines respectively) 4. or ALTERNATIVELY `ne` to use the `neato` layout engine (`tw`, `ci`, `fd`, `sf`, `pa`, `os` to use the `twopi`, `circo`, `fdp`, `sfd`, `patchwork`, `osage` layout engines respectively)
5. `s` to move one step forward 5. `s` to move one step forward
6. `sd` to move one step forward and call `d` (to update the graph display []) 6. `sd` to move one step forward and call `d` (to update the graph display [])
...@@ -499,14 +495,14 @@ The [test](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/t ...@@ -499,14 +495,14 @@ 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`! 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="org9306ae6"></a> <a id="org3832092"></a>
## Getting `rdbg` on-line help ## Getting `rdbg` on-line help
Here are 2 useful entry-points to rdbg on-line help: Here are 2 useful entry-points to rdbg on-line help:
1. `rdbg --help` and 1. `rdbg --help` and
2. at the `rdbg --sasa` prompt, you can use the `l` command: 2. at the `rdbg` prompt, you can use the `l` command:
```sh ```sh
(rdbg) l (rdbg) l
...@@ -595,21 +591,21 @@ Here are 2 useful entry-points to rdbg on-line help: ...@@ -595,21 +591,21 @@ Here are 2 useful entry-points to rdbg on-line help:
(rdbg) (rdbg)
<a id="org2b3110e"></a> <a id="orgc8042a6"></a>
## A `rdbg` `sasa` GUI ## A `rdbg` `sasa` GUI
To install it: To install it:
```sh ```sh
opam depext -y rdbgui4ocaml opam depext -y rdbgui4ocaml -- useless with opam >= 2.1
opam install -y rdbgui4ocaml opam install -y rdbgui4ocaml
``` ```
To use it: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/articles/rdbgui4sasa/> To use it: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/articles/rdbgui4sasa/>
<a id="org6ec961a"></a> <a id="org4c80d42"></a>
## Useful Modules ## Useful Modules
...@@ -644,14 +640,14 @@ Some modules, used by the sasa core engine, can be useful from `rdbg`. ...@@ -644,14 +640,14 @@ Some modules, used by the sasa core engine, can be useful from `rdbg`.
</iframe> </iframe>
<a id="org32bb903"></a> <a id="orgd7160ac"></a>
# Install # Install
<a id="orgb220121"></a> <a id="orge68345c"></a> <a id="orgc01ca5e"></a> <a id="orge8ea2a3"></a>
<a id="org53b0731"></a> <a id="org0611b2e"></a>
## TL;DR ## TL;DR
...@@ -682,7 +678,7 @@ opam install -y sasa ...@@ -682,7 +678,7 @@ opam install -y sasa
And optionally (to define test oracles in Lustre or daemons in Lutin): And optionally (to define test oracles in Lustre or daemons in Lutin):
```sh ```sh
opam depext -y rdbgui4sasa lutin opam depext -y rdbgui4sasa lutin -- useless with opam >= 2.1
opam install -y rdbgui4sasa lutin lustre-v6 opam install -y rdbgui4sasa lutin lustre-v6
``` ```
...@@ -693,8 +689,8 @@ mkdir ~/lv4 # for example ...@@ -693,8 +689,8 @@ mkdir ~/lv4 # for example
cd ~/lv4 cd ~/lv4
wget http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v4/distrib/linux64/lustre-v4-III-e-linux64.tgz wget http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v4/distrib/linux64/lustre-v4-III-e-linux64.tgz
tar xvzf lustre-v4-III-e-linux64.tgz tar xvzf lustre-v4-III-e-linux64.tgz
echo "LUSTRE_INSTALL=~/lv4/lustre-v4-III-e-linux64" >> ~/.bashrc # if you are using bash echo "export LUSTRE_INSTALL=~/lv4/lustre-v4-III-e-linux64" >> ~/.bashrc # if you are using bash
echo "PATH=$LUSTRE_INSTALL/bin:$PATH" >> ~/.bashrc echo "export PATH=$LUSTRE_INSTALL/bin:$PATH" >> ~/.bashrc
sudo apt install -y wish sudo apt install -y wish
``` ```
...@@ -705,7 +701,7 @@ git clone https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa.gi ...@@ -705,7 +701,7 @@ git clone https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa.gi
``` ```
<a id="org5b78530"></a> <a id="org449a2c8"></a>
## Not strictly mandatory, but useful, third-party software ## Not strictly mandatory, but useful, third-party software
...@@ -740,15 +736,15 @@ mkdir ~/lv4 # for example ...@@ -740,15 +736,15 @@ mkdir ~/lv4 # for example
cd ~/lv4 cd ~/lv4
wget http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v4/distrib/linux64/lustre-v4-III-e-linux64.tgz wget http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v4/distrib/linux64/lustre-v4-III-e-linux64.tgz
tar xvzf lustre-v4-III-e-linux64.tgz tar xvzf lustre-v4-III-e-linux64.tgz
echo "LUSTRE_INSTALL=~/lv4/lustre-v4-III-e-linux64" >> ~/.bashrc # if you are using bash echo "export LUSTRE_INSTALL=~/lv4/lustre-v4-III-e-linux64" >> ~/.bashrc # if you are using bash
echo "PATH=$LUSTRE_INSTALL/bin:$PATH" >> ~/.bashrc echo "export PATH=$LUSTRE_INSTALL/bin:$PATH" >> ~/.bashrc
sudo apt install -y wish sudo apt install -y wish
``` ```
Otherwise: <http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v4/distrib/index.html> Otherwise: <http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v4/distrib/index.html>
<a id="orgd860979"></a> <a id="org5129260"></a>
## Install `sasa` via opam (version >= 2.\*) ## Install `sasa` via opam (version >= 2.\*)
...@@ -782,7 +778,7 @@ opam upgrade ...@@ -782,7 +778,7 @@ opam upgrade
``` ```
<a id="org435098a"></a> <a id="org3048efb"></a>
## Install `sasa` via `git` ## Install `sasa` via `git`
...@@ -826,14 +822,14 @@ make test ...@@ -826,14 +822,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). 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="org0f52d25"></a> <a id="org19a7db8"></a>
## Use `sasa` via docker ## 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.). 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="org37d6abb"></a> <a id="orgcbbbb16"></a>
## Use `sasa` via a Virtual Machine ## Use `sasa` via a Virtual Machine
...@@ -843,7 +839,7 @@ cf the Docker Install section of the [Synchrone Reactive Tool Box](http://www-ve ...@@ -843,7 +839,7 @@ cf the Docker Install section of the [Synchrone Reactive Tool Box](http://www-ve
- passwd:sasa - passwd:sasa
<a id="org1ace131"></a> <a id="org73741f6"></a>
# Screencasts # Screencasts
...@@ -859,7 +855,7 @@ cf the Docker Install section of the [Synchrone Reactive Tool Box](http://www-ve ...@@ -859,7 +855,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/> cf <http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/sasa/screencasts/>
<a id="orgce24451"></a> <a id="orgbad2570"></a>
# More # More
...@@ -868,12 +864,12 @@ cf <http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/sasa/screencasts/> ...@@ -868,12 +864,12 @@ cf <http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/sasa/screencasts/>
- Tutorials: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt//tags/sasa/> - Tutorials: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt//tags/sasa/>
<a id="org75b5edb"></a> <a id="org4b28265"></a>
# FAQ # FAQ
<a id="orgcef3a3f"></a> <a id="org7243183"></a>
## Is there a FAQ? ## Is there a FAQ?
...@@ -882,7 +878,7 @@ Yes. ...@@ -882,7 +878,7 @@ Yes.
Beside, some tutorials are also available here: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/tags/sasa/> Beside, some tutorials are also available here: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/tags/sasa/>
<a id="org602d497"></a> <a id="org2f7cf1b"></a>
## I have a compilation error that I don't understand ## I have a compilation error that I don't understand
...@@ -892,7 +888,7 @@ Beside, some tutorials are also available here: <https://verimag.gricad-pages.un ...@@ -892,7 +888,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> - 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="org71301ed"></a> <a id="orgbeadae9"></a>
## I have the error `Invalid_argument("compare: functional value")` ## I have the error `Invalid_argument("compare: functional value")`
......
...@@ -605,7 +605,7 @@ that take advantage of the versatility (programmability) of ...@@ -605,7 +605,7 @@ that take advantage of the versatility (programmability) of
1. type =rdbg= 1. type =rdbg=
2. press enter to load the defaut session (=rdbg-session.ml=). 2. press enter to load the defaut session (=rdbg-session.ml=).
Then you can type: Then you can type:
3. =d= for displaying a (dynamic) dot graph with =dot= 3. =gv= (graph view) for displaying a (dynamic) dot graph with =dot=
4. or ALTERNATIVELY =ne= to use the =neato= layout engine (=tw=, =ci=, 4. or ALTERNATIVELY =ne= to use the =neato= layout engine (=tw=, =ci=,
=fd=, =sf=, =pa=, =os= to use the =twopi=, =circo=, =fdp=, =sfd=, =fd=, =sf=, =pa=, =os= to use the =twopi=, =circo=, =fdp=, =sfd=,
=patchwork=, =osage= layout engines respectively) =patchwork=, =osage= layout engines respectively)
...@@ -628,7 +628,7 @@ command to yours needs by modyfying the local =my-rdbg-tuning.ml=! ...@@ -628,7 +628,7 @@ command to yours needs by modyfying the local =my-rdbg-tuning.ml=!
Here are 2 useful entry-points to rdbg on-line help: Here are 2 useful entry-points to rdbg on-line help:
1. =rdbg --help= and 1. =rdbg --help= and
2. at the =rdbg --sasa= prompt, you can use the =l= command: 2. at the =rdbg= prompt, you can use the =l= command:
#+BEGIN_SRC sh :eval no #+BEGIN_SRC sh :eval no
(rdbg) l (rdbg) l
...@@ -730,7 +730,7 @@ the dot_view command as follows: ...@@ -730,7 +730,7 @@ the dot_view command as follows:
To install it: To install it:
#+BEGIN_SRC sh :eval no #+BEGIN_SRC sh :eval no
opam depext -y rdbgui4ocaml opam depext -y rdbgui4ocaml -- useless with opam >= 2.1
opam install -y rdbgui4ocaml opam install -y rdbgui4ocaml
#+END_SRC #+END_SRC
...@@ -807,7 +807,7 @@ opam install -y sasa ...@@ -807,7 +807,7 @@ opam install -y sasa
And optionally (to define test oracles in Lustre or daemons in Lutin): And optionally (to define test oracles in Lustre or daemons in Lutin):
#+BEGIN_SRC sh :eval no #+BEGIN_SRC sh :eval no
opam depext -y rdbgui4sasa lutin opam depext -y rdbgui4sasa lutin -- useless with opam >= 2.1
opam install -y rdbgui4sasa lutin lustre-v6 opam install -y rdbgui4sasa lutin lustre-v6
#+END_SRC #+END_SRC
...@@ -818,8 +818,8 @@ mkdir ~/lv4 # for example ...@@ -818,8 +818,8 @@ mkdir ~/lv4 # for example
cd ~/lv4 cd ~/lv4
wget http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v4/distrib/linux64/lustre-v4-III-e-linux64.tgz wget http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v4/distrib/linux64/lustre-v4-III-e-linux64.tgz
tar xvzf lustre-v4-III-e-linux64.tgz tar xvzf lustre-v4-III-e-linux64.tgz
echo "LUSTRE_INSTALL=~/lv4/lustre-v4-III-e-linux64" >> ~/.bashrc # if you are using bash echo "export LUSTRE_INSTALL=~/lv4/lustre-v4-III-e-linux64" >> ~/.bashrc # if you are using bash
echo "PATH=$LUSTRE_INSTALL/bin:$PATH" >> ~/.bashrc echo "export PATH=$LUSTRE_INSTALL/bin:$PATH" >> ~/.bashrc
sudo apt install -y wish sudo apt install -y wish
#+END_SRC #+END_SRC
...@@ -866,8 +866,8 @@ mkdir ~/lv4 # for example ...@@ -866,8 +866,8 @@ mkdir ~/lv4 # for example
cd ~/lv4 cd ~/lv4
wget http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v4/distrib/linux64/lustre-v4-III-e-linux64.tgz wget http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v4/distrib/linux64/lustre-v4-III-e-linux64.tgz
tar xvzf lustre-v4-III-e-linux64.tgz tar xvzf lustre-v4-III-e-linux64.tgz
echo "LUSTRE_INSTALL=~/lv4/lustre-v4-III-e-linux64" >> ~/.bashrc # if you are using bash echo "export LUSTRE_INSTALL=~/lv4/lustre-v4-III-e-linux64" >> ~/.bashrc # if you are using bash
echo "PATH=$LUSTRE_INSTALL/bin:$PATH" >> ~/.bashrc echo "export PATH=$LUSTRE_INSTALL/bin:$PATH" >> ~/.bashrc
sudo apt install -y wish sudo apt install -y wish
#+END_SRC #+END_SRC
Otherwise: Otherwise:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment