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 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 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
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