# Dezyne 2.13.2 Release

**URL:** <https://forum.verum.com/t/dezyne-2-13-2-release/69>\
**Category:** Announcements\
**Created:** [September 20, 2021, 9:26am UTC](https://forum.verum.com/t/dezyne-2-13-2-release/69 "2021-09-20T09:26:11Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Bird](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.verum.com/bird/32/18_2.png) [@Bird](https://forum.verum.com/u/Bird)\
**Post date:** [September 20, 2021, 9:26am UTC](https://forum.verum.com/t/dezyne-2-13-2-release/69/1 "2021-09-20T09:26:11Z")

</div>

With release 2.13 the previous simulator has been replaced with a new simulator function, which includes system scope validation, a major improvement. The system scope simulator provides more insight in the working of a system by combining multiple components and multiple interfaces. This is an important feature that is of support to the parties involved in the software engineering process: software engineer, test engineer, software architect and system engineer.

## Dezyne-IDE

### Changes in 2.13.2 since 2.13.1

- Views
  - An SVG image of a view can be saved by pressing Control-S.

- Noteworthy bug fixes
  - Verify and simulate now always show a trace view ([#34](https://gitlab.com/dezyne/dezyne-issues/-/issues/34)):
    - The alert sign with messages is shown even when there is no trace,
    - An invalid trace is handled gracefully; the valid prefix of the trace is shown along with an error message,
    - Pressing [F12] now always produces the browser’s console.

  - User experience ([#37](https://gitlab.com/dezyne/dezyne-issues/-/issues/37)):
    - Source code locations of some arrows have been fixed,
    - All error messages are now also shown in the browser,
    - The placement of the alert sign and the last arrow leading up to the alert sign has been fixed,
    - The color scheme of an interface trace is now consistent,
    - Performance: built with GNU Guile 3, Windows 64 bit.

### Changes in 2.13.1 since 2.13.0

- Noteworthy bug fixes
  - Simulation now reports well-formedness errors instead of merely exiting with a non-zero status.
  - The well-formedness check is now skipped on subsequent simulation runs.
  - When verifying a correct model that is defined in a namespace, a crash has been fixed that prevented the simulation function to start.

### Changes in 2.13.0 since 2.12.0

- Simulation
  - Simulation now uses the `dzn simulate` command under the hood. This provides a simulator function including system scope and enables future language updates. Its performance requires more work.
  - The `--queue-size` option is now supported for simulation.

- Verification
  - Detailed error messages of verification and simulation are displayed in the console.
  - The `--all` flag has been removed for `ide verify` and thus the implicit ide simulate displays the first and only error.

- Views
  - Clicking on a port in the System view highlights the port binding across system boundaries.
  - The System view now uses P5.
  - The Trace view now uses P5.

- Noteworthy bug fixes
  - The daemon now supports the `-w,--http-port` option.

## Dezyne Core

### Changes in 2.13.2 since 2.13.1

- Noteworthy bug fixes
  - The simulator would produce an invalid split-arrows trace for certain combinations of blocking and external ([#34](https://gitlab.com/dezyne/dezyne-issues/-/issues/34)).
  - In the simulator, events on the input trail now determine when an external event is executed, i.e., taken out of the queue.
  - On the split-arrows trace, external q-in events are now hidden.
  - Six new regression-tests on the `external` feature where added along with fixes for the simulator.
  - The simulator’s major performance bottle necks have been addressed ([#36](https://gitlab.com/dezyne/dezyne-issues/-/issues/36)).
  - The simulator now prioritizes errors in the same order as verification does; a possible error trace is always shown.
  - On `dzn simulate` , the `--queue-size` parameter now works.
  - dzn explore:
    - A bug that left some states without a label has been fixed,
    - The “tau” label on tau-transitions has been removed,
    - Duplicate transitions due to non-determinism are merged.

### Changes in 2.13.1 since 2.13.0

- Parser
  - The well-formedness check now reports an error when the ports of a binding have different types.

- Simulation
  - The ‘dzn simulate’ command now supports using --format=“diagram” directly. It also supports the -i,–internal option from `dzn trace’ for this.
  - In interactive mode, the `dzn simulate’ command now uses GNU Readline.
  - When simulating interactively and an async ack is pending, show first observable action triggered by the async ack as eligible event.
  - In interactive mode, the simulator now prints the action where input is needed to resolve a non-deterministic choice.

- Noteworthy bug fixes
  - The C++ and C# runtime has an updated pump that fixes the collateral blocked release that was previously only handled during pump destruction ([#23](https://gitlab.com/dezyne/dezyne-issues/-/issues/23)).
  - The C++ code generator now correctly sets async ranking for thread safe shells.
  - A bug in verification has been fixed that would sometimes cause invalid mCRL2 code, resulting in a backtrace.
  - A bug in verification has been fixed that would attempt to add missing void returns to valued functions.
  - The well-formedness check now reports two more cases of missing returns in a valued function: An else branch without return, and the empty function body.
  - In the simulator, the location of events has been fixed.
  - In the simulator, a crash related to injected has been fixed in the default split-arrows trace output.
  - In the simulator, two bugs with respect to scoping function variables have been fixed.
  - The simulator now skips the (expensive) deadlock check when input is needed to resolve a non-deterministic choice.
  - A bug in the simulator’s trace output has been fixed that caused some eligible event names to be prefixed with “sut.” when simulating an interface.
  - The simulator now updates the provides ports right after flushing async.
  - The simulator now skips the deadlock check for illegal traces.
  - The simulator now shows complete split-arrows trace for deadlock errors.
  - The simulator now supports systems with dangling injected ports, which may happen when simulating a sub system that relies on an injected instance from an outer system.
  - A bug in the simulator was fixed where a trace needing input leading up to a non-deterministic choice would already include one of the possible choices at the end.
  - A bug in the simulator was fixed that generated duplicate traces.
  - The ASCII trace diagram now supports interface traces.

### Changes in 2.13.0 since 2.12.0

- Simulation
  - Interactive use is now supported, it is started when invoked without input trail.
  - The input trail may now be sparse, only the input needed to resolve non-deterministic choices is required.
  - The split-arrows trace format is now used by default. It includes the provides port trace.
  - The eligible events are printed at the end of the trace.
  - Invalid input (garbage) on the trail is marked as an error.
  - All verification problems are detected and reported, notably:
    - async livelock,
    - failures model refusals,
    - forking a call from one provides port to another provides port,
    - a second async req, while a previous ack is still pending,
    - a reply on a modeling event in an interface.

  - A provides port that uses silent events is now supported.

- Commands
  - The `dzn trace` command has two new output formats:
    - –format=json provides P5 output for integration with Dezyne-IDE,
    - –format=ascii provides an trace diagram.

  - The JSON output for the state diagram now produces actions and state as structured data.

- Verification
  - Enum literals in the verification trace now use a colon as enum-field separator. This resolves a long standing ambiguity in the trace format.
  - The verification standard output is now adds the model name next to the trace.
  - The trace is now marked with a indicating the problem found during verification.
  - Verbose output is written to standard error.
  - The `--json` option has been removed.
  - Async livelocks, i.e., defer.ack () =\> defer.req () are now detected and reported.

- Code generation
  - The C# runtime now defines a generic async interface; async interfaces are no longer generated.
  - The C++ code generator has been updated to support the new enum literal representation.
  - The C# runtime has been updated to support the new enum literal representation.
  - The experimental C code generator now properly supports systems, foreign components and namespaces.

- Noteworthy bug fixes
  - A type mismatch is now also properly reported when attempting an enum field access on a boolean ([#19](https://gitlab.com/dezyne/dezyne-issues/-/issues/19)).
  - An undefined function is now also properly reported for a function call that has arguments ([#18](https://gitlab.com/dezyne/dezyne-issues/-/issues/18)).
  - Verification now reports a livelock with async.
  - In the simulator, for a requires out event on a model with multiple provides ports, all provides ports are now being updated.
  - In the preprocessor, an off-by-one line count error has been fixed for deeply nested imports.
  - Generating code using a calling context for a model that uses dzn.async is now supported ([#20](https://gitlab.com/dezyne/dezyne-issues/-/issues/20)).
  - Using the same async interface with parameters more than once no longer triggers a well-formedness error.
  - The C++ and C# code generators no longer create structs or classes for async interfaces with parameters.
  - Using an early return pattern in a function now no longer reports a false positive or error ([#27](https://gitlab.com/dezyne/dezyne-issues/-/issues/27)).
  - The C++ and C# runtime and pump now queue events that are sent to a blocked port ([#23](https://gitlab.com/dezyne/dezyne-issues/-/issues/23)).
  - The C++ and C# runtime no longer releases collaterally blocked ports early, avoiding “component already handling an event” ([#23](https://gitlab.com/dezyne/dezyne-issues/-/issues/23)).
