Changelog¶

Release 2018b¶

Release date: November 15, 2018

Enhancements:

• Added the blocks system for representing arrays and loops. See the blocks tutorial for an introduction to these major new features.
• Added a new Hole primitive as a stub for use when developing models.
• Changing the root of a simulation no longer removes all of the variables from the simulation.
• It is now legal to override statically-constant intermediate variables in simulations, as long as the overriding data is a constant value. This makes the behavior match the existing rules for statically-constant root input variables.
• Variable usage icons are now shown in a new column that supports sorting in the simulation editor variables table.
• Improved the display of errors and warnings in the simulation editor.
• User-defined components now show automatically-generated output descriptions in wire network tooltips, rather than just displaying ”...”.
• Added file flavor support to drag-and-drop/copy-and-paste from the Projects tree. This makes it possible to, for example, drag a file from the CertSAFE Projects view to the tab bar in Notepad++ to view that file’s XML.
• Added support for several common types of proxy server configuration during license server checks. CertSAFE will automatically attempt to detect whether a proxy configuration is present; if one is found, CertSAFE will use it automatically.

Bugfixes:

• Fixed several issues with strange scroll/pan behavior throughout the user interface.
• Fixed CSV export being blocked on simulations that contain warnings.
• Fixed lag and excessive CPU usage when validating license keys.
• Standard output now works more sensibly when running CertSAFE from the command line.

Release Candidate 12.1¶

Release date: October 25, 2018

General notes:

• This is a hotfix release to patch an issue that was preventing CertSAFE from contacting the license servers.

Bugfixes:

• Add Let’s Encrypt to CertSAFE’s certificate authority list.

Release Candidate 12¶

Release date: May 21, 2018

Enhancements:

• Added integer interval types, which are a new kind of data type whose domain is a custom range of integer values. See the article on integer interval types for more details.
• IntN and UIntN data types are now supported for non-power-of-two sizes. N can now be any integer between 1 and 53, inclusive.
• CSV simulation vectors import is now more lenient in the value formats that it accepts. For example, the all-uppercase TRUE and FALSE written by Microsoft Excel are now accepted as valid Boolean values for CSV import.
• The icon for enum types has been changed.
• The number of merged variables in the instance hierarchy is now shown in the list of statistics in the Properties view when a diagram or stitch is selected in the Projects view.
• Some excessively large instance hierarchies will now immediately issue an error message when trying to set the root, rather than crashing with an out of memory error.

Bugfixes:

• Fixed a bug that prevented the warning for resources in the “CertSAFE” package from being generated.

Removed features:

• Enum types other than the built-in Boolean type no longer implement the “Has default” type class. This type class previously allowed models to inspect information about the ordering of enum values, by using a One Frame Delay with no IC pin to determine the first value of the enum type.

Release Candidate 11¶

Release date: November 6, 2017

General notes:

• Version RC11 of CertSAFE breaks file format compatibility with version RC10 of CertSAFE for diagram, simulation, palette, and skeleton files. A program to update existing projects to be compatible with RC11 is provided along with this release. It is highly recommended that you upgrade any existing projects to the RC11 file format now, as the upgrade program may not be included in its current form in later versions of CertSAFE.
• The main focus of development for this release has been backend changes in preparation for the upcoming language support for arrays. However, several new features and bugfixes have been implemented as well.

Enhancements:

