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-rpc
is currently installed alongside GPISpace which is including it through its own CMake package configuration file.util-rpc-config.cmake
has the same root directory as GPISpace (i.e. util-rpc_ROOT == GPISpace_ROOT)- A
util-rpc
submodule can no longer exist in a GPISpace application. Keeping it will result in CMake errors. - The target
RPC
is now calledUtil::RPC
. - Compilation now requires a C++14 capable compiler.
- In
GPISpace
util-rpc
’s tests are disabled by default, to enable themUTIL_RPC_BUILD_TESTING
needs 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_options
headers are now installed withutil-generic
and 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-qt
is currently installed alongside GPISpace which is including it through its own CMake package configuration file.util-qt
is only installed if GPISpace is built withGSPC_WITH_MONITOR_APP=ON
(default)util-qt
submodule can no longer exist in a GPISpace application. Keeping it will result in CMake errors.- In addition to the
Util::Qt
target, there is now also aUtil::Qt-Headers
target for the public headers. - Compilation now requires a C++14 capable compiler.
- In
GPISpace
util-qt
’s tests are disabled by default, to enable themUTIL_QT_BUILD_TESTING
needs 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
HELP
argument 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
pnetc
now includes--std=c++14
in the flags used to compile the generated wrapper code. It used to be--std=c++11
before. - When ports are connected with places of wrong type, then the error
messages are now always correctly printing the direction,
e.g.
connect-in
and notconnect-0
any longer as in former versions of GPI-Space.
Miscellaneous
- API CHANGE: The file
fhg/util/dl-hpp
is no longer installed. Please useutil-generic/dynamic_linking.hpp
which 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 undershare
have 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 preferences
feature was added.