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

doc: add a link to slides related to sasa

parent 8f6bf6ff
No related branches found
No related tags found
No related merge requests found
Pipeline #118384 failed
- [TL;DR](#orgfb6de52) - [TL;DR](#org5ad0e66)
- [Topology](#org2744ac5) - [Topology](#org9d392fb)
- [Algorithms](#org59056c6) - [Algorithms](#orge32cab3)
- [Examples](#orgcb4db19) - [Examples](#orgcfde991)
- [Batch mode](#orgf3689c0) - [Batch mode](#org80aeb83)
- [Running batch simulations](#orgd68d0b3) - [Running batch simulations](#org9f35d61)
- [Running batch simulations with Built-in daemons](#org489a669) - [Running batch simulations with Built-in daemons](#org954c5e6)
- [Running batch simulations with manual (a.k.a. custom) daemons](#org14c0bf6) - [Running batch simulations with manual (a.k.a. custom) daemons](#org38d5de5)
- [Running batch simulations with `lurette`](#orgae85a46) - [Running batch simulations with `lurette`](#org640b2e9)
- [Viewing Results](#orgd0df37c) - [Viewing Results](#org3d147ea)
- [The `sasa` CLI](#org3826451) - [The `sasa` CLI](#orgdf60ab4)
- [Interactive mode](#org51d255d) - [Interactive mode](#org5baaeee)
- [Example: use `rdbg` from the `test/alea-coloring/` directory](#orgf1f33df) - [Example: use `rdbg` from the `test/alea-coloring/` directory](#org5b2cfb9)
- [The examples of test directory](#orgba2643a) - [The examples of test directory](#org2652e6e)
- [Running interactive sessions with `rdbg`](#org8e0608b) - [Running interactive sessions with `rdbg`](#org1dab3bd)
- [Getting `rdbg` on-line help](#orga0e4b56) - [Getting `rdbg` on-line help](#org262e448)
- [A `rdbg` `sasa` GUI](#orgc178a5b) - [A `rdbg` `sasa` GUI](#org4285bff)
- [Useful Modules](#org104bb05) - [Useful Modules](#org8d90a8b)
- [Install](#org82c0381) - [Install](#orgee0d8a4)
- [TL;DR](#orgaa9dedc) - [TL;DR](#org106f46f)
- [Not strictly mandatory, but useful, third-party software](#org73fe296) - [Not strictly mandatory, but useful, third-party software](#orgc700b1f)
- [Install `sasa` via opam (version >= 2.\*)](#org73891dc) - [Install `sasa` via opam (version >= 2.\*)](#org32e5593)
- [Install `sasa` via `git`](#org0593787) - [Install `sasa` via `git`](#orgaaeaaee)
- [Use `sasa` via docker](#orgc204a38) - [Use `sasa` via docker](#org0cca00b)
- [Use `sasa` via a Virtual Machine](#org6a314b3) - [Use `sasa` via a Virtual Machine](#org30a0cfb)
- [Screencasts](#org823ffcf) - [Screencasts](#orgcaa736c)
- [More](#org92ef883) - [More](#org0558eb8)
- [FAQ](#org7a3d43b) - [FAQ](#org6abdd10)
- [Is there a FAQ?](#orgc33433c) - [Is there a FAQ?](#orgc6dc2c8)
- [I have a compilation error that I don't understand](#orgebe736a) - [I have a compilation error that I don't understand](#org169d469)
- [I have the error `Invalid_argument("compare: functional value")`](#orge399e50) - [I have the error `Invalid_argument("compare: functional value")`](#orga5fc6a4)
<a id="orgfb6de52"></a> <a id="org5ad0e66"></a>
# TL;DR # TL;DR
<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" <a id="org9bed122"></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:
...@@ -55,17 +55,18 @@ sasa ring.dot -l 4 # run a batch simulation for 4 steps ...@@ -55,17 +55,18 @@ sasa ring.dot -l 4 # run a batch simulation for 4 steps
- [SASA source code](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa) - [SASA source code](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa)
- [Some Online Tutorials](https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/tags/sasa/) - [Some Online Tutorials](https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/tags/sasa/)
- [TAP 2020 article pre-print](https://hal.archives-ouvertes.fr/hal-02521149) - [The computer journal article pre-print](https://hal.archives-ouvertes.fr/hal-02521149)
- [Video of a SASA tutorial given at SSS'2020](https://cloud.univ-grenoble-alpes.fr/index.php/s/yboMr4xbcpWr6d9) - [Video of a SASA tutorial given at SSS'2020](https://cloud.univ-grenoble-alpes.fr/index.php/s/yboMr4xbcpWr6d9)
- [Slides](https://cloud.univ-grenoble-alpes.fr/apps/files/?dir=/sasa&fileid=222270070)
[![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="org2744ac5"></a> <a id="org9d392fb"></a>
# Topology # Topology
<a id="org32c18d2"></a> <a id="orga2b2179"></a> The topology is given via `.dot` files, that should <a id="orge3bca28"></a> <a id="orgdeb8329"></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
...@@ -123,14 +124,14 @@ graph ring { ...@@ -123,14 +124,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](#org8d572c2) 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](#org90b15f9) to generate such kinds of `dot` graphs: <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/articles/sasa-gg/>
<a id="org59056c6"></a> <a id="orge32cab3"></a>
# Algorithms # Algorithms
<a id="orgda68756"></a> <a id="org2f3c3e8"></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)
...@@ -142,7 +143,7 @@ The following has been generated from [algo.mli](https://gricad-gitlab.univ-gren ...@@ -142,7 +143,7 @@ The following has been generated from [algo.mli](https://gricad-gitlab.univ-gren
</iframe> </iframe>
<a id="orgcb4db19"></a> <a id="orgcfde991"></a>
# Examples # Examples
...@@ -182,14 +183,14 @@ The `test` directory also contains sub-directories which gathers programs shared ...@@ -182,14 +183,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="orgf3689c0"></a> <a id="org80aeb83"></a>
# Batch mode # Batch mode
![img](./sasabatch.svg) ![img](./sasabatch.svg)
<a id="orgd68d0b3"></a> <a id="org9f35d61"></a>
## Running batch simulations ## Running batch simulations
...@@ -230,37 +231,30 @@ All the CLI commands above can be run automatically using a `make` rule containe ...@@ -230,37 +231,30 @@ 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.14.0/bin/sasa version "v4.8.0" ("65d9837")
# Automatically generated by /home/jahier/.opam/4.14.0/bin/sasa version "v4.8.0" ("f7eaf99") # on crevetete the 5/12/2022 at 9:59:43
# on crevetete the 29/11/2022 at 15:15:13
#sasa ring.dot #sasa ring.dot
#seed 750070073 #seed 545693330
#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 round:bool round_nb:int #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 #step 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 #outs 0 1 0 0 1 0 0 t f t t f t t f f t f f t t f 6. f 0
#step 1 #step 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 #outs 0 1 2 0 1 2 1 f f f f f f f f f f f f f f t 0. t 1
#step 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 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, 3 steps, 3 rounds. This algo is silent after 3 moves, 1 step, 1 round.
#quit #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. 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="org489a669"></a> <a id="org954c5e6"></a>
## Running batch simulations with Built-in daemons ## Running batch simulations with Built-in daemons
...@@ -279,7 +273,7 @@ sasa -h | grep "\-daemon" ...@@ -279,7 +273,7 @@ sasa -h | grep "\-daemon"
--greedy-daemon, -gd --greedy-daemon, -gd
<a id="org14c0bf6"></a> <a id="org38d5de5"></a>
## Running batch simulations with manual (a.k.a. custom) daemons ## Running batch simulations with manual (a.k.a. custom) daemons
...@@ -317,7 +311,7 @@ In order to enter such input more easily, one can use (requires [the lustre V4 t ...@@ -317,7 +311,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="orgae85a46"></a> <a id="org640b2e9"></a>
## Running batch simulations with `lurette` ## Running batch simulations with `lurette`
...@@ -342,14 +336,14 @@ Note that for `lurette`, the role of the SUT (System Under Test) and the one of ...@@ -342,14 +336,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="orgd0df37c"></a> <a id="org3d147ea"></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="org3826451"></a> <a id="orgdf60ab4"></a>
## The `sasa` CLI ## The `sasa` CLI
...@@ -436,11 +430,11 @@ More `sasa` options: ...@@ -436,11 +430,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="org51d255d"></a> <a id="org5baaeee"></a>
# Interactive mode # Interactive mode
<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/). <a id="org3d0da66"></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.
...@@ -449,7 +443,7 @@ cf <https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/articles/rdbg-sasa/> ...@@ -449,7 +443,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="orgf1f33df"></a> <a id="org5b2cfb9"></a>
## Example: use `rdbg` from the `test/alea-coloring/` directory ## Example: use `rdbg` from the `test/alea-coloring/` directory
...@@ -492,7 +486,7 @@ rdbg ...@@ -492,7 +486,7 @@ rdbg
[q] quit [q] quit
<a id="orgba2643a"></a> <a id="org2652e6e"></a>
## The examples of test directory ## The examples of test directory
...@@ -503,7 +497,7 @@ The [test](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/t ...@@ -503,7 +497,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). - `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="org8e0608b"></a> <a id="org1dab3bd"></a>
## Running interactive sessions with `rdbg` ## Running interactive sessions with `rdbg`
...@@ -520,7 +514,7 @@ The [test](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/t ...@@ -520,7 +514,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`! 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="orga0e4b56"></a> <a id="org262e448"></a>
## Getting `rdbg` on-line help ## Getting `rdbg` on-line help
...@@ -616,7 +610,7 @@ Here are 2 useful entry-points to rdbg on-line help: ...@@ -616,7 +610,7 @@ Here are 2 useful entry-points to rdbg on-line help:
(rdbg) (rdbg)
<a id="orgc178a5b"></a> <a id="org4285bff"></a>
## A `rdbg` `sasa` GUI ## A `rdbg` `sasa` GUI
...@@ -630,7 +624,7 @@ opam install -y rdbgui4ocaml ...@@ -630,7 +624,7 @@ 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="org104bb05"></a> <a id="org8d90a8b"></a>
## Useful Modules ## Useful Modules
...@@ -665,14 +659,14 @@ Some modules, used by the sasa core engine, can be useful from `rdbg`. ...@@ -665,14 +659,14 @@ Some modules, used by the sasa core engine, can be useful from `rdbg`.
</iframe> </iframe>
<a id="org82c0381"></a> <a id="orgee0d8a4"></a>
# Install # Install
<a id="org8d572c2"></a> <a id="orga187057"></a> <a id="org90b15f9"></a> <a id="orgc0ea3b9"></a>
<a id="orgaa9dedc"></a> <a id="org106f46f"></a>
## TL;DR ## TL;DR
...@@ -726,7 +720,7 @@ git clone https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa.gi ...@@ -726,7 +720,7 @@ git clone https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa.gi
``` ```
<a id="org73fe296"></a> <a id="orgc700b1f"></a>
## Not strictly mandatory, but useful, third-party software ## Not strictly mandatory, but useful, third-party software
...@@ -769,7 +763,7 @@ sudo apt install -y wish ...@@ -769,7 +763,7 @@ 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="org73891dc"></a> <a id="org32e5593"></a>
## Install `sasa` via opam (version >= 2.\*) ## Install `sasa` via opam (version >= 2.\*)
...@@ -803,7 +797,7 @@ opam upgrade ...@@ -803,7 +797,7 @@ opam upgrade
``` ```
<a id="org0593787"></a> <a id="orgaaeaaee"></a>
## Install `sasa` via `git` ## Install `sasa` via `git`
...@@ -847,14 +841,14 @@ make test ...@@ -847,14 +841,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="orgc204a38"></a> <a id="org0cca00b"></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="org6a314b3"></a> <a id="org30a0cfb"></a>
## Use `sasa` via a Virtual Machine ## Use `sasa` via a Virtual Machine
...@@ -864,7 +858,7 @@ cf the Docker Install section of the [Synchrone Reactive Tool Box](http://www-ve ...@@ -864,7 +858,7 @@ cf the Docker Install section of the [Synchrone Reactive Tool Box](http://www-ve
- passwd:sasa - passwd:sasa
<a id="org823ffcf"></a> <a id="orgcaa736c"></a>
# Screencasts # Screencasts
...@@ -880,7 +874,7 @@ cf the Docker Install section of the [Synchrone Reactive Tool Box](http://www-ve ...@@ -880,7 +874,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="org92ef883"></a> <a id="org0558eb8"></a>
# More # More
...@@ -889,12 +883,12 @@ cf <http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/sasa/screencasts/> ...@@ -889,12 +883,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="org7a3d43b"></a> <a id="org6abdd10"></a>
# FAQ # FAQ
<a id="orgc33433c"></a> <a id="orgc6dc2c8"></a>
## Is there a FAQ? ## Is there a FAQ?
...@@ -903,7 +897,7 @@ Yes. ...@@ -903,7 +897,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="orgebe736a"></a> <a id="org169d469"></a>
## I have a compilation error that I don't understand ## I have a compilation error that I don't understand
...@@ -913,7 +907,7 @@ Beside, some tutorials are also available here: <https://verimag.gricad-pages.un ...@@ -913,7 +907,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="orge399e50"></a> <a id="orga5fc6a4"></a>
## I have the error `Invalid_argument("compare: functional value")` ## I have the error `Invalid_argument("compare: functional value")`
......
...@@ -88,9 +88,10 @@ ocamlfind ocamlopt -bin-annot -package algo -shared state.ml p.ml config.ml ring ...@@ -88,9 +88,10 @@ ocamlfind ocamlopt -bin-annot -package algo -shared state.ml p.ml config.ml ring
+ [[https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa][SASA source code]] + [[https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa][SASA source code]]
+ [[https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/tags/sasa/][Some Online Tutorials]] + [[https://verimag.gricad-pages.univ-grenoble-alpes.fr/vtt/tags/sasa/][Some Online Tutorials]]
+ [[https://hal.archives-ouvertes.fr/hal-02521149][TAP 2020 article pre-print]] + [[https://hal.archives-ouvertes.fr/hal-02521149][The computer journal article pre-print]]
+ [[https://cloud.univ-grenoble-alpes.fr/index.php/s/yboMr4xbcpWr6d9][Video of a SASA tutorial given at SSS'2020]] + [[https://cloud.univ-grenoble-alpes.fr/index.php/s/yboMr4xbcpWr6d9][Video of a SASA tutorial given at SSS'2020]]
+ [[https://cloud.univ-grenoble-alpes.fr/apps/files/?dir=/sasa&fileid=222270070][Slides]]
#+attr_html: :width 300px #+attr_html: :width 300px
[[http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/sasa/poster.pdf][file:poster.png]] [[http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/sasa/poster.pdf][file:poster.png]]
......
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