Dezyne 2.17.0 released.

January 23, 2023

We are happy to announce Dezyne 2.17 which introduces implicit interface constraints.

Before 2.17.0, for a component to be compliant with its provides interface(s), implementing a component required meticulously specifying the same behavior in the component as in the provides interface; therefore the code from the interface is often repeated in the component.

Now the provides interface(s) are implicitly applied as a constraint on the component behavior. This means that anything disallowed by the interface, i.e., explicitly or implicitly marked as illegal, is implicitly marked as illegal in the component behavior.

Also in this release: An unreachable code check, generalized integer expressions, and a full rewrite of the language lookup mechanism fixing some long standing namespace bugs.

The dzn.async ports feature---which proved not to be composable---has been removed.

See also the Dezyne documentation.

We will evaluate your reports and track them via the Gitlab dezyne-issues project, see our guide to writing helpful bug reports.

What's next?

In the next releases we like to see shared interface state and verification with system scope for automatically exploring possible traces in a system.

Future

Looking beyond the next releases: Module-specifications and data-interfaces. Hierarchical behaviors. Support for Module Based Testing.

Enjoy!
The Dezyne developers.

Download

git clone git://git.savannah.nongnu.org/dezyne.git

Here are the compressed sources and a GPG detached signature[*]:
dezyne-2.17.0.tar.gz
dezyne-2.17.0.tar.gz.sig

Here are the SHA1 and SHA256 checksums:

ca074ffe6ceab64c49d74af21ceee7f8a7adcc4f  dezyne-2.17.0.tar.gz  
fa86bfecad7fe359091779e13a03ce03804a39a22ed47b97c31065dd81388076  dezyne-2.17.0.tar.gz

[*] Use a .sig file to verify that the corresponding file (without the .sig suffix) is intact. First, be sure to download both the .sig file and the corresponding tarball. Then, run a command like this:

gpg --verify .sig

If that command fails because you don't have the required public key, then run this command to import it:

gpg --keyserver keys.gnupg.net --recv-keys 1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273

and rerun the gpg --verify command.

Alternatively, Dezyne can be installed using GNU Guix:

guix pull  
guix install dezyne

NEWS

Changes in 2.17.0 since 2.16.3

About Dezyne

Dezyne is a programming language and a set of tools to specify, validate, verify, simulate, document, and implement concurrent control software for embedded and cyber-physical systems.

The Dezyne language has formal semantics expressed in mCRL2 developed at the department of Mathematics and Computer Science of the Eindhoven University of Technology (TUE). Dezyne requires that every model is finite, deterministic and free of deadlocks, livelocks, and contract violations. This is achieved by means of the language itself as well as builtin verification through model checking. This allows the construction of complex systems by assembling independently verified components.

Dezyne is free software, it is distributed under the terms of the GNU Affero General Public Licence version 3 or later.

About Verum

Verum, the organization behind the Dezyne language, is committed to continuing to invest in the language for the benefit of all its users. Verum assists its customers and partners in solving the software challenges of today and tomorrow, by offering expert consultancy on the application of the Dezyne language and the development and use of its tools, as well as on Verum's commercial tools like Verum-Dezyne's IDE support based on the LSP (Language Server Protocol), interactive integrated graphics, interactive simulation, (custom) code generation and (custom) runtime library support.