This is an automated email from the ASF dual-hosted git repository.
asf-gitbox-commits pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/groovy-dev-site.git
The following commit(s) were added to refs/heads/asf-site by this push:
new f368bab 2026/05/21 12:05:03: Generated dev website from
groovy-website@b1893c2
f368bab is described below
commit f368babbcff9e3291b75ae4140ca2691332077b3
Author: jenkins <[email protected]>
AuthorDate: Thu May 21 12:05:03 2026 +0000
2026/05/21 12:05:03: Generated dev website from groovy-website@b1893c2
---
blog/groovy6-functional.html | 13 +++++++++++++
search/search-index.json | 4 ++--
wiki/GEP-23.html | 21 ++++++++++++++++++---
3 files changed, 33 insertions(+), 5 deletions(-)
diff --git a/blog/groovy6-functional.html b/blog/groovy6-functional.html
index 0a3a67b..970013c 100644
--- a/blog/groovy6-functional.html
+++ b/blog/groovy6-functional.html
@@ -423,6 +423,19 @@ Awaitable<String> greetByKey(String key) {
</div>
</div>
<div class="paragraph">
+<p><code>DO</code> and <code>for await</code> (the other "await"-shaped new
Groovy 6 construct)
+operate at different layers and are easy to confuse. <code>DO</code> composes
+<strong>one</strong> result from a chain of dependent monadic steps; <code>for
await</code>
+iterates over <strong>many</strong> values pulled from a stream-shaped source
+(<code>Flow.Publisher</code>, <code>AsyncChannel</code>, a generator). If the
problem is
+"three dependent calls produce a single answer", reach for <code>DO</code>. If
it
+is "a stream of events to process as they arrive", reach for
+<code>for await</code>. The two compose at different layers — a
<code>DO</code> chain can
+sit inside the body of a <code>for await</code> loop, and an
<code>Awaitable</code> produced
+by <code>DO</code> can be one element of an upstream publisher consumed by
+<code>for await</code> — but neither replaces the other.</p>
+</div>
+<div class="paragraph">
<p>And over FunctionalJava’s <code>Validation</code> — no annotation, no
wrapper, no
Groovy dependency on FunctionalJava, because <code>fj.data.Validation</code> is
recognised by name in `DO’s standard allow-list:</p>
diff --git a/search/search-index.json b/search/search-index.json
index 202d1fe..318ca46 100644
--- a/search/search-index.json
+++ b/search/search-index.json
@@ -240,7 +240,7 @@
{
"id": "blog/groovy6-functional.html",
"title": "The Apache Groovy programming language - Blogs - Groovy 6
features for Functional Programmers",
- "content": "The Apache Groovy programming language - Blogs - Groovy 6
features for Functional Programmers Socialize Discuss on the mailing list
Groovy on X Groovy on Bluesky Groovy on Mastodon Groovy on LinkedIn Events and
conferences Source code on GitHub Report issues in Jira Stack Overflow
questions Slack Community You are using an outdated browser. Please upgrade
your browser to improve your experience. Apache Groovy™ Learn
Documentation Download Support Contribute Ecos [...]
+ "content": "The Apache Groovy programming language - Blogs - Groovy 6
features for Functional Programmers Socialize Discuss on the mailing list
Groovy on X Groovy on Bluesky Groovy on Mastodon Groovy on LinkedIn Events and
conferences Source code on GitHub Report issues in Jira Stack Overflow
questions Slack Community You are using an outdated browser. Please upgrade
your browser to improve your experience. Apache Groovy™ Learn
Documentation Download Support Contribute Ecos [...]
"url": "blog/groovy6-functional.html",
"site": "dev"
},
@@ -940,7 +940,7 @@
{
"id": "wiki/GEP-23.html",
"title": "The Apache Groovy programming language - Developer docs -
GEP-23",
- "content": "The Apache Groovy programming language - Developer docs -
GEP-23 Socialize Discuss on the mailing list Groovy on X Groovy on Bluesky
Groovy on Mastodon Groovy on LinkedIn Events and conferences Source code on
GitHub Report issues in Jira Stack Overflow questions Slack Community You are
using an outdated browser. Please upgrade your browser to improve your
experience. Apache Groovy™ Learn Documentation Download Support
Contribute Ecosystem Blog posts Socialize GE [...]
+ "content": "The Apache Groovy programming language - Developer docs -
GEP-23 Socialize Discuss on the mailing list Groovy on X Groovy on Bluesky
Groovy on Mastodon Groovy on LinkedIn Events and conferences Source code on
GitHub Report issues in Jira Stack Overflow questions Slack Community You are
using an outdated browser. Please upgrade your browser to improve your
experience. Apache Groovy™ Learn Documentation Download Support
Contribute Ecosystem Blog posts Socialize GE [...]
"url": "wiki/GEP-23.html",
"site": "dev"
},
diff --git a/wiki/GEP-23.html b/wiki/GEP-23.html
index 64fa5fa..9f84004 100644
--- a/wiki/GEP-23.html
+++ b/wiki/GEP-23.html
@@ -656,9 +656,24 @@ change the execution model. Collection participation,
where offered, is
sequential.</p>
</li>
<li>
-<p><strong>Generators, <code>for await</code>, channels, actors and
agents</strong> are stream or
-message-passing tools, orthogonal to <code>DO</code>. A composed
<code>Awaitable</code> produced
-by <code>DO</code> may of course be consumed by an outer
<code>async</code>/<code>await</code>.</p>
+<p><strong><code>for await</code></strong> deserves a specific note because of
the naming
+overlap. <code>DO</code> and <code>for await</code> operate at different
layers: <code>DO</code>
+composes <em>one</em> result from a chain of dependent monadic steps and
+produces a single carrier value; <code>for await</code> consumes a
stream-shaped
+source (a <code>Flow.Publisher</code>, an <code>AsyncChannel</code>, a
generator) item by
+item. The two compose cleanly — a <code>DO</code> chain can live inside the
body
+of a <code>for await</code> loop when each pulled item is itself worth
composing
+further, and an <code>Awaitable</code> produced by <code>DO</code> can be one
element of an
+upstream publisher consumed by <code>for await</code> — but neither is a
+substitute for the other. Pick <code>DO</code> when the question is "three
+dependent steps produce one answer"; pick <code>for await</code> when the
+question is "a stream of events to process as they arrive".</p>
+</li>
+<li>
+<p><strong>Generators, channels, actors and agents</strong> are stream or
+message-passing tools, orthogonal to <code>DO</code>. A composed
<code>Awaitable</code>
+produced by <code>DO</code> may of course be consumed by an outer
<code>async</code>/<code>await</code>,
+or yielded into a channel for downstream consumers.</p>
</li>
</ul>
</div>