#+COMMENT:                                                            -*- org -*-
#+TITLE: About Dezyne command line tools

#+SUBTITLE: Component based, formally verified.

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 [[https://mcrl2.org][mCRL2]] developed at
the department of Mathematics and Computer Science of the Eindhoven
University of Technology ([[https://tue.nl][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
by 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.  See the file [[file:COPYING][COPYING]].

Dezyne comes with dzn-runtime: a reference implementation for component
coroutines.  dzn-runtime is free software, it is distributed under the
terms of the GNU Lesser General Public Licence version 3 or later.  See
the file [[file:COPYING.LESSER][COPYING.LESSER]].

* Requirements

Dezyne currently depends on the following packages:

  - [[https://gnu.org/software/guile/][GNU Guile 3.0.5]] or later, with readline support
  - [[https://savannah.nongnu.org/projects/guile-json/][Guile-JSON]], version 4.x
  - [[https://www.gnu.org/software/make/][GNU Make]]
  - [[https://mcrl2.org][mCRL2]], version 202106.0
  - [[https://gitlab.com/janneke/scmackerel][SCMackerel]], version 0.5.3.

Optionally, for C++11

  - [[https://boost.org][Boost]], for using co-operative co-routines instead of threads.

To run the regression test, these additional packages are needed:

  - for C++11: [[https://gcc.gnu.org][GCC's g++]], version 5.4 or later

When building from a Git checkout, these additional packages are needed:

  - [[https://gnu.org/software/autoconf/][GNU Autoconf]]
  - [[https://gnu.org/software/automake/][GNU Automake]]
  - [[https://gnu.org/software/gettext/][GNU Gettext]]
  - [[https://gnu.org/software/libtool][GNU Libtool]]
  - [[https://gnu.org/software/texinfo/][GNU Texinfo]]
  - [[https://gnu.org/software/help2man/][GNU Help2man]] (optional).

#+BEGIN_EXAMPLE
    guix shell
    ./autogen.sh
    ./configure
    make
    ./pre-inst-env dzn
#+END_EXAMPLE

See [[file:guix.scm][guix.scm]] for other options and [[file:INSTALL][INSTALL]] for full instructions.

* Contact

Join #dezyne on irc.libera.chat

Please email [[mailto:dezyne-devel@nongnu.org][dezyne-devel@nongnu.org]] for help or questions; email bug
reports to [[bug-dezyne@nongnu.org][bug-dezyne@nongnu.org]].  Please check the
[[bug database][https://gitlab.com/dezyne/dezyne-issues/-/issues]] first!

* Legalese
Copyright © 2019,2021,2022,2024 Janneke Nieuwenhuizen <janneke@gnu.org>

  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
  notice and this notice are preserved.
