Repository navigation
Major release with improved broker startup controls, C shared library support for querying broker and core status, and updates to build requirements and third party libraries.
Fixed
- Fixed several timing and iteration coordination issues, including sequence counter resets, mixed value and message federate iterations, and disconnect handling with the
wait_for_current_timeflag. - Fixed an incorrect timer index that could lead to sporadic test failures.
- Fixed the C shared library declarations for global input registration functions to return
HelicsInput. - Fixed
helicsGetDataTypeto recognize theraw,map, andcustomtype aliases. - Fixed Cygwin build configuration issues.
Changed
- C++20 is now the minimum required C++ standard.
- Updated the minimum Boost build requirement to 1.83.
- Updated the handling of
HELICS_TIME_MAXTIME,HELICS_TIME_BIGTIME, and simulation termination times. - Updated third party libraries, including Asio, CLI11, fmt, spdlog, toml, units, ZeroMQ, and GoogleTest.
- Updated build and CI support, including builds with CMake 4.2, Boost 1.92, and C++26.
Added
- Added
--local_federates,--local_subbrokers, and--required_federatesbroker options to control when a federation may enter initialization mode. - Added C shared library functions to check whether a broker is a root broker or whether a broker or core can accept new federates.
- Added
HELICS_PROPERTY_INT_VALUE_BUFFER_WARNINGand the--value_buffer_warningfederate option to report when queued value buffers exceed a configurable threshold. - Added distinct maximum-time and termination-time constants to the C shared library API.
- Added
[[nodiscard]]annotations to C++98 interface methods where their return values should be used.