HPX V1.7.1 (Aug 12, 2021)

This is a bugfix release with a few minor fixes.

General changes

  • Added a CMake option to assume that all types are bitwise serializable by default: HPX_SERIALIZATION_WITH_ALL_TYPES_ARE_BITWISE_SERIALIZABLE. The default value OFF corresponds to the old behaviour.

  • Added a version check for Asio. The minimum Asio version supported by HPX is 1.12.0.

  • Fixed a bug affecting usage of actions, where the internals of HPX relied on function addresses being unique. This was fixed by relying on variable addresses being unique instead.

  • Made hpx::util::bind more strict in checking the validity of placeholders.

  • Small performance improvement to spinlocks.

  • Adapted the following parallel algorithms to C++20: inclusive_scan, exclusive_scan, transform_inclusive_scan, transform_exclusive_scan.

Breaking changes

  • The experimental hpx::execution::simdpar execution policy (introduced in 1.7.0) was renamed to hpx::execution::par_simd for consistency with the other parallel policies.

Closed issues

Closed pull requests

  • PR #5500 - Minor bug fix in transform exclusive and inclusive scan tests

  • PR #5499 - Rename simdpar to par_simd

  • PR #5489 - Adding bound-checking for bind placeholders

  • PR #5485 - Add Asio version check

  • PR #5482 - Change extra archive data to rely on uniqueness of a variable address, not a function address

  • PR #5448 - More fixes to enable for all types to be assumed to be bitwise copyable

  • PR #5445 - Improve performance of Spinlocks

  • PR #5444 - Adapt transform_inclusive_scan to C++ 20

  • PR #5440 - Adapt transform_exclusive_scan to C++ 20

  • PR #5439 - Adapt inclusive_scan to C++ 20

  • PR #5436 - Adapt exclusive_scan to C++20