• It is now possible to edit a property on multiple components in a diagram or palette at once when several components of the same type are selected.
• The Nearest primitive has been extended to support integer data types on the output, in addition to the previously-existing support for floating point data types. This makes it easy to round floating point values to the nearest integer value (using round to nearest, ties to even, as with other floating point arithmetic in CertSAFE). It also makes it easy to perform saturating conversions from one integer data type to another, as opposed to the bitwise conversions performed by the Copy Bits primitive.
• The Switch primitive is now manually resizable. It has a Size property that can be edited in the same fashion as the other varargs primitives such as Boolean gates.
• The type error display system in diagrams and stitches has been significantly redesigned. Components that are the endpoint of a type error are now highlighted red, along with traced paths of networks between such endpoints. The error messages for several varieties of type error have been improved as well. Errors and warnings on a component are now shown in the component’s tooltip when mousing over the component in the diagram editor.
• Added double-click-to-go-to support for child units and child unit types in the stitch editor.
• Improved tooltip support in the stitch editor.
• The breadcrumbs bar now shows the icon of the resource type for each path element, to match the Instance tree.
• Diagram local variables no longer display paths in instance mode, since these paths were always redundant.
• Added a new “Show in File Browser” action when right-clicking on resources in the Projects tree.
• Selecting a diagram or stitch in the Projects view now shows statistics about its instance hierarchy in the Properties view.
• Significant performance improvements for certain very large stitches.
• Added an action under the Help menu to go to the new online support website: https://support.certsafe.com/

Bugfixes:

• Fixed issues with the rounding behavior of the Nearest primitive and IntelliPoints. In certain cases, these performed round to nearest, ties towards positive infinity instead of round to nearest, ties to even.
• Fixed issues with the case list GUI in the Switch primitive properties and the case table editor.
• Fixed issues with the calculation of waveform scrollbar ranges in the simulation editor.
• Fixed inconsistent font sizes and other presentation issues with the Special Numeric Function, Special Floating Function, Coerce, and Frames Per Second primitives.
• Fixed an exception that could occur when doing Save As on a diagram that is in diffing mode.
• The image preview in the diagram Export Image dialog now correctly shows the instance image instead of the definition image when exporting in instance mode.

Removed features:

• The Frames Elapsed primitive has been removed. The same behavior can be easily recreated as a custom component using a One Frame Delay loopback. See the latest version of the Example Components library for an example of how to do this.
• Logic that is not connected to any exported names now generates an “ambiguous block prefix” error. Previously, CertSAFE issued a warning that such logic would become illegal in a future release.

Release Candidate 10¶

Release date: November 10, 2016

Enhancements:

• The Inline Operation component now has a separate Subtract mode instead of automatically displaying as a subtraction when a negative literal is specified in Add mode. This fixes the issue where an Inline Operation component could not be used to subtract from a variable with an unsigned integer data type.
• Rich tooltips are now resizable and have several other mouse and keyboard interaction improvements.
• The resource path is now displayed at the top of all editors instead of only diagram and stitch editors in definition mode.
• The breadcrumbs bar and the stitch editor filters panel can now be scrolled left and right if they do not fit in the available space.
• If a project name is not specified in a project file, the name of the project file is shown as the project name.
• General simulation performance optimizations.

Bugfixes:

• Fixed exception that could occur when sorting the Problems view by resource.
• Fixed a performance issue when drawing wires in certain large diagrams.
• Fixed several issues with the case list editor for the Switch component.
• Fixed exceptions and other issues that could occur with strange filenames.
• Fixed incorrect behavior on XML files that use explicit namespace prefixes instead of the default namespace.

Release Candidate 9¶

Release date: September 5, 2016

Enhancements:

• The Switch primitive now supports switching on inputs other than Boolean True and False. It supports all of the same options as Case Table inputs, including enumeration- and integer-typed selector values.
• Improved sizing and scrolling behavior of rich tooltips.
• The project frames-per-second value is now stored using arbitrary precision arithmetic rather than double precision floating point, allowing frame rates such as 0.1Hz to be represented exactly.
• New set of default colors for waveforms that is more readable on the white background.
• Improved rendering of infinite waveform values.
• Added support for zooming on simulation timelines using the + and - keys together with combinations of Ctrl and Shift.
• Added a horizontal line to show the vertical center of a simulation timeline.

Bugfixes:

• Fixed exception when dragging wires in certain configurations in the diagram editor.
• Fixed exception when dragging diagram XML into a diagram editor that was previously copied out of the program using the Cut or Copy commands.
• Fixed text in certain tables that was unreadable due to improper line-wrapping.
• Fixed several issues with simulation timeline scrolling and rulers.