You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
execution policies now don't have 'execution' in their name anymore (i.e. the former std::sequential_execution_policy is now named std::execution::sequential_policy) (see Adapt execution policy name changes from C++17 #2436)
Why on earth was this decided. I agree that its hard to recover from an error, but calling terminate sounds very drastic.
I agree completely and I don't think we should follow down that path. The way the wording is done now is that the exception behavior is defined by the execution policy and all standardized policies (std::execution::seq, std::execution::par, and std::execution::par_unseq) will cause for the algorithms to call std::terminate in case of any exceptions. This leaves us free to do whatever seems to be appropriate.
The rationale was that there was not sufficient time for C++17 to come up with a (proper) solution. Any other half-solution would have caused breaking changes down the road. Since par_unseq is not implementable using exceptions (and the spec always mandated calling std::terminate in this case), the majority opinion was to unify the behavior. The alternative would have been to completely rip out the parallel algorithms.
While the Parallelsim TS has been now adopted tobe part of C++17, there have been a couple of name changes which require corresponding changes in HPX:
par_vec
has been renamed topar_unseq
(see Adapt execution policy name changes from C++17 #2436)namespace std::execution
(see Adapt execution policy name changes from C++17 #2436)'execution'
in their name anymore (i.e. the formerstd::sequential_execution_policy
is now namedstd::execution::sequential_policy
) (see Adapt execution policy name changes from C++17 #2436)<execution_policy>
is now named<execution>
(see Adapt execution policy name changes from C++17 #2436)inner_product
was renamed totransform_reduce
(see Adapt algorithm parameter sequence changes from C++17 #2437)transform_reduce
etc.) (see Adapt algorithm parameter sequence changes from C++17 #2437)Other changes (we need to decide whether we will adopt those):
- [ ] any exception thrown from any of the algorithms now callsstd::terminate
- [ ] the algorithmadjacent_difference
has been removedThe text was updated successfully, but these errors were encountered: