Skip to content

v3.0.0-beta.2

Pre-release
Pre-release
Compare
Choose a tag to compare
@phlptp phlptp released this 30 Jun 21:59
87f1198

HELICS 3.0 is a major update to HELICS. The major features that have been added are the command interface and targeted Endpoints. Internally major changes include updating the minimum compiler to C++17, and updates to internal libraries. The binary serialization protocol was shifted from Cereal to a custom format that embeds the data type so is more suitable to HELICS data types. The initial release is an alpha release for some initial testing. The full change log will be filled out as the release progresses from alpha to beta to final release. The migrating 2 to 3 page includes some specific details on migrating from HELICS 2 to 3.

NOTE For this beta, all public API's are now considered stable, baring a bug report on the API. A final release is expected in 2 weeks, Final steps include code cleanup, and testing of the different language API's. Please make any comments in the discussion page related to this release.

changes from beta.1

  • addition of federate tags
  • bug fixes from HELICS 2
  • cleanup of doxygen comments
  • update of the language API builder files
  • doc fixes and updates
  • update submodules

Changed

  • Data serialization moved to a custom protocol specific to HELICS.
  • Minimum build requirements to C++17.
  • Minimum boost library for use is 1.67.
  • Many of the API functions now use string_view instead of const std::string &
  • The C shared library now comes with only a single header helics.h this should be included for all uses of the C shared library
  • The name of the C based shared library changed to libhelics.dll/so
  • The name of the C++ shared library changed to libhelicscpp.dll/so
  • The name of the apps library changed to libhelicscpp-apps.dll/so
  • The style of enumerations and structures was changed to match an updated style guide
  • All HELICS specific CMake variables start with HELICS_
  • The format for log messages now includes a simulation time stamp [t=xxxx]
  • Log level numerical values have been expanded (multiplied by 3) to allow more gradations in log levels than was previously allowed
  • The allowed set of string names has been reduced to avoid confusion and remove duplicate entries

Fixed

Added

  • Command interface
  • Targeted Endpoints
  • Interface Tags
  • Federate and core Tags

Removed

  • Message structure from C API
  • Deprecated functions from HELICS 2
  • The separate headers for the C shared library are no longer installed only a single header is needed and includes all functions and operations.
  • The cereal library is no longer installed or used with HELICS