- Compiling sasa sources
- Graph editor
- The Algo API
- Demons
- Dealing with Algorithm values
- Representing Processes
- CLI arguments (sasa options)
- The Main Simulation
- Generating Version Numbers
-
Pluging
sasa
on Synchronous tools
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: <../../.gitlab-ci.yml> for a working installation process.
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>)
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 file.
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>
Dealing with Algorithm values
<../../lib/sasacore/env.mli> <../../lib/sasacore/env.ml>
Representing Processes
<../../lib/sasacore/process.mli>
CLI arguments (sasa options)
<../../lib/sasacore/sasArg.mli> <../../lib/sasacore/sasArg.ml>
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>
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
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
sasa
on Synchronous tools
Pluging
RIF
http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v6/#outline-container-sec-5
(* 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>
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>