# Changelog¶

## Release 2019b¶

Release date: November 13, 2019

Enhancements:

• Multiple improvements to drag-and-drop and cut/copy/paste behavior of variables in the simulation editor.
• Added a new Show in Projects View editor action. This action has the keyboard shortcut Ctrl+B; the Show in File Browser action, which had that keyboard shortcut previously, is now mapped to Ctrl+Shift+B.
• The last file chooser directory is now updated when opening a project through the Recent Projects menu.
• Command line invocations now consistently return nonzero exit codes when an error occurs, making them easier to use in scripts.

Bugfixes:

• Fixed arrow keys moving both the selection and viewport simultaneously when zoomed in on a diagram editor with nonempty selection.
• Fixed whitespace before XML in a drop/paste causing data to be parsed wrong.
• Drop/paste now tries to detect and reject invalid XML instead of interpreting it as a list of strings.
• Fixed multiple issues related to pressing keys during a drag-and-drop operation.
• Fixed multiple issues with command line error handling and logging.
• On Windows, the Rename action in the Projects view can now rename a file to a new name that is identical to the old name except for case.
• Fixed exceptions related to Windows case-insensitive file paths.
• Fixed exceptions related to invalid file paths, such as network paths without a sharename on Windows.
• Fixed the Rename action not working when the Projects view is filtered.
• Fixed a regression where the table of results was laid out incorrectly in the filtered Projects view.

## Release 2019a¶

Release date: August 29, 2019

Enhancements:

• New installer that allows users without administrator privileges to install the software locally to their user accounts.
• Several experimental features are now available in release builds, albeit disabled by default. To enable these features, go to Window ‣ Options... and check Show experimental features. This adds an Experimental menu to the main menu bar. Some of the features now available through this menu were previously (and are still) available via the command line. Experimental features now available through this menu include:
• Autolayout Import
• Export Stitch Image
• Export Skeletons For All Diagrams and Stitches
• Batch-Simulate CSVs
• Rewrite Resources in Project
• Added a File ‣ Recent Projects submenu that lists recently-opened projects for quick access.
• Improved support for dragging multiple components at once between the Projects view, Palette view, diagram editor, palette editor, etc.
• Section titles can now be edited inline in the Palette editor without having to click a Rename button.
• Added support for the standard Ctrl+W shortcut to close the current editor tab.
• Image export scale and format is now remembered, including across restarts.
• Added a Store intermediate values flag that can be disabled in the Properties of a simulation to turn off saving probe values in memory. This is useful when trying to run very large simulations in the GUI. This flag is saved in the *.cxsim file.
• Improved performance of probe rendering and Block Indices slider rendering.

Bugfixes:

• Fixed regression where newly-opened editor tabs sometimes got layered vertically instead of being grouped in the same stack.
• Fixed numerous issues with the palette editor.
• Fixed rendering glitch where resizing and collapsing the Palette view could cause it to show with a gray overlay.
• Fixed rendering glitch when switching between two instances that had the same grid size but different offsets of the diagram elements within that grid size.
• Fixed regression where opening a project via command line / file association did not work when CertSAFE was already running.
• Typing a backtick in a text box in the stitch editor no longer also switches between definition and instance mode.
• Fixed breadcrumbs bar combo box not navigating properly after using it to switch between different instances of the same definition.
• Fixed several issues with drag-and-drop and dragging selection boxes in the diagram editor.
• Fixed issues with project focus when opening or closing projects and certain other circumstances.
• Fixed exceptions when adding invalid paths to the project file base paths or excluded paths lists.

## 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.