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.
Dezyne-IDE
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 newdzn 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.
- A new command
- 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.
- A new command
- Parser
- The
dzn parse
command has a new option: --list-models. - The import file-name now supports relative directories.
- The
- 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.
- The actual pipeline commands are shown when running
- The verification pipeline was refactored and opened-up:
- 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.
- Code generation has been cleaned-up.
- 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.