HELICS v2.2.1 Release Notes

Release Date: 2019-09-27 // over 4 years ago
  • ๐Ÿš€ Minor release with bug fixes and a few additional features

    ๐Ÿ”„ Changed

    • โœ… helics apps tests is converted to use Google test and is now being run through the sanitizers
    • ๐Ÿ’ฅ BREAKING CHANGE The C interface helics logging callback specifications now include a user data object. This is technically a breaking change, but there were a few issues with the current implementation so it is not entirely clear it was usable as it was. There are now some tests for the functionality. This log callback specification was not available in the language API's and the C++ API has not changed, only the C interface to specifying direct logging callbacks. This is considered a minor change due to no known users of this interface at present and as it was it wasn't entirely operational. No further changes are expected.
    • The use of Boost C++ in the helics core and application api are now limited to the IPC core(there are no plans to remove this usage) and an option to DISABLE_BOOST is available in the CMAKE files. This will turn off the IPC_CORE and any optional uses of boost in some of the libraries. Future features may use Boost but should retain the ability to disable its use.
    • ๐Ÿ’ฅ BREAKING CHANGE Some function names in the C++98 API were changed to better match the C++ API and were documented more completely through doxygen, these were listed as potentially changing in the Public API so this is not a consideration for semantic versioning. The C++98 API also has limited numbers of users at this point yet and may not be fully stable until HELICS 3.0 release
    • The doxygen CMake project was renamed from doc to helics_doxygen
    • several variables used by submodules in CMake were hidden
    • โšก๏ธ updated zmq subproject version to 4.3.2

    ๐Ÿ›  Fixed

    • โœ… There was a 32 bit issue when using certain vector operation functions in HELICS when compiled with 32 bit, this was preventing the arm 32 from running the tests fully. This issue has been fixed.
    • ๐Ÿ›  Fixed a race condition related to queries of subscriptions and inputs of a federate if done remotely. The core could lock or a race condition could occur.
    • ๐Ÿ”Š some issues related to file logs
    • started to address some recommendations for include-what-you-use
    • ๐Ÿ— The CMake conditions for building the C# interface and Python2 interface were not completely correct and incorrectly showed an error which was also incorrectly ignored, so it all worked unless there was an actual error, but those issues have been resolved.

    โž• Added

    • ๐ŸŒฒ logMessage functions in the federate for user specified log messages and levels
      • logDebugMessage, logWarningMessage, logErrorMessage, logInfoMessage function in all API's to simplify common logging operations
    • ๐ŸŒฒ function to set the log file from the core C++ API
    • A CMAKE option to disable BOOST entirely DISABLE_BOOST
    • A CMAKE option HELICS_BINARY_ONLY_INSTALL which will restrict the install to executables and shared libraries with no headers or static libraries.
    • ๐Ÿ‘ Some CMAKE capabilities to better generate the interface files.
    • Timeouts on the broker for broker connections, more work is likely needed in the future but for now if a path times out, if things were already disconnecting it assumes it is the equivalent of a disconnect, and if not the federation errors and terminates.
    • ๐Ÿš€ Automatic release file generation for visual studio builds, windows installers, full source code tar files, and a shared library package.

    โœ‚ Removed

    • ๐Ÿš€ The included build files for the Octave interface have been removed. It is now required to use swig to build these files. The interface file was only valid for Octave 4.2 and had potential to break in later versions. Given the 3 versions of octave in common use it was deemed prudent to just remove the included file and require swig to generate the correct interface, this may be added back in the next release if more testing shows this to not be an issue.