- changed component to Progress
This issue is a follow-on to spec issue 169.
Starting in Spec 2020.10.0, Section 10.2 states:
A thread running in the restricted context shall not initiate any UPC++ collective operation that has a progress level of user.
Initiating a collective operation with a progress level of internal or none from within the restricted context is deprecated behavior, and it may be prohibited in subsequent revisions.
and the 2020.10.0 ChangeLog documents our enforcement under "Breaking Changes":
- Initiating collective operations with progress level
userfrom inside the restricted context (within a callback running inside progress) is now prohibited, and diagnosed with a runtime error. Most such calls previously led to silent deadlock. - Initiating collective operations with a progress level of
internalornonefrom within the restricted context (within a callback running inside progress) is now a deprecated behavior, and diagnosed with a runtime warning. For details, see spec issue 169.
The next step is to convert the deprecation into a prohibition in the spec and a fatal error in the implementation. I propose to do this after the upcoming Fall 2021 release, so that over a year of releases with deprecation has passed before we move to prohibition.