Validate requested completions against the events supported by an operation
The UPC++ implementation does not detect when a requested completion event is not in the set supported by an operation. For example, the following compiles:
#include <upcxx/upcxx.hpp>
using namespace upcxx;
int main() {
global_ptr<int> dst;
rput(3, dst, source_cx::as_future());
}
The spec states that this is UB, but we should really provide a diagnostic, since it's likely something users might do by accident.
Comments (6)
-
-
- changed milestone to 2019.03.31 release
Mass roll-over of unresolved issues to the next milestone.
-
- changed milestone to 2020.3.0 release
This issue was triaged at the 2019-07-24 Pagoda issue meeting and assigned a new milestone.
-
- changed milestone to 2020.9.0 release
This was discussed in the 2020-02-12 meeting and deferred to next release milestone.
-
reporter - changed status to resolved
Runtime validation of completions provided to UPC++ operations. Fixes
#151.→ <<cset b681b8c7fe64>>
-
reporter Merged in akamil/upcxx/issue151 (pull request #264)
Runtime validation of completions provided to UPC++ operations. Fixes
#151.Approved-by: Dan Bonachea dobonachea@lbl.gov
→ <<cset fcf6466f14ef>>
- Log in to comment
In the meeting today John mentioned that compile-time detection is potentially a bad idea since the erroneous usage may be in unreachable code.