Skip to content
Snippets Groups Projects
README.org 2.55 KiB

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