Release notes from 2.4.0 back to 2.3.0

May 26, 2020

v2.4.0 is released

New in the release - for Simulink users

Fixed issues in this release

  • If files were checked-in to git and .gitignored (an inconsistent situation which sometimes occurs), then they would be reported as "removed" in the DiffPlug git client. This is now fixed.
March 27, 2020

v2.3.2 is released

Fixed issues in this release

  • If a Simulink model had multiple Goto blocks with the same name, DiffPlug would throw a fatal error. Now fixed.
February 29, 2020

v2.3.1 is released

Fixed issues in this release

  • Improved parsing of Multi-Port Switch blocks.
  • Improved Simulink mask parsing, including expanded documentation.
  • Fixed AttributesFormatString support for .slx models.
  • Fixed a bug which could cause Stateflow states with fixed-point math settings from displaying as EML.
  • Fixed the following errors that some Windows 10 users were seeing on startup:
    • Error code [126] when trying to load jvm.dll: The specified module could not be found.
    • Error: failed to load VM runtime library!
February 21, 2020

v2.3.0 is released

New in the release - general usage

Log all calls to dp

There is now an easy way to inspect all calls to dp, which makes it easier to debug 3rd party tools.

Log all calls to dp

New in the release - for Simulink users

Search Simulink models

It is now possible to search a Simulink model, either by name...

Search a Simulink model by name

...or by specific properties. You can even use full regex if desired.

Search a Simulink model by property

Add support for embedded test harnesses in Simulink Test

DiffPlug now has full support for embedded test harnesses, including diff. It's fine to add, remove, or rename harnesses or the block under test.

Diff Simulink Test harnesses

Auxiliary details

Every item in a Simulink diagram has details, which we show in the bottom left. New in this release, we can now show multiple sets of details for some kinds of item. For example, a subsystem block has a set of details for the block, and another for the subsystem itself:

The details nested within a subsystem

Many of these items used to have their own entries in the model tree (for example configSet.xml), which caused the model tree to get cluttered. Although these items are somewhat hidden for the purposes of viewing, they are always fully expanded in diffs, to make sure that you don't miss any changes.

When viewing When diffing
Viewing an auxiliary object Diffing an auxiliary object

These changes were driven, in part, by the proliferation of auxiliary objects in Simulink Test harnesses and other recent Simulink features.

Diff config for auxiliary objects

This is the first version of DiffPlug which presents changes in the properties of the "system" and "chart" objects in each subsystem and stateflow chart. These objects are mostly backend noise - most meaningful changes to them show up in the blocks and states themselves. For example - Stateflow charts have a property which describes the "action language", but it's very rare that you can change the action language without also changing the states and transitions in your Stateflow chart.

Now that these auxiliary objects are displayed directly, we have added a System section to the diff filter config. When you load an old config, it will default to ignoring the purely-internal properties, but it will still show differences in cosmetic properties like "background color". You can use the normal diff filter config workflow to ignore these as well, if you like, and they are ignored by default in builtin/ignoreCosmetic.


  • Added support for Simulink R2020a.
  • Reading the diff of a single long property in a Simulink diff could be difficult / impossible, now fixed.
  • Improved quality of Stateflow diff.
  • Improved display of model workspace MAT-data.
  • Older Simulink files using rare charsets such as ibm-5348_P100-1997 will now load without error.
  • The Simulink detail title could be jumpy, now fixed.
  • Simulink view, diff, and detail are all sorted alphabetically.
Extend to 2.2.1