HELICS v3.1.0 Release Notes

Release Date: 2021-11-25 // over 2 years ago
  • ๐Ÿš€ This release includes some bug fixes and enhancements to HELICS 3 which is now the default. The [migrating 2 to 3](./docs/developer-guide/porting-2-to-3.md) page includes some specific details on migrating from HELICS 2 to 3.

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed an issue with null strings lacking a null termination when retrieved from the C API. This primarily affected the Python and other language API's.
    • CMake fix for some older linkers.
    • A fix for ASIO aligned_alloc when used with MinGW.
    • ๐Ÿ›  Fix to IPC core to support Boost 1.77.
    • โœ… A few issues around the JsonSerialization options for backwards compatibility with HELICS 2, and add some interoperability tests that can be used to check future versions.
    • ๐Ÿ›  Fix an issue with the timeCoordinator where a large time value was requested and with certain other configuration parameters the time could overflow and cause a deadlock.

    ๐Ÿ”„ Changed

    • โšก๏ธ precommit-ci now used in the CI chain, pre-commit checks were updated, and a check for python formatting inside the docs was added.
    • โšก๏ธ Update ThirdParty library versions including ASIO, CLI11, toml11, FMT, spdlog, jsoncpp, filesystem.
    • ๐Ÿ‘ Mac binaries are now universal binaries to support ARM based CPU types.
    • โšก๏ธ Update some of the TCP helper classes to better support future encrypted communication efforts.

    โž• Added

    • โž• Add the ability to add observer federates which can join a federation after it has started and subscribe to values, or make queries of the federation while in progress.
    • โž• Add a configurable grant timeout which will trigger diagnostic action if a federate has been waiting sufficiently long for a time grant.
    • โœ… A document on the [Type conversion](./docs\developer-guide/typeConversion.md) that HELICS can perform and a series of tests to verify the correct operation of the type conversions.
    • โž• Additional missing functions related to linking targeted endpoints from a core, so it can work similar to dataLink methods. These methods were added to Core and Broker applications.
    • ๐Ÿ†• New benchmark based on the Barabasi-Albert network.

    ๐Ÿ—„ Deprecated