Section: New Results

Polychrony as open-source toolset

Participants : Loïc Besnard, Thierry Gautier, Paul Le Guernic.

A major event for us is that the open-source distribution of the Polychrony toolset has been effective since Summer 2011. The Polychrony toolset is described in Section  5.1 . Following the considered part of the software, the distribution is made with the GPL V2 or EPL license. One of the objectives of this opening is to make possible a distribution of the software “by apartment” corresponding to a given functionality or to a group of functionalities, for users or developers that would be interested by only a given part of the whole software. To make this possible, a deep restructuration of the whole software has been undertaken. This takes several forms:

  • One is related to the polychronous semantics and the transformations that are applied by a compilation process. A typical example is that of the representation type of the Data Control Graph (DCG), for which different levels of representation are distinguished. Some of them are based on the level of representation of the clock hierarchy.

    • The DCGBasic level is the general type. The DCG represents a program with all dependences set. Clocks are represented as signals of event type.

    • The DCGPoly level is the subtype of DCGBasic such that the clock hierarchy in the DCG is the result of the clock calculus. Specific clocks such as tick are created, but the clock hierarchy, in the general case, has several roots.

    • The DCGEndo level is the subtype of DCGPoly such that the clock hierarchy in the DCG is a tree (it is provided with a single root which is tick). The program is endochronous.

    • The DCGBool level is the subtype of DCGEndo such that all clock expressions are boolean extractions. Clocks are represented as Boolean signals (no event type is used). Boolean signals representing clocks have themselves clocks represented as Boolean signals (the clock hierarchy still exists).

    • The DCGSeq level is the subtype of DCGBool such that all nodes of the graph are statically sorted.

    • The DCGFlat level is the subtype of DCGBool such that the clock hierarchy in the DCG is flat: every boolean clock signal is a direct child of the tick. Moreover, each state variable (corresponding to delayed signals) is defined at tick.

  • Another aspect of the reorganization is the automatic reconstruction of the toolset from basic components. For that purpose, a new tool, called pKmake, has been developed, that allows the architect of the software to describe its structure and construction independently of external tools (such as emacs that was used previously). It is especially useful for portability reasons, considering the different systems on which the toolset is provided.

  • A third aspect that has required special attention is the automatic generation of the documentation of the source, which is realized using cmake, with an automatic management of cross-references.

In the context of the ITEA2 OPEES project, the Polychrony toolset is being provided as base component of the open-source toolchain of the Polarsys platform and Industry Working Group of the Eclipse consortium. A qualification plan will be defined in this context.