Skip to content

v3.0.0-beta

Pre-release
Pre-release
Compare
Choose a tag to compare
@phlptp phlptp released this 12 Jun 00:30
1c2187b

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 lpha 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 beta.2 is expected in 2 weeks, with a release 2 weeks later. Final steps include any submodule updates, code cleanup, and testing of the different language API's. Please make any comments in the discussion page related to this release.

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

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 functionsa and operations.
  • The cereal library is no longer installed or used with HELICS