HPX V1.4.0 (January 15, 2020)#

General changes#

  • We have added the collectives all_to_all and all_reduce.

  • We have added APIs for resiliency, which allows replication and replay for failed tasks. See the documentation for more details.

  • Components can now be checkpointed.

  • Performance improvements to schedulers and coroutines. A significant change is the addition of stackless coroutines. These are to be used for tasks that do not need to be suspended and can reduce overheads noticeably in applications with short tasks. A stackless coroutine can be created with the new stack size thread_stacksize_nostack.

  • We have added an implementation of unique_any, which is a non-copyable version of any.

  • The shared_priority_queue_scheduler has been improved. It now has lower overheads than the default scheduler in many situations. Unlike the default scheduler it fully supports NUMA scheduling hints. Enable it with the command line option --hpx:queuing=shared-priority. This scheduler should still be considered experimental, but its use is encouraged in real applications to help us make it production ready.

  • We have added the performance counters background-receive-duration and background-receive-overhead for inspecting the time and overhead spent on receiving parcels in the background.

  • Compilation time has been further improved when HPX_WITH_NETWORKING=OFF.

  • We no longer require compiled Boost dependencies in certain configurations. This requires at least Boost 1.70, compiling on x86 with GCC 9, clang (libc++) 9, or VS2019 in C++17 mode. The dependency on Boost.Filesystem can explicitly be turned on with HPX_FILESYSTEM_WITH_BOOST_FILESYSTEM_COMPATIBILITY=ON (it is off by default if the standard library supports std::filesystem). Boost.ProgramOptions has been copied into the HPX repository. We have a compatibility layer for users who must explicitly use Boost.ProgramOptions instead of the ProgramOptions provided by HPX. To remove the dependency HPX_PROGRAM_OPTIONS_WITH_BOOST_PROGRAM_OPTIONS_COMPATIBILITY must be explicitly set to OFF. This option will be removed in a future release. We have also removed several other header-only dependencies on Boost.

  • It is now possible to use the process affinity mask set by tools like numactl and various batch environments with the command line option --hpx:use-process-mask. Enabling this option implies --hpx:ignore-batch-env.

  • It is now possible to create standalone thread pools without starting the runtime. See the standalone_thread_pool_executor.cpp test in the execution module for an example.

  • Tasks annotated with hpx::util::annotated_function now have their correct name when using APEX to generate OTF2 files.

  • Cloning of APEX was defective in previous releases (it required manual intervention to check out the correct tag or branch). This has been fixed.

  • The option HPX_WITH_MORE_THAN_64_THREADS is now ignored and will be removed in a future release. The value is instead derived directly from HPX_WITH_MAX_CPU_COUNT option.

  • We have deprecated compiling in C++11 mode. The next release will require a C++14 capable compiler.

  • We have deprecated support for the Vc library. This option will be replaced with SIMD support from the standard library in a future release.

  • We have significantly refactored our CMake setup. This is intended to be a non-breaking change and will allow for using HPX through CMake targets in the future.

  • We have continued modularizing the HPX library. In the process we have rearranged many header files into module-specific directories. All moved headers have compatibility headers which forward from the old location to the new location, together with a deprecation warning. The compatibility headers will eventually be removed.

  • We now enforce formatting with clang-format on the majority of our source files.

  • We have added SPDX license tags to all files.

  • Many bugfixes.

Breaking changes#

  • The HPX_WITH_THREAD_COMPATIBILITY option and the associated compatibility layer has been removed.

  • The HPX_WITH_INCLUSIVE_SCAN_COMPATIBILITY option and the associated compatibility layer has been removed.

  • The HPX_WITH_UNWRAPPED_COMPATIBLITY option and the associated compatibility layer has been removed.

Closed issues#

  • Issue #4282 - Build Issues with Release on Windows

  • Issue #4278 - Build Issues with CMake 3.14.4

  • Issue #4273 - Clients of HPX 1.4.0-rc2 with APEX ar not linked to libhpx-apex

  • Issue #4269 - Building HPX 1.4.0-rc2 with support for APEX fails

  • Issue #4263 - Compilation fail on latest master

  • Issue #4232 - Configure of HPX project using CMake FetchContent fails

  • Issue #4223 - “Re-using the main() function as the main HPX entry point” doesn’t work

  • Issue #4220 - HPX won’t compile - error building resource_partitioner

  • Issue #4215 - HPX 1.4.0rc1 does not link on s390x

  • Issue #4204 - Trouble compiling HPX with Intel compiler

  • Issue #4199 - Refactor APEX to eliminate circular dependency

  • Issue #4187 - HPX can’t build on OSX

  • Issue #4185 - Simple debug output for development

  • Issue #4182 - @HPX_CONF_PREFIX@ is the empty string

  • Issue #4169 - HPX won’t build with APEX

  • Issue #4163 - Add back HPX_LIBRARIES and HPX_INCLUDE_DIRS

  • Issue #4161 - It should be possible to call find_package(HPX) multiple times

  • Issue #4155 - get_self_id() for stackless threads returns invalid_thread_id

  • Issue #4151 - build error with MPI code

  • Issue #4150 - hpx won’t build on POWER9 with clang 8

  • Issue #4148 - cacheline_data delivers poor performance with C++17 compared to C++14

  • Issue #4144 - target general in HPX_LIBRARIES does not exist

  • Issue #4134 - CMake Error when -DHPX_WITH_HPXMP=ON

  • Issue #4132 - parallel fill leaves elements unfilled

  • Issue #4123 - PAPI performance counters are inaccessible

  • Issue #4118 - static_chunk_size is not obeyed in scan algorithms

  • Issue #4115 - dependency chaining error with APEX

  • Issue #4107 - Initializing runtime without entry point function and command line arguments

  • Issue #4105 - Bug in hpx:bind=numa-balanced

  • Issue #4101 - Bound tasks

  • Issue #4100 - Add SPDX identifier to all files

  • Issue #4085 - hpx_topology library should depend on hwloc

  • Issue #4067 - HPX fails to build on macOS

  • Issue #4056 - Building without thread manager idle backoff fails

  • Issue #4052 - Enforce clang-format style for modules

  • Issue #4032 - Simple hello world fails to launch correctly

  • Issue #4030 - Allow threads to skip context switching

  • Issue #4029 - Add support for mimalloc

  • Issue #4005 - Can’t link HPX when APEX enabled

  • Issue #4002 - Missing header for algorithm module

  • Issue #3989 - conversion from long to unsigned int requires a narrowing conversion on MSVC

  • Issue #3958 - /statistics/average@ perf counter can’t be created

  • Issue #3953 - CMake errors from HPX_AddPseudoDependencies

  • Issue #3941 - CMake error for APEX install target

  • Issue #3940 - Convert pseudo-doxygen function documentation into actual doxygen documentation

  • Issue #3935 - HPX compiler match too strict?

  • Issue #3929 - Buildbot failures on latest HPX stable

  • Issue #3912 - I recommend publishing a version that does not depend on the boost library

  • Issue #3890 - hpx.ini not working

  • Issue #3883 - cuda compilation fails because of -faligned-new

  • Issue #3879 - HPX fails to configure with -DHPX_WITH_TESTS=OFF

  • Issue #3871 - dataflow does not support void allocators

  • Issue #3867 - Latest HTML docs placed in wrong directory on GitHub pages

  • Issue #3866 - Make sure all tests use HPX_TEST* macros and not HPX_ASSERT

  • Issue #3857 - CMake all-keyword or all-plain for target_link_libraries

  • Issue #3856 - hpx_setup_target adds rogue flags

  • Issue #3850 - HPX fails to build on POWER8 with Clang7

  • Issue #3848 - Remove lva member from thread_init_data

  • Issue #3838 - hpx::parallel::count/count_if failing tests

  • Issue #3651 - hpx::parallel::transform_reduce with non const reference as lambda parameter

  • Issue #3560 - Apex integration with HPX not working properly

  • Issue #3322 - No warning when mixing debug/release builds

Closed pull requests#

  • PR #4300 - Checks for MPI_Init being called twice

  • PR #4299 - Small CMake fixes

  • PR #4298 - Remove extra call to annotate function that messes up traces

  • PR #4296 - Fixing collectives locking problem

  • PR #4295 - Do not check LICENSE_1_0.txt for inspect violations

  • PR #4293 - Applying two small changes fixing carious MSVC/Windows problems

  • PR #4285 - Delete apex.hpp

  • PR #4276 - Disable doxygen generation for hpx/debugging/print.hpp file

  • PR #4275 - Make sure APEX is linked to even when not explicitly referenced

  • PR #4272 - Fix pushing of documentation

  • PR #4271 - Updating APEX tag, don’t create new task_wrapper on operator= of hpx_thread object

  • PR #4268 - Testing for noexcept function specializations in C++11/14 mode

  • PR #4267 - Fixing MSVC warning

  • PR #4266 - Make sure macOS Travis CI fails if build step fails

  • PR #4264 - Clean up compatibility header options

  • PR #4262 - Cleanup modules CMakeLists.txt

  • PR #4261 - Fixing HPX/APEX linking and dependencies for external projects like Phylanx

  • PR #4260 - Fix docs compilation problems

  • PR #4258 - Couple of minor changes

  • PR #4257 - Fix apex annotation for async dispatch

  • PR #4256 - Remove lambdas from assert expressions

  • PR #4255 - Ignoring lock in all_to_all and all_reduce

  • PR #4254 - Adding action specializations for noexcept functions

  • PR #4253 - Move partlit.hpp to affinity module

  • PR #4252 - Make mismatching build types a hard error in CMake

  • PR #4249 - Scheduler improvement

  • PR #4248 - update hpxmp tag to v0.3.0

  • PR #4245 - Adding high performance channels

  • PR #4244 - Ignore lock in ignore_while_locked_1485 test

  • PR #4243 - Fix PAPI command line option documentation

  • PR #4242 - Ignore lock in target_distribution_policy

  • PR #4241 - Fix start_stop_callbacks test

  • PR #4240 - Mostly fix clang CUDA compilation

  • PR #4238 - Google Season of Docs updates to documentation; grammar edits.

  • PR #4237 - fixing annotated task to use the name, not the desc

  • PR #4236 - Move module print summary to modules

  • PR #4235 - Don’t use alignas in cache_{aligned,line}_data

  • PR #4234 - Add basic overview sentence to all modules

  • PR #4230 - Add OS X builds to Travis CI

  • PR #4229 - Remove leftover queue compatibility checks

  • PR #4226 - Fixing APEX shutdown by explicitly shutting down throttling

  • PR #4225 - Allow CMAKE_INSTALL_PREFIX to be a relative path

  • PR #4224 - Deprecate verbs parcelport

  • PR #4222 - Update register_{thread,work} namespaces

  • PR #4221 - Changing HPX_GCC_VERSION check from 70000 to 70300

  • PR #4218 - Google Season of Docs updates to documentation; grammar edits.

  • PR #4217 - Google Season of Docs updates to documentation; grammar edits.

  • PR #4216 - Fixing gcc warning on 32bit platforms (integer truncation)

  • PR #4214 - Apex callback refactoring

  • PR #4213 - Clean up allocator checks for dependent projects

  • PR #4212 - Google Season of Docs updates to documentation; grammar edits.

  • PR #4211 - Google Season of Docs updates to documentation; contributing to hpx

  • PR #4210 - Attempting to fix Intel compilation

  • PR #4209 - Fix CUDA 10 build

  • PR #4205 - Making sure that differences in CMAKE_BUILD_TYPE are not reported on multi-configuration cmake generators

  • PR #4203 - Deprecate Vc

  • PR #4202 - Fix CUDA configuration

  • PR #4200 - Making sure hpx_wrap is not passed on to linker on non-Linux systems

  • PR #4198 - Fix execution_agent.cpp compilation with GCC 5

  • PR #4197 - Remove deprecated options for 1.4.0 release

  • PR #4196 - minor fixes for building on OSX Darwin

  • PR #4195 - Use full clone on CircleCI for pushing stable tag

  • PR #4193 - Add scheduling hints to hello_world_distributed

  • PR #4192 - Set up CUDA in HPXConfig.cmake

  • PR #4191 - Export allocators root variables

  • PR #4190 - Don’t use constexpr in thread_data with GCC <= 6

  • PR #4189 - Only use quick_exit if available

  • PR #4188 - Google Season of Docs updates to documentation; writing single node hpx applications

  • PR #4186 - correct vc to cuda in cuda cmake

  • PR #4184 - Resetting some cached variables to make sure those are re-filled

  • PR #4183 - Fix hpxcxx configuration

  • PR #4181 - Rename base libraries var

  • PR #4180 - Move header left behind earlier to plugin module

  • PR #4179 - Moving zip_iterator and transform_iterator to iterator_support module

  • PR #4178 - Move checkpointing support to its own module

  • PR #4177 - Small const fix to basic_execution module

  • PR #4176 - Add back HPX_LIBRARIES and friends to HPXConfig.cmake

  • PR #4175 - Make Vc public and add it to HPXConfig.cmake

  • PR #4173 - Wait for runtime to be running before returning from hpx::start

  • PR #4172 - More protection against shutdown problems in error handling scenarios.

  • PR #4171 - Ignore lock in condition_variable::wait

  • PR #4170 - Adding APEX dependency to MPI parcelport

  • PR #4168 - Adding utility include

  • PR #4167 - Add a condition to setup the external libraries

  • PR #4166 - Add an INTERNAL_FLAGS option to link to hpx_internal_flags

  • PR #4165 - Forward HPX_* cmake cache variables to external projects

  • PR #4164 - Affinity and batch environment modules

  • PR #4162 - Handle quick exit

  • PR #4160 - Using target_link_libraries for cmake versions >= 3.12

  • PR #4159 - Make sure HPX_WITH_NATIVE_TLS is forwarded to dependent projects

  • PR #4158 - Adding allocator imported target as a dependency of allocator module

  • PR #4157 - Add hpx_memory as a dependency of parcelport plugins

  • PR #4156 - Stackless coroutines now can refer to themselves (through get_self() and friends)

  • PR #4154 - Added CMake policy CMP0060 for HPX applications.

  • PR #4153 - add header iomanip to tests and tool

  • PR #4152 - Casting MPI tag value

  • PR #4149 - Add back private m_desc member variable in program_options module

  • PR #4147 - Resource partitioner and threadmanager modules

  • PR #4146 - Google Season of Docs updates to documentation; creating hpx projects

  • PR #4145 - Adding basic support for stackless threads

  • PR #4143 - Exclude test_client_1950 from all target

  • PR #4142 - Add a new thread_pool_executor

  • PR #4140 - Google Season of Docs updates to documentation; why hpx

  • PR #4139 - Remove runtime includes from coroutines module

  • PR #4138 - Forking boost::intrusive_ptr and adding it as hpx::intrusive_ptr

  • PR #4137 - Fixing TSS destruction

  • PR #4136 - HPX.Compute modules

  • PR #4133 - Fix block_executor

  • PR #4131 - Applying fixes based on reports from PVS Studio

  • PR #4130 - Adding missing header to build system

  • PR #4129 - Fixing compilation if HPX_WITH_DATAPAR_VC is enabled

  • PR #4128 - Renaming moveonly_any to unique_any

  • PR #4126 - Attempt to fix basic_any constructor for gcc 7

  • PR #4125 - Changing extra_archive_data implementation

  • PR #4124 - Don’t link to Boost.System unless required

  • PR #4122 - Add kernel launch helper utility (+saxpy demo) and merge in octotiger changes

  • PR #4121 - Fixing migration test if networking is disabled.

  • PR #4120 - Google Season of Docs updates to documentation; hpx build system v1

  • PR #4119 - Making sure chunk_size and max_chunk are actually applied to parallel algorithms if specified

  • PR #4117 - Make CircleCI formatting check store diff

  • PR #4116 - Fix automatically setting C++ standard

  • PR #4114 - Module serialization

  • PR #4113 - Module datastructures

  • PR #4111 - Fixing performance regression introduced earlier

  • PR #4110 - Adding missing SPDX tags

  • PR #4109 - Overload for start without entry point/argv.

  • PR #4108 - Making sure C++ standard is properly detected and propagated

  • PR #4106 - use std::round for guaranteed rounding without errors

  • PR #4104 - Extend scheduler_mode with new work_stealing and task assignment modes

  • PR #4103 - Add this to lambda capture list

  • PR #4102 - Add spdx license and check

  • PR #4099 - Module coroutines

  • PR #4098 - Fix append module path in module CMakeLists template

  • PR #4097 - Function tests

  • PR #4096 - Removing return of thread_result_type from functions not needing them

  • PR #4095 - Stop-gap measure until cmake overhaul is in place

  • PR #4094 - Deprecate HPX_WITH_MORE_THAN_64_THREADS

  • PR #4093 - Fix initialization of global_num_tasks in parallel_executor

  • PR #4092 - Add support for mi-malloc

  • PR #4090 - Execution context

  • PR #4089 - Make counters in coroutines optional

  • PR #4087 - Making hpx::util::any compatible with C++17

  • PR #4084 - Making sure destination array for std::transform is properly resized

  • PR #4083 - Adapting thread_queue_mc to behave even if no 128bit atomics are available

  • PR #4082 - Fix compilation on GCC 5

  • PR #4081 - Adding option allowing to force using Boost.FileSystem

  • PR #4080 - Updating module dependencies

  • PR #4079 - Add missing tests for iterator_support module

  • PR #4078 - Disable parcel-layer if networking is disabled

  • PR #4077 - Add missing include that causes build fails

  • PR #4076 - Enable compatibility headers for functional module

  • PR #4075 - Coroutines module

  • PR #4073 - Use configure_file for generated files in modules

  • PR #4071 - Fixing MPI detection for PMIx

  • PR #4070 - Fix macOS builds

  • PR #4069 - Moving more facilities to the collectives module

  • PR #4068 - Adding main HPX #include directory to modules

  • PR #4066 - Switching the use of message(STATUS "...") to hpx_info

  • PR #4065 - Move Boost.Filesystem handling to filesystem module

  • PR #4064 - Fix program_options test with older boost versions

  • PR #4062 - The cpu_features tool fails to compile on anything but x86 architectures

  • PR #4061 - Add clang-format checking step for modules

  • PR #4060 - Making sure HPX_IDLE_BACKOFF_TIME_MAX is always defined (even if its unused)

  • PR #4059 - Renaming module hpx_parallel_executors into hpx_execution

  • PR #4058 - Do not build networking tests when networking disabled

  • PR #4057 - Printing configuration summary for modules as well

  • PR #4055 - Google Season of Docs updates to documentation; hpx build systems

  • PR #4054 - Add troubleshooting section to manual

  • PR #4051 - Add more variations to future_overhead test

  • PR #4050 - Creating plugin module

  • PR #4049 - Move missing modules tests

  • PR #4047 - Add boost/filesystem headers to inspect deprecated headers

  • PR #4045 - Module functional

  • PR #4043 - Fix preconditions and error messages for suspension functions

  • PR #4041 - Pass HPX_STANDARD on to dependent projects via HPXConfig.cmake

  • PR #4040 - Program options module

  • PR #4039 - Moving non-serializable any (any_nonser) to datastructures module

  • PR #4038 - Adding MPark’s variant (V1.4.0) to HPX

  • PR #4037 - Adding resiliency module

  • PR #4036 - Add C++17 filesystem compatibility header

  • PR #4035 - Fixing support for mpirun

  • PR #4028 - CMake to target based directives

  • PR #4027 - Remove GitLab CI configuration

  • PR #4026 - Threading refactoring

  • PR #4025 - Refactoring thread queue configuration options

  • PR #4024 - Fix padding calculation in cache_aligned_data.hpp

  • PR #4023 - Fixing Codacy issues

  • PR #4022 - Make sure process mask option is passed to affinity_data

  • PR #4021 - Warn about compiling in C++11 mode

  • PR #4020 - Module concurrency

  • PR #4019 - Module topology

  • PR #4018 - Update deprecated header in thread_queue_mc.hpp

  • PR #4015 - Avoid overwriting artifacts

  • PR #4014 - Future overheads

  • PR #4013 - Update URL to test output conversion script

  • PR #4012 - Fix CUDA compilation

  • PR #4011 - Fixing cyclic dependencies between modules

  • PR #4010 - Ignore stable tag on CircleCI

  • PR #4009 - Check circular dependencies in a circle ci step

  • PR #4008 - Extend cache aligned data to handle tuple-like data

  • PR #4007 - Fixing migration for components that have actions returning a client

  • PR #4006 - Move is_value_proxy.hpp to algorithms module

  • PR #4004 - Shorten CTest timeout on CircleCI

  • PR #4003 - Refactoring to remove (internal) dependencies

  • PR #4001 - Exclude tests from all target

  • PR #4000 - Module errors

  • PR #3999 - Enable support for compatibility headers for logging module

  • PR #3998 - Add process thread binding option

  • PR #3997 - Export handle_assert function

  • PR #3996 - Attempt to solve issue where -latomic does not support 128bit atomics

  • PR #3993 - Make sure __LINE__ is an unsigned

  • PR #3991 - Fix dependencies and flags for header tests

  • PR #3990 - Documentation tags fixes

  • PR #3988 - Adding missing solution folder for format module test

  • PR #3987 - Move runtime-dependent functions out of command line handling

  • PR #3986 - Fix CMake configuration with PAPI on

  • PR #3985 - Module timing

  • PR #3984 - Fix default behaviour of paths in add_hpx_component

  • PR #3982 - Parallel executors module

  • PR #3981 - Segmented algorithms module

  • PR #3980 - Module logging

  • PR #3979 - Module util

  • PR #3978 - Fix clang-tidy step on CircleCI

  • PR #3977 - Fixing solution folders for moved components

  • PR #3976 - Module format

  • PR #3975 - Enable deprecation warnings on CircleCI

  • PR #3974 - Fix typos in documentation

  • PR #3973 - Fix compilation with GCC 9

  • PR #3972 - Add condition to clone apex + use of new cmake var APEX_ROOT

  • PR #3971 - Add testing module

  • PR #3968 - Remove unneeded file in hardware module

  • PR #3967 - Remove leftover PIC settings from main CMakeLists.txt

  • PR #3966 - Add missing export option in add_hpx_module

  • PR #3965 - Change current_function_helper back to non-constexpr

  • PR #3964 - Fixing merge problems

  • PR #3962 - Add a trait for std::array for unwrapping

  • PR #3961 - Making hpx::util::tuple<Ts...> and std::tuple<Ts...> convertible

  • PR #3960 - fix compilation with CUDA 10 and GCC 6

  • PR #3959 - Fix C++11 incompatibility

  • PR #3957 - Algorithms module

  • PR #3956 - [HPX_AddModule] Fix lower name var to upper

  • PR #3955 - Fix CMake configuration with examples off and tests on

  • PR #3954 - Move components to separate subdirectory in root of repository

  • PR #3952 - Update papi.cpp

  • PR #3951 - Exclude modules header tests from all target

  • PR #3950 - Adding all_reduce facility to collectives module

  • PR #3949 - This adds a configuration file that will cause for stale issues to be automatically closed

  • PR #3948 - Fixing ALPS environment

  • PR #3947 - Add major compiler version check for building hpx as a binary package

  • PR #3946 - [Modules] Move the location of the generated headers

  • PR #3945 - Simplify tests and examples cmake

  • PR #3943 - Remove example module

  • PR #3942 - Add NOEXPORT option to add_hpx_{component,library}

  • PR #3938 - Use https for CDash submissions

  • PR #3937 - Add HPX_WITH_BUILD_BINARY_PACKAGE to the compiler check (refs #3935)

  • PR #3936 - Fixing installation of binaries on windows

  • PR #3934 - Add set function for sliding_semaphore max_difference

  • PR #3933 - Remove cudadevrt from compile/link flags as it breaks downstream projects

  • PR #3932 - Fixing 3929

  • PR #3931 - Adding all_to_all

  • PR #3930 - Add test demonstrating the use of broadcast with component actions

  • PR #3928 - fixed number of tasks and number of threads for heterogeneous slurm environments

  • PR #3927 - Moving Cache module’s tests into separate solution folder

  • PR #3926 - Move unit tests to cache module

  • PR #3925 - Move version check to config module

  • PR #3924 - Add schedule hint executor parameters

  • PR #3923 - Allow aligning objects bigger than the cache line size

  • PR #3922 - Add Windows builds with Travis CI

  • PR #3921 - Add ccls cache directory to gitignore

  • PR #3920 - Fix git_external fetching of tags

  • PR #3905 - Correct rostambod url. Fix typo in doc

  • PR #3904 - Fix bug in context_base.hpp

  • PR #3903 - Adding new performance counters

  • PR #3902 - Add add_hpx_module function

  • PR #3901 - Factoring out container remapping into a separate trait

  • PR #3900 - Making sure errors during command line processing are properly reported and will not cause assertions

  • PR #3899 - Remove old compatibility bases from make_action

  • PR #3898 - Make parameter size be of type size_t

  • PR #3897 - Making sure all tests are disabled if HPX_WITH_TESTS=OFF

  • PR #3895 - Add documentation for annotated_function

  • PR #3894 - Working around VS2019 problem with make_action

  • PR #3892 - Avoid MSVC compatibility warning in internal allocator

  • PR #3891 - Removal of the default intel config include

  • PR #3888 - Fix async_customization dataflow example and Clarify what’s being tested

  • PR #3887 - Add Doxygen documentation

  • PR #3882 - Minor docs fixes

  • PR #3880 - Updating APEX version tag

  • PR #3878 - Making sure symbols are properly exported from modules (needed for Windows/MacOS)

  • PR #3877 - Documentation

  • PR #3876 - Module hardware

  • PR #3875 - Converted typedefs in actions submodule to using directives

  • PR #3874 - Allow one to suppress target keywords in hpx_setup_target for backwards compatibility

  • PR #3873 - Add scripts to create releases and generate lists of PRs and issues

  • PR #3872 - Fix latest HTML docs location

  • PR #3870 - Module cache

  • PR #3869 - Post 1.3.0 version bumps

  • PR #3868 - Replace the macro HPX_ASSERT by HPX_TEST in tests

  • PR #3845 - Assertion module

  • PR #3839 - Make tuple serialization non-intrusive

  • PR #3832 - Config module

  • PR #3799 - Remove compat namespace and its contents

  • PR #3701 - MoodyCamel lockfree

  • PR #3496 - Disabling MPI’s (deprecated) C++ interface

  • PR #3192 - Move type info into hpx::debug namespace and add print helper functions

  • PR #3159 - Support Checkpointing Components