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

Doc: Initiate a contributors guide

parent aab6423f
No related branches found
No related tags found
No related merge requests found
- [Compiling sasa sources](#org30c5984)
- [Graph editor](#org350e6d3)
- [The Algo API](#orgf0dab07)
- [Demons](#org009ddc4)
- [Dealing with Algorithm values](#org02f3ab5)
- [Representing Processes](#org889a969)
- [CLI arguments (sasa options)](#org83b3139)
- [The Main Simulation](#orge4efe80)
- [Generating Version Numbers](#orgd3a1891)
- [Pluging `sasa` on Synchronous tools](#org20e7801)
- [RIF](#org286d056)
- [The rdbg plugin](#org769e7a6)
Self-stabilizing Algorithms SimulAtor (Simulation d'Algorithmes autoStAbilisants)
Contributors Guide
<a id="org30c5984"></a>
# Compiling sasa sources
You will need:
- make
- a set of tools installable via opam
- dune
- ocamlgraph
- lutin (not for compiling actually, but for using sasa with custom demons)
cf the test job in the Gitlab CI script: <../../.gitlab-ci.yml> for a working installation process.
<a id="org350e6d3"></a>
# Graph editor
Based on dot + custom fields (algo, init) <../../lib/sasacore/topology.mli> <../../lib/sasacore/topology.ml>
This module is also used from `rdbg` (<../../test/rdbg-utils/dot.ml>)
<a id="orgf0dab07"></a>
# The Algo API
<../../lib/algo/algo.mli> <../../lib/algo/algo.ml>
Functions registration is based on Dynlink + (Hash)tables
Users only need to see the [mli](../../lib/algo/algo.mli) file.
<a id="org009ddc4"></a>
# Demons
built-in + custom
<../../lib/sasacore/demon.mli> <../../lib/sasacore/demon.ml>
custom in Lutin that can generated by:
<../../lib/sasacore/genLutin.mli> <../../lib/sasacore/genLutin.ml>
<a id="org02f3ab5"></a>
# Dealing with Algorithm values
<../../lib/sasacore/env.mli> <../../lib/sasacore/env.ml>
<a id="org889a969"></a>
# Representing Processes
<../../lib/sasacore/process.mli>
<a id="org83b3139"></a>
# CLI arguments (sasa options)
<../../lib/sasacore/sasArg.mli> <../../lib/sasacore/sasArg.ml>
<a id="orge4efe80"></a>
# The Main Simulation
Splitted into 2 modules, so that the sasa rdbg plugin can reuse the step functions <../../lib/sasacore/sasa.ml>
<../../src/sasaMain.ml>
<a id="orgd3a1891"></a>
# Generating Version Numbers
The <../../lib/sasacore/sasaVersion.ml> is automatically generated
- by <../../Makefile.version>
- using git tags that are automatically generated using the `release` job of the CI script, which is based on [semantic-release-gitlab](https://www.npmjs.com/package/semantic-release-gitlab)
In order to generate sensible version numbers, please follow in your commit messages the conventions described here: <https://www.npmjs.com/package/conventional-changelog-eslint>
This also permits to generate some Releases Notes: <https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/releases>
<a id="org20e7801"></a>
# Pluging `sasa` on Synchronous tools
<a id="org286d056"></a>
## RIF
<http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/#outline-container-sec-5>
```ocaml
(* Time-stamp: <modified the 13/03/2019 (at 17:45) by Erwan Jahier> *)
(** Reads on stdin a bool *)
val bool: bool -> Process.t -> string -> bool
```
<../../lib/sasacore/rifRead.mli> <../../lib/sasacore/rifRead.ml>
<a id="org769e7a6"></a>
## The rdbg plugin
<https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/rdbg/blob/master/src/rdbgPlugin.mli> <https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/lutils/blob/master/src/data.mli>
<../../test/rdbg-utils/dot.ml>
Self-stabilizing Algorithms SimulAtor
(Simulation d'Algorithmes autoStAbilisants)
Contributors Guide
* Compiling sasa sources
You will need:
- make
- a set of tools installable via opam
- dune
- ocamlgraph
- lutin (not for compiling actually, but for using sasa with custom demons)
cf the test job in the Gitlab CI script: file:../../.gitlab-ci.yml
for a working installation process.
* Graph editor
Based on dot + custom fields (algo, init)
file:../../lib/sasacore/topology.mli
file:../../lib/sasacore/topology.ml
This module is also used from =rdbg= (file:../../test/rdbg-utils/dot.ml)
* The Algo API
file:../../lib/algo/algo.mli
file:../../lib/algo/algo.ml
Functions registration is based on Dynlink + (Hash)tables
Users only need to see the [[file:../../lib/algo/algo.mli][mli]] file.
* Demons
built-in + custom
file:../../lib/sasacore/demon.mli
file:../../lib/sasacore/demon.ml
custom in Lutin that can generated by:
file:../../lib/sasacore/genLutin.mli
file:../../lib/sasacore/genLutin.ml
* Dealing with Algorithm values
file:../../lib/sasacore/env.mli
file:../../lib/sasacore/env.ml
* Representing Processes
file:../../lib/sasacore/process.mli
* CLI arguments (sasa options)
file:../../lib/sasacore/sasArg.mli
file:../../lib/sasacore/sasArg.ml
* The Main Simulation
Splitted into 2 modules, so that the sasa rdbg plugin
can reuse the step functions
file:../../lib/sasacore/sasa.ml
file:../../src/sasaMain.ml
* Generating Version Numbers
The file:../../lib/sasacore/sasaVersion.ml is automatically generated
- by file:../../Makefile.version
- using git tags that are automatically generated using the =release=
job of the CI script, which is based on [[https://www.npmjs.com/package/semantic-release-gitlab][semantic-release-gitlab]]
In order to generate sensible version numbers, please follow in your
commit messages the conventions described here:
https://www.npmjs.com/package/conventional-changelog-eslint
This also permits to generate some Releases Notes:
https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/releases
* Pluging =sasa= on Synchronous tools
** RIF
http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/#outline-container-sec-5
#+INCLUDE: "../../lib/sasacore/rifRead.mli" src ocaml
file:../../lib/sasacore/rifRead.mli
file:../../lib/sasacore/rifRead.ml
** The rdbg plugin
https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/rdbg/blob/master/src/rdbgPlugin.mli
https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/lutils/blob/master/src/data.mli
file:../../test/rdbg-utils/dot.ml
- [Dot files](#org0cd41b9)
- [Algorithms](#org33281bc)
- [Simulation](#org629cdd4)
- [Custom mode](#org44c3285)
- [Installation (not yet working)](#orgdce8a56)
- [Dot files](#org8fd8577)
- [Algorithms](#orgcbbf32f)
- [Simulation](#org996e21a)
- [Custom mode](#orgd85b8c1)
- [rdbg](#orgc83f02b)
- [Releases Notes](#org56e1efd)
- [Installation (not yet working)](#orgf1a43f7)
Basically, one needs to provide
......@@ -10,7 +12,7 @@ Basically, one needs to provide
2. the algorithms mentionned in the dot file
<a id="org0cd41b9"></a>
<a id="org8fd8577"></a>
# Dot files
......@@ -34,7 +36,7 @@ graph ring {
```
<a id="org33281bc"></a>
<a id="orgcbbf32f"></a>
# Algorithms
......@@ -77,7 +79,7 @@ ocamlopt -shared -I +sasa some_algo.ml -o some_algo.cmxs
Some examples can be found in the [test](https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/tree/master/test) directory.
<a id="org629cdd4"></a>
<a id="org996e21a"></a>
# Simulation
......@@ -87,14 +89,26 @@ sasa --help
```
<a id="org44c3285"></a>
<a id="orgd85b8c1"></a>
# Custom mode
For using the custom mode, it is mandatory to register actions
<a id="orgdce8a56"></a>
<a id="orgc83f02b"></a>
# rdbg
<a id="org56e1efd"></a>
# Releases Notes
<https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/releases>
<a id="orgf1a43f7"></a>
# Installation (not yet working)
......@@ -111,4 +125,4 @@ Once is is done, upgrading to the last version of the tools is as simple as:
```yaml
opam update
opam upgrade
```
\ No newline at end of file
```
......@@ -81,6 +81,11 @@ Some examples can be found in the [[https://gricad-gitlab.univ-grenoble-alpes.fr
For using the custom mode, it is mandatory to register actions
* rdbg
* Releases Notes
https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/sasa/releases
* Installation (not yet working)
#+BEGIN_SRC sh :tangle sh/install-opam.sh :noweb yes :tangle-mode (identity #o444)
......
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