Boost logo

Boost :

From: Andrzej Krzemienski (akrzemi1_at_[hidden])
Date: 2023-10-13 07:00:23


czw., 12 paź 2023 o 21:20 Alan de Freitas via Boost <boost_at_[hidden]>
napisał(a):

> 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;

I'm also OK with some fun names like "CIA" because it implicitly represents
> there can be more things included in the library.
>
> 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 <
> boost_at_[hidden]> escreveu:
>
> > 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
> >
> > Thanks,
> >
> > Klemens
> >
> > _______________________________________________
> > Unsubscribe & other changes:
> > http://lists.boost.org/mailman/listinfo.cgi/boost
> >
>
>
> --
> Alan Freitas
> https://alandefreitas.github.io/alandefreitas/
> <https://github.com/alandefreitas>
>
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost
>


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk