Releases: GMLC-TDC/HELICS
v2.0.0
This is a major revision so this changelog will not capture all the changes that have been made in detail. Some highlights:
- major revision to the API including
- use of an error object in the C api function instead of a return code.
- better match the C++ api in terms of function names and layers.
- The C++ api now uses objects for the interfaces instead of identification ids.
- Filters can have multiple Targets
- Define an input object which can be addressed from outside the federate
- add a ZMQ_SS core type useful for large numbers of federates on a single machine.
- add a TCP_SS socket for firewall usage though it may be applicable in other situations
- numerous bug fixes and internal refactorings.
- add target functions to the interface objects to add and remove targets
- functions to allow cores and brokers to add links between federates
- an octave interface
- an early version of the C# interface.
- an ability to set a global value (as a string) that can be queried.
- a local info field for all the interfaces for user defined string data.
- many other small changes.
- License file changed to match BSD-3-clause exactly(terms are the same but the file had some extra disclaimers in it, now it matches the standard BSD-3-clause license)
HELICS 2.0 rc1
The 2.0 API is stable and should not change.
Some documentation updates are expected and if there are any bugs they will be fixed but the final 2.0 is expected soon.
HELICS 2.0 Beta.3
Final beta release. The API's should be stable. Remaining changes will be bug fixes and documentation updates.
Changes from beta.2 include a second zmq core type for high federate count systems,. Modified function calls to get and set the default destination for endpoints and incorporation of upsteam changes from third party libraries,. As well as numerous bug fixes and tests.
HELICS 2.0 Beta.2
Second Beta release for 2.0.0
options for interfaces
Several bug fixes and some performance improvements.
Some flags have changed
There is an info field that can be set for each interface object
The finalize call is now blocking
Interfaces can now be closed during a simulation
Global values can be created and queried
Several new test cases to test new features and capabilities.
HELICS 2.0 Beta.1
This is a beta release of the HELICS 2.0 API. There are numerous changes to the API based on feedback from the alpha releases and 1.X releases.
The major changes between the Alpha and Beta release are:
- registerXXX functions in the application API now return object references instead of id codes.
- Also several functions were then removed from the federate API since they are available in the object API's
- The #define's in the API were also removed in favor of enumerations.
- An octave interface is now available
- a preliminary C# interface is available
- Java, Matlab, and Python interfaces are fully operational and tested
- a single socket TCP core is now available
- all interfaces have an info field that can be used to store a string for user purposes
- Brokers and cores can accept a file to make connections
v1.3.1
Fixed
- some race conditions in a few test cases and in user disconnection calls for brokers
- certain types of federates would occasionally hang during off nominal shutdown call sequences. Fixing this led to a substantial rewrite of the tcp comms
Added
- federate, broker, and core destroy functions to the C api
- tcp cores have a --reuse-address flag to allow multiple brokers on the same port, mostly useful for the test suite to prevent spurious failures due to the OS not releasing tcp ports in a timely manner.
Changed
- wait for Broker now uses a condition variable instead of sleep and checking repeatedly
- changed the logging levels to be error, warning, summary, connections, interfaces, timing, data, and trace to better match debugging levels used in development and make the purpose of each level clearer
- comm objects now can use the same logging system as the rest of HELICS
2.0.0 alpha release 2
This is the second alpha release for HELICS 2.0. All C/C++ based tests are passing. So for those operations it has equivalent capabilities as the 1.X releases. The language bindings are not operational yet, with the MATLAB interface being farthest along. The target for the beta.1 release will be making sure all the language bindings work and compile. This release also includes several updates to the API's as learned from the previous release.
The target date for the beta.1 release is October 1.
Development work throughout the Beta release process will be to verify operations of the novel capabilities in HELICS 2.0 and add the remaining new planned capabilities.
RFC for 2.0.0 api
This release is for comment on the updated API's for the 2.0.0 release. Specifically on the C and C++ code.
Not all tests are passing, and none of the language API's are updated.
No binaries are provided for this release as it is not operationally ready.
Current schedule plan is to make sure most tests are passing, and address any comments for an alpha.2 release in a couple week.
Beta.1 Sept 30
Beta.X Mid-October
2.0.0 final late October
v1.3.0
Changed
- some CMake options have been removed (BUILD_BROKER)
- major changes to the build of the CTest testing Framework
- moved most examples to new HELICS-Examples Repo
Fixed
- potential segmentation fault in C shared library when calling free with invalid object.
- autobuild recognizes build configuration
Added
- working octave interface for Linux
- some additional tests for the shared library
- TOML readers for interface description in Federates
- interactive command line for helics_broker
- a few new queries on brokers see Queries
- CPACK can now build a dmg files
- Players can have multiline comments in input file and omit the tag for repeated messages
- marker option on player, recorder, tracer to print time advancement message
Changed
- added better code for allowing static runtime builds
- use the cmake version numbers instead of independent variables
- Environment variables are recognized in CMAKE find options
- split API tests from system wide tests
- added options on MSVC to build with embedded system libraries and embedded debug info.
Removed
- Most examples are now located in HELICS-Examples
v1.2.1
Fixed
- bug in the conversion of named points from strings
- matlab helicsSubscriptionGetVector function was producing a seg fault, now this is fixed
- performance issue in the delay buffers of federateState
- findMPI for MPI libraries with multiple libraries
- federates will now error on missing required publications
Added
- first cut of matlab interface tests
- some additional Java test cases
- Python test cases for named point and bool tests
- Matlab helper scripts for loading the libary
- String length function for subscriptions
Changed
- conversion of doubles into the internal time base now rounds to the nearest ns instead of truncating
- unify cmake scripts to use lower case commands