Dezyne 2.12.0 Release

Herewith we announce Dezyne 2.12: The first release to include a complete state diagram for interfaces, components and systems.

Dezyne introduces a new command to explore models ( dzn explore ) that can generate an LTS in Aldebaran format a state diagram in DOT format for interfaces, components and systems.

This release also introduces language packs, and C# will be made available as a separate language pack.

Dezyne-IDE supports an improved version of the state view: ide state. Unlike previous versions of the state diagram, this version displays the values of each state variable involved in constraining the behavior, i.e. for components this includes the interface state variables of its ports, and for systems this also includes the state variables of its inner components.


Changes in 2.12.0 from2.11.0

  • Commands
    • A new command ide state provides a state diagram for interfaces, components and systems. The state comprises all variables, the behaviour. Under the hood, it uses the new dzn explore command. Note that there is no convenient way to display models with a large state space yet. Also note that the trace view still uses the component simulator.
    • ide commands no longer spawn a browser.
  • Views
    • The views now reconnect automatically when the connection to the daemon is lost.
  • Build
    • Building with Guile 3.0.5 is now supported.
  • Noteworthy bug fixes
    • The implicit --all flag was removed from ide verify. As the current trace view can only show one verify result, running with --all can lead to confusion (#13).
    • The system view now handles every go-to-location click (#14).
    • Click events now carry the working directory of a command. Even when the daemon was started in another directory than the current working directory of a command, click events will continue to work (#15).
    • The LSP client is now robust against non-existent imports (#16).
    • On Windows, ide verify would hang for a model with a longer compliance error trace (#17).
    • On Windows, ide browse uses the user-defined default browser instead of trying chromium first.

Dezyne core

Changes in 2.12.0 from 2.11.0

  • Commands
    • A new command dzn explore can be used to create LTS’s and accurate state diagrams of interfaces, components and systems.
    • A new command dzn simulate provides a basic system simulator.
    • Code completion now supports boolean expressions in (partial) guards and (partial) enum field tests.
  • Parser
    • The dzn parse command has a new option: --list-models.
    • The import file-name now supports relative directories.
  • Verification
    • The verification pipeline was refactored and opened-up:
      • The actual pipeline commands are shown when running dzn -d verify ... , ready for use on the command line.
      • The dzn verify command now has a new --out=FORMAT option to produce intermediate verification output of a particular FORMAT.
  • Code generation
    • Code generation has been cleaned-up.
      • Language packs are now supported.
      • The code generators produce less gratuitous whitespace.
      • The code indenter cleans-up orphan parentheses when generating Scheme code.
    • The C# code generator (language CS) has been added.
    • The generated code now provides basic provenance by adding a Generated by dzn code from <file-name> comment, removing any question of copyright. Protip: for reproducible output, use a relative dezyne file name.
    • The json code generator (for the system diagram) now strips behaviours and leaf-locations.
  • Language
    • Lookup of imports is now supported.
    • Completion of guard expressions and field-tests are now supported.
  • Build
    • Building with Guile 3.0.5 and guile-json-4 is now supported.
  • Noteworthy bug fixes
    • Unresolved imports are handled (#6).
    • Duplicate imports when using different directory prefixes (#7).
    • A regression has been fixed that caused parsing of a system with many imports (> 20) to become very slow (#8).
    • c++ thread_pool support is now off by default, like it should be (#10).
    • Using a synchronous callback in the context of a thread safe shell has been fixed for c++ and scheme.
    • A bug has been fixed in parsing verification traces with flushes occurring in a namespace (#11).
    • Triggering an illegal using a synchronous callback in the context of dzn.async has been fixed (#12).
    • In dzn language, any line-column separator can be used with the --point= option; using a comma no longer gives unexpected results.