Release 21.12
Spack Package Deployment
With this release there will be a Spack package for installing GPI-Space and all its dependencies (i.e. versions 21.09 and 21.12).
Installing GPI-Space could be as simple as spack install gpi-space.
NOTE:
The package will only be available some time after the release. In the meantime, some reading material on Spack:
API CHANGE: Standalone Util-RPC
GPI-Space’s RPC is now a standalone project with its own CMake package
configuration file and has been renamed to util-rpc. A few more things
to note:
util-rpcis currently installed alongside GPISpace which is including it through its own CMake package configuration file.util-rpc-config.cmakehas the same root directory as GPISpace (i.e. util-rpc_ROOT == GPISpace_ROOT)- A
util-rpcsubmodule can no longer exist in a GPISpace application. Keeping it will result in CMake errors. - The target
RPCis now calledUtil::RPC. - Compilation now requires a C++14 capable compiler.
- In
GPISpaceutil-rpc’s tests are disabled by default, to enable themUTIL_RPC_BUILD_TESTINGneeds to be set toON.
API CHANGE: fhg/util/boost/program_options has been merged into util-generic
fhg/util/boost/program_options has been merged into util-generic and is no
longer available as a separate repository.
Changes:
#include <fhg/util/boost/program_options/...>becomes#include <util-generic/boost/program_options/...>fhg/util/boost/program_optionsheaders are now installed withutil-genericand are therefore part of the public API.
API CHANGE: Standalone Util-Qt
GPISpace’s util-qt is now a standalone project with its own CMake package
configuration file. A few more things to note:
util-qtis currently installed alongside GPISpace which is including it through its own CMake package configuration file.util-qtis only installed if GPISpace is built withGSPC_WITH_MONITOR_APP=ON(default)util-qtsubmodule can no longer exist in a GPISpace application. Keeping it will result in CMake errors.- In addition to the
Util::Qttarget, there is now also aUtil::Qt-Headerstarget for the public headers. - Compilation now requires a C++14 capable compiler.
- In
GPISpaceutil-qt’s tests are disabled by default, to enable themUTIL_QT_BUILD_TESTINGneeds to be set toON.
New System Testing Functionality
A new System Test functionality is introduced and demonstrated on the aggregate_sum example from the How-To-Use instructions.
In contrast to the old system tests, this one is truly independent of build tree information.
This was achieved through a new indirection which makes CTest call a script to perform a separate CMake configuration, build, and execution.
The newly introduced script is also usable outside of util_cmake_add_system_test.
Improvements to Util-CMake’s parse_arguments
A new and improved cmake_parse_arguments wrapper util_cmake_parse_arguments
with a more powerful and flexible argument definition syntax is added. At the
same time, the old _parse_arguments and _parse_arguments_with_unknown will
be removed in the foreseeable future.
util_cmake_parse_arguments features:
- required arguments
- a flag to trigger an error message in case of unparsed arguments
- a flag to trigger an error message in case of keywords with missing values
- automatic generation of a usage message
- a flag to trigger the usage message in case the
HELPargument is set - default values
- appending of additional values to the default
Util-CMake Feature for Colored Strings
A functionality is provided to color strings for console outputs using escape
codes. The function util_cmake_color_string is located in
util-cmake/colors.cmake.
Fixes
- API CHANGE: The Petri net compiler
pnetcnow includes--std=c++14in the flags used to compile the generated wrapper code. It used to be--std=c++11before. - When ports are connected with places of wrong type, then the error
messages are now always correctly printing the direction,
e.g.
connect-inand notconnect-0any longer as in former versions of GPI-Space.
Miscellaneous
- API CHANGE: The file
fhg/util/dl-hppis no longer installed. Please useutil-generic/dynamic_linking.hppwhich provides the same interface. - CentOS 6 has reached its End Of Life on November 30th 2020. Dropping support for this system was necessary to reduce the maintenance effort.
- The minimum supported version of GCC is increased to 5.5.0.
Meta
- Documentation files and examples are now grouped together under
share/doc/. All tests undersharehave been relocated intotest/share/for a cleaner separation between documentation and tests. - More content was added to the existing feature documenation.
Additionally, a description of the
scheduling with preferencesfeature was added.