Either is fine, I just need to make sure the names are acceptable at this point.
I am also open to serious ideas.
> >
> > async.core
> > await
> > co_async / cosync
> > co20 / cor20
> >
> >
> FWIW, of these, cosync seems to me to be the most intuitive.
>
That's good.
I fear other people might interpret it as co_... sync, i.e. something
that co_awaits synchronous things.
Maybe spelled co_sync is worse?
> Given the renaming requirement, I'd like to query the list if there
> are any objections to any of the following names:
>
> async.core
> await
> co_async / cosync
> co20 / cor20
>
While you didn't ask for it, let me offer some thoughts about the naming
rather than a yes/no.
I understand that your library is a *frontend* for asynchronous
computations, rather than a backend. A thing like Boost.ASIO or another
executor would be a backend. Is that a correct characterization? If yes,
"async.core" sends an opposite message: as if it was a backend.
The introductory sentence in GitHub say:
This library provides a set of easy to use coroutine primitives & utilities
running on top of boost.asio. These will be of interest for applications
that perform a lot of IO that want to not block unnecessarily, yet still
want to have linear & readable code (i..e. avoid callbacks).
One could summarize it even shorter as "a set of awaitables and basic
algorithms on them". In this spirit the name "Boost.Awaitables" would
reflect this, "await" (as a verb) a bit less so.
"co_async" does reflect that it will have something to do with C++
coroutines, but doesn't say what. If you wanted to say "the subset of
usages of coroutines that deal with asynchrony", you are losing it. It
looks more like "a better version of boost::asio::co_spawn". "cosync" no
longer associates with C++ coroutines because of the missing underscore. I
read this as "cosine".
"co20" is so strange that it could actually do the trick. It would fit into
the same category as Boost.Spirit, Boost.Phoenix, Boost.Beast: it's just a
cool name, if you want to learn what the library is for go to the
documentation. But you might as well go with Boost.Zen.
Regards,
&rzej;
I would think "awiatable" is like an iterator: an interface between two
parties: one party exposes the interface, the other party consumes the
interface. I like the usage of "await" as it sends the message "out of many
ways for doing asynchrony, we propose one based on awaitiables". Maybe
other grammatical forms of "await" is an option:
Boost.Awaits
Boost.Awaiting
>
> >
> > "co_async" does reflect that it will have something to do with C++
> coroutines, but doesn't say what. If you wanted to say "the subset of
> usages of coroutines that deal with asynchrony", you are losing it. It
> looks more like "a better version of boost::asio::co_spawn". "cosync" no
> longer associates with C++ coroutines because of the missing underscore. I
> read this as "cosine".
>
> And co_sync would have the same issues as co_async?
>
I wonder how we get from "async" to "sync". Does co_sync imply "it is no
longer 'sync' because it is now 'co_'"?
Regards,
&rzej;
About the ones I don't like:
- async.core (i) carries the same problem as the original name and (ii)
makes it more confusing because now there's "core" but no "not-core" as it
is. If X is everything (as it is), then X cannot be the "core" of itself.
- co_async / co_sync (i) include a special character, (ii) still carry
"async", and (iii) the alternatives suggests it could also be "sync". But
if something is "A || !A", then A discriminates nothing in the context and
it probably shouldn't be described in these terms. It has no cognitive
significance.
- co20 (i) is going to look outdated soon and (ii) doesn't represent the
library better than Boost.Co or Boost.Coroutines (if it didn't exist).
About (i), people will be talking about C++26 next year already. The name
means co>=20 but people will instantly have the intuition of co=20 and feel
like we're past that. About (ii), there's no intentionality in "20" in
terms of library design. It's just something that happens to be true.
Em qua., 11 de out. de 2023 às 21:51, Klemens Morgenstern via Boost <
bo...@lists.boost.org> escreveu:
--
Alan Freitas
https://alandefreitas.github.io/alandefreitas/
<https://github.com/alandefreitas>
> Given the renaming requirement, I'd like to query the list if there
> are any objections to any of the following names:
>
> async.core
>
I don't have any strong objections.
await
>
I like this option.
co_async / cosync
>
These names are terrible. You have yet to explain what a synchronous
coroutine is. If there are "asynchronous" coroutines, then there are
synchronous ones too I suppose.
co20 / cor20
>
I don't have any objection to these options.
These last options do remind me of chemistry though. Don't want to name the
library as "carbon" or something? Feel free to ignore this idea.
--
Vinícius dos Santos Oliveira
https://vinipsmaker.github.io/
> I like the idea of some variant of "await" because it's intriguing enough
> to get people to read the docs.
Agreed.
> "await" represents only half the library,
> but the word that represents both halves, like it or not, is "coroutines".
> There are also more than these two coroutine halves in the library because
> of its extensions.
>
This is where I believe the documentation of the library does not do a good
job of explaining to non-experts what are its goals and when it should be
used. If we had that information, the choice of the name would be easier. I
built the following understanding of the library during the course of the
two reviews:
1. It is a triplet: (1) awaitable interface/concept, (2)
coroutine-return-types compatible with the interface that help you build
your coroutines, (3) algorithms on the awaitables. It is similar to the
triplet "containers, iterators, algorithms in STL", where the iterators
were the real invention -- that is the interface.
2. The motto of the library is, "if you are planning to write your
asynchronous app, consider using this library, it will make your life
easier".
3. Out of many possible coroutine-return types, we offer only the ones that
are themselves awaitables: nothing like std::generator.
So the name should be either something that reflects this, or just
something funny, like CIA, or the name of your pet.
Regards,
&rzej;
> Agreed. There's no need to tie the name to something async-y. Several
> Boost libraries have whimsical names and they're great.
>
I missed my chance: Boost.Earl
Thanks
If they're an acronym at the same time you've gone full gnu.
Emil suggested Coral for CORoutine ALgorithms.
I am currently considering going with cobalt, COroutines Basic
ALgorithms & Types.
>
> I missed my chance: Boost.Earl
>
If we're doing nobility, it should be Boost.Count, so it starts with "co".
> Emil suggested Coral for CORoutine ALgorithms.
>
Oh wow... "Boost.Coral" - I love this.
Thanks
>
> From: Boost <boost-...@lists.boost.org> on behalf of Klemens
> Morgenstern via Boost <bo...@lists.boost.org>
> > Emil suggested Coral for CORoutine ALgorithms.
> Boost.Coral is pretty good!
> But let's be honest: it stands for "CORoutines Are Lovely", doesn’t it?:)
>
COmunity-Reviewed Async Library.
&rzej;