HELICS v2.4.0 Release Notes
Release Date: 2020-02-04 // about 4 years ago-
Important note for macOS 10.15 Catalina users : Apple made running unsigned apps more strict, downloading and running the helics binaries in the macOS package will get blocked. A workaround is to download the package using
curl
in Terminal instead. e.g.curl -LO https://github.com/GMLC-TDC/HELICS/releases/download/v2.4.0/Helics-2.4.0-macOS-x86_64.zip
.🚀 A few bug fixes, code coverage on the shared library increased to 100%, library updates, Broker server enhancements including an http REST API, and a lot of work on the build systems to enable easier releases and packaging.
🔄 Changed
- ⚡️ filesystem include updated to 1.2.10
- ⚡️ CLI11 updated to 1.9
- ⚡️ fmt updated to 6.1.2
- 🚀 variant header updated to latest release
- ⚡️ Update the units library (v0.3.0)
- The TOML interpreter used in HELICS was changed to toml11
- 📦 Some unnecessary files were removed from the all source package
- some internal CMake options and messages were not using new format for message
- ⚡️ Major updates to the python modules build system including merging the python3 and python 2 builds into the same CMake generator
- CMake cleanup and formatting
- 🍎 A series of changes to the build for more widely supported installations on Linux and MacOS
- The .clang-format file was modified slightly and the entire code base reformatted to the new specification
- 📇 the metadata information for the benchmarks was updated
- The FilterOperator class was altered to include a vector output for use with cloning
- TCP and UDP core types are not by default backwards compatible with <2.4 brokers. The flag "--noack_connect" will need to be passed as part of the coreinitialization string to allow this to work if need be. ZMQ_SS cores are not considered interoperable with <2.4 brokers due to a number of bugs. In a few select cases it might still work.
🛠 Fixed
- 🍎 macOS rpath information on the built binaries
- Some issues with swig include directories to allow it to work in other circumstances
- 🏗 an issue with building the java interface in MSYS2
- 👉 an issue with the
HELICS_USE_NEW_PYTHON_FIND
CMake option - Some thread sanitizer identified issues
- A series of issues from static analyzers
- 👻 an issue in the shared library create core that could emit an exception
- A series of issues related to remote cloning filters not being inline
- Several issues with the zmqss core type it is not backwards compatible with <2.4 brokers
- 🛠 The code coverage on the C shared library was increased to 100% and a number of small bugs fixed as a result. The overall coverage increased to 71.5%
➕ Added
- 🐧 Several installers for Linux and Mac and builds for
pip install
- 👍 Allow standalone builds for the python interface
- ➕ Added a Ring Message benchmark, like the ring Benchmark except using messages as the token
- ➕ Added a Multinode phold benchmark
- ➕ Added a c shared library echo benchmark
- git logic to check if the submodules are at the correct version
- an option for a githook to check the formatting
- ⚠ git warning if the submodule versions are not at the correct version
- a timing benchmark similar to the echo benchmark
- ✅ a number of tests for the C shared library including evil tests for testing bad input
- 🏗 Hooks to test the coverage builds
- a feature to mark a broker or federate as slow responding so it doesn't time out automatically
- 🔧 EditorConfig and .gitattributes for cleaner diff and automatic editor configuration
- 🛠 An incorrect call in the Matlab swig code was fixed
- Automatic generation of pull requests for source code formatting
- ➕ Add metadata information to the benchmarks for automatic processing
- Broker server functionality for tcp core, zmqss core, and udp core
- 🏗 An experimental web server that can be used with the broker server or the broker executables. (requires boost 1.70+ to build)
- man pages for the helics applications
🗄 Deprecated
- 🚀 The
ZMQ_SS
core type is not generally compatible between 2.3 and 2.4 Minor releases due to bug fixes.