Skip to content

v3.6.0

Latest
Compare
Choose a tag to compare
@phlptp phlptp released this 10 Dec 01:02
ec953d0

Major release including app support in the C library, bug fixes, and an update to the minimum build requirement for HELICS moving to a default of C++20. The 3.7 release will make C++20 the minimum compile standard. This release also changes out the json interpreter to use nlohmann::json instead of json_cpp.

Fixed

  • Fixed issue with maximum message size for the ZMQ and ZMQ_SS core types. Now block sizes up to 4 GB are supported on these core types (subject to memory limitations). This change is not backwards compatible in that previous versions will still not work with these sizes but it will still be recognized and perform equivalent or better then previously on older versions of HELICS. To support these sizes all federates must be updated to HELICS 3.6 and higher.
  • Fixed release builder to use new minimum build standards
  • Fixed issue where in certain cases the potential interfaces were not getting established and used by the connector
  • Fixes for sanitizer builds and other clang-tidy and compiler warnings

Changed

  • Test with Boost 1.86 and CMake 3.31
  • Changed default C++ standard to C++20. Eventual 3.7 release will make this a minimum.
  • Minimum build requirements changed to:
    • GCC 11
    • Clang 15
    • CMake 3.22
    • MSVC 16.10
    • XCode 14
    • Boost 1.73
  • Updated third party libraries (toml, asio, fmt, spdlog, units)
  • Replaced usage of json_cpp with nlohmann::json

Added

  • Added C shared library interface to the helics app library
  • Added ability to send files directly to brokers and cores for configuration
  • Added a global sync disconnect so all federates stay active until the federation is completed

Removed

  • Removed Octave interface build from the HELICS repo; Octave is now supported via matHELICS
  • Removed dependency on Boost.ScopeExit in the MPI core