diff --git a/xml/issue4344.xml b/xml/issue4344.xml new file mode 100644 index 0000000000..99c5531ba6 --- /dev/null +++ b/xml/issue4344.xml @@ -0,0 +1,56 @@ + + + + +<code>affine_on</code> has no specification for the default +
+Dietmar Kühl +01 Sep 2025 +99 + + +

+The wording of affine_on doesnt have a specification +for the default implementation. For other algorithms the default +implementation is specified. +

+

+The intention for affine_on was to all +optimisation/customisation in a way reducing the necessary scheduling: +if the implementation can determine if a sender completed already +on the correct execution agent it should be allowed to avoid +scheduling. A specification should provide enough lattitude to +allow that. +

+
+ + +

+Add a new paragraph to the specification of affine_on +in providing +a specification for the default implementation: +

+

+

+

+-6- Let sndr and env be subexpressions +such that Sndr is decltype((sndr)). If +sender-for<Sndr, affine_on_t> is false, then the expression +affine_on.transform_sender(sndr, env) is ill-formed; otherwise, it +is equivalent to: + +

+
+  
+auto [_, sch, child] = sndr;
+return transform_sender(
+  query-with-default(get_domain, sch, default_domain()),
+  continues_on(std::move(child), std::move(sch)));
+
+
+

except that sch is only evaluated once.

+
+

+
+ +