Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[exec] Index many library names. #7178

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
202 changes: 101 additions & 101 deletions source/exec.tex
Original file line number Diff line number Diff line change
Expand Up @@ -434,13 +434,13 @@
concept @\exposconceptnc{queryable}@ = @\seebelownc@; // \expos

// \ref{exec.queries}, queries
struct forwarding_query_t { @\unspec@ };
struct get_allocator_t { @\unspec@ };
struct get_stop_token_t { @\unspec@ };
struct @\libglobal{forwarding_query_t}@ { @\unspec@ };
struct @\libglobal{get_allocator_t}@ { @\unspec@ };
struct @\libglobal{get_stop_token_t}@ { @\unspec@ };

inline constexpr forwarding_query_t forwarding_query{};
inline constexpr get_allocator_t get_allocator{};
inline constexpr get_stop_token_t get_stop_token{};
inline constexpr forwarding_query_t @\libglobal{forwarding_query}@{};
inline constexpr get_allocator_t @\libglobal{get_allocator}@{};
inline constexpr get_stop_token_t @\libglobal{get_stop_token}@{};

template<class T>
using stop_token_of_t = remove_cvref_t<decltype(get_stop_token(declval<T>()))>;
Expand All @@ -451,65 +451,65 @@

namespace std::execution {
// \ref{exec.queries}, queries
struct get_domain_t { @\unspec@ };
struct get_scheduler_t { @\unspec@ };
struct get_delegation_scheduler_t { @\unspec@ };
struct get_forward_progress_guarantee_t { @\unspec@ };
struct @\libglobal{get_domain_t}@ { @\unspec@ };
struct @\libglobal{get_scheduler_t}@ { @\unspec@ };
struct @\libglobal{get_delegation_scheduler_t}@ { @\unspec@ };
struct @\libglobal{get_forward_progress_guarantee_t}@ { @\unspec@ };
template<class CPO>
struct get_completion_scheduler_t { @\unspec@ };
struct @\libglobal{get_completion_scheduler_t}@ { @\unspec@ };

inline constexpr get_domain_t get_domain{};
inline constexpr get_scheduler_t get_scheduler{};
inline constexpr get_delegation_scheduler_t get_delegation_scheduler{};
inline constexpr get_domain_t @\libglobal{get_domain}@{};
inline constexpr get_scheduler_t @\libglobal{get_scheduler}@{};
inline constexpr get_delegation_scheduler_t @\libglobal{get_delegation_scheduler}@{};
enum class forward_progress_guarantee;
inline constexpr get_forward_progress_guarantee_t get_forward_progress_guarantee{};
inline constexpr get_forward_progress_guarantee_t @\libglobal{get_forward_progress_guarantee}@{};
template<class CPO>
inline constexpr get_completion_scheduler_t<CPO> get_completion_scheduler{};
inline constexpr get_completion_scheduler_t<CPO> @\libglobal{get_completion_scheduler}@{};

struct empty_env {};
struct get_env_t { @\unspec@ };
inline constexpr get_env_t get_env{};
struct @\libglobal{empty_env}@ {};
struct @\libglobal{get_env_t}@ { @\unspec@ };
inline constexpr get_env_t @\libglobal{get_env}@{};

template<class T>
using env_of_t = decltype(get_env(declval<T>()));
using @\libglobal{env_of_t}@ = decltype(get_env(declval<T>()));

// \ref{exec.domain.default}, execution domains
struct default_domain;

// \ref{exec.sched}, schedulers
struct scheduler_t {};
struct @\libglobal{scheduler_t}@ {};

template<class Sch>
concept @\libconcept{scheduler}@ = @\seebelow@;

// \ref{exec.recv}, receivers
struct receiver_t {};
struct @\libglobal{receiver_t}@ {};

template<class Rcvr>
concept @\libconcept{receiver}@ = @\seebelow@;

template<class Rcvr, class Completions>
concept @\libconcept{receiver_of}@ = @\seebelow@;

struct set_value_t { @\unspec@ };
struct set_error_t { @\unspec@ };
struct set_stopped_t { @\unspec@ };
struct @\libglobal{set_value_t}@ { @\unspec@ };
struct @\libglobal{set_error_t}@ { @\unspec@ };
struct @\libglobal{set_stopped_t}@ { @\unspec@ };

inline constexpr set_value_t set_value{};
inline constexpr set_error_t set_error{};
inline constexpr set_stopped_t set_stopped{};
inline constexpr set_value_t @\libglobal{set_value}@{};
inline constexpr set_error_t @\libglobal{set_error}@{};
inline constexpr set_stopped_t @\libglobal{set_stopped}@{};

// \ref{exec.opstate}, operation states
struct operation_state_t {};
struct @\libglobal{operation_state_t}@ {};

template<class O>
concept @\libconcept{operation_state}@ = @\seebelow@;

struct start_t;
inline constexpr start_t start{};
struct @\libglobal{start_t}@;
inline constexpr start_t @\libglobal{start}@{};

// \ref{exec.snd}, senders
struct sender_t {};
struct @\libglobal{sender_t}@ {};

template<class Sndr>
concept @\libconcept{sender}@ = @\seebelow@;
Expand Down Expand Up @@ -578,75 +578,75 @@
Domain dom, Tag, Sndr&& sndr, Args&&... args) noexcept(@\seebelow@);

// \ref{exec.connect}, the connect sender algorithm
struct connect_t;
inline constexpr connect_t connect{};
struct @\libglobal{connect_t}@;
inline constexpr connect_t @\libglobal{connect}@{};

template<class Sndr, class Rcvr>
using connect_result_t =
using @\libglobal{connect_result_t}@ =
decltype(connect(declval<Sndr>(), declval<Rcvr>()));

// \ref{exec.factories}, sender factories
struct just_t { @\unspec@ };
struct just_error_t { @\unspec@ };
struct just_stopped_t { @\unspec@ };
struct schedule_t { @\unspec@ };
struct @\libglobal{just_t}@ { @\unspec@ };
struct @\libglobal{just_error_t}@ { @\unspec@ };
struct @\libglobal{just_stopped_t}@ { @\unspec@ };
struct @\libglobal{schedule_t}@ { @\unspec@ };

inline constexpr just_t just{};
inline constexpr just_error_t just_error{};
inline constexpr just_stopped_t just_stopped{};
inline constexpr schedule_t schedule{};
inline constexpr @\unspec@ read_env{};
inline constexpr just_t @\libglobal{just}@{};
inline constexpr just_error_t @\libglobal{just_error}@{};
inline constexpr just_stopped_t @\libglobal{just_stopped}@{};
inline constexpr schedule_t @\libglobal{schedule}@{};
inline constexpr @\unspec@ @\libglobal{read_env}@{};

template<@\libconcept{scheduler}@ Sndr>
using schedule_result_t = decltype(schedule(declval<Sndr>()));
using @\libglobal{schedule_result_t}@ = decltype(schedule(declval<Sndr>()));

// \ref{exec.adapt}, sender adaptors
template<@\exposconcept{class-type}@ D>
struct sender_adaptor_closure { };

struct starts_on_t { @\unspec@ };
struct continues_on_t { @\unspec@ };
struct on_t { @\unspec@ };
struct schedule_from_t { @\unspec@ };
struct then_t { @\unspec@ };
struct upon_error_t { @\unspec@ };
struct upon_stopped_t { @\unspec@ };
struct let_value_t { @\unspec@ };
struct let_error_t { @\unspec@ };
struct let_stopped_t { @\unspec@ };
struct bulk_t { @\unspec@ };
struct split_t { @\unspec@ };
struct when_all_t { @\unspec@ };
struct when_all_with_variant_t { @\unspec@ };
struct into_variant_t { @\unspec@ };
struct stopped_as_optional_t { @\unspec@ };
struct stopped_as_error_t { @\unspec@ };

inline constexpr starts_on_t starts_on{};
inline constexpr continues_on_t continues_on{};
inline constexpr on_t on{};
inline constexpr schedule_from_t schedule_from{};
inline constexpr then_t then{};
inline constexpr upon_error_t upon_error{};
inline constexpr upon_stopped_t upon_stopped{};
inline constexpr let_value_t let_value{};
inline constexpr let_error_t let_error{};
inline constexpr let_stopped_t let_stopped{};
inline constexpr bulk_t bulk{};
inline constexpr split_t split{};
inline constexpr when_all_t when_all{};
inline constexpr when_all_with_variant_t when_all_with_variant{};
inline constexpr into_variant_t into_variant{};
inline constexpr stopped_as_optional_t stopped_as_optional{};
inline constexpr stopped_as_error_t stopped_as_error{};
struct @\libglobal{sender_adaptor_closure}@ { };

struct @\libglobal{starts_on_t}@ { @\unspec@ };
struct @\libglobal{continues_on_t}@ { @\unspec@ };
struct @\libglobal{on_t}@ { @\unspec@ };
struct @\libglobal{schedule_from_t}@ { @\unspec@ };
struct @\libglobal{then_t}@ { @\unspec@ };
struct @\libglobal{upon_error_t}@ { @\unspec@ };
struct @\libglobal{upon_stopped_t}@ { @\unspec@ };
struct @\libglobal{let_value_t}@ { @\unspec@ };
struct @\libglobal{let_error_t}@ { @\unspec@ };
struct @\libglobal{let_stopped_t}@ { @\unspec@ };
struct @\libglobal{bulk_t}@ { @\unspec@ };
struct @\libglobal{split_t}@ { @\unspec@ };
struct @\libglobal{when_all_t}@ { @\unspec@ };
struct @\libglobal{when_all_with_variant_t}@ { @\unspec@ };
struct @\libglobal{into_variant_t}@ { @\unspec@ };
struct @\libglobal{stopped_as_optional_t}@ { @\unspec@ };
struct @\libglobal{stopped_as_error_t}@ { @\unspec@ };

inline constexpr starts_on_t @\libglobal{starts_on}@{};
inline constexpr continues_on_t @\libglobal{continues_on}@{};
inline constexpr on_t @\libglobal{on}@{};
inline constexpr schedule_from_t @\libglobal{schedule_from}@{};
inline constexpr then_t @\libglobal{then}@{};
inline constexpr upon_error_t @\libglobal{upon_error}@{};
inline constexpr upon_stopped_t @\libglobal{upon_stopped}@{};
inline constexpr let_value_t @\libglobal{let_value}@{};
inline constexpr let_error_t @\libglobal{let_error}@{};
inline constexpr let_stopped_t @\libglobal{let_stopped}@{};
inline constexpr bulk_t @\libglobal{bulk}@{};
inline constexpr split_t @\libglobal{split}@{};
inline constexpr when_all_t @\libglobal{when_all}@{};
inline constexpr when_all_with_variant_t @\libglobal{when_all_with_variant}@{};
inline constexpr into_variant_t @\libglobal{into_variant}@{};
inline constexpr stopped_as_optional_t @\libglobal{stopped_as_optional}@{};
inline constexpr stopped_as_error_t @\libglobal{stopped_as_error}@{};

// \ref{exec.util}, sender and receiver utilities
// \ref{exec.util.cmplsig}
template<class Fn>
concept @\exposconceptnc{completion-signature}@ = @\seebelownc@; // \expos

template<@\exposconcept{completion-signature}@... Fns>
struct completion_signatures {};
struct @\libglobal{completion_signatures}@ {};

template<class Sigs>
concept @\exposconceptnc{valid-completion-signatures}@ = @\seebelownc@; // \expos
Expand Down Expand Up @@ -679,17 +679,17 @@

namespace std::this_thread {
// \ref{exec.consumers}, consumers
struct sync_wait_t { @\unspec@ };
struct sync_wait_with_variant_t { @\unspec@ };
struct @\libglobal{sync_wait_t}@ { @\unspec@ };
struct @\libglobal{sync_wait_with_variant_t}@ { @\unspec@ };

inline constexpr sync_wait_t sync_wait{};
inline constexpr sync_wait_with_variant_t sync_wait_with_variant{};
inline constexpr sync_wait_t @\libglobal{sync_wait}@{};
inline constexpr sync_wait_with_variant_t @\libglobal{sync_wait_with_variant}@{};
}

namespace std::execution {
// \ref{exec.as.awaitable}
struct as_awaitable_t { @\unspec@ };
inline constexpr as_awaitable_t as_awaitable{};
struct @\libglobal{as_awaitable_t}@ { @\unspec@ };
inline constexpr as_awaitable_t @\libglobal{as_awaitable}@{};

// \ref{exec.with.awaitable.senders}
template<@\exposconcept{class-type}@ Promise>
Expand Down Expand Up @@ -908,7 +908,7 @@

\begin{codeblock}
namespace std::execution {
enum class forward_progress_guarantee {
enum class @\libglobal{forward_progress_guarantee}@ {
concurrent,
parallel,
weakly_parallel
Expand Down Expand Up @@ -2150,7 +2150,7 @@
\pnum
\begin{codeblock}
namespace std::execution {
struct default_domain {
struct @\libglobal{default_domain}@ {
template<@\libconcept{sender}@ Sndr, @\exposconcept{queryable}@... Env>
requires (sizeof...(Env) <= 1)
static constexpr @\libconcept{sender}@ decltype(auto) transform_sender(Sndr&& sndr, const Env&... env)
Expand All @@ -2169,7 +2169,7 @@
\begin{itemdecl}
template<@\libconcept{sender}@ Sndr, @\exposconcept{queryable}@... Env>
requires (sizeof...(Env) <= 1)
constexpr @\libconcept{sender}@ decltype(auto) transform_sender(Sndr&& sndr, const Env&... env)
constexpr @\libconcept{sender}@ decltype(auto) @\libmember{transform_sender}{default_domain}@(Sndr&& sndr, const Env&... env)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For \itemdecls, we traditionally add \indexlibrarymember or \indexlibraryglobal before the \itemdecl, instead of adding inline indexing. In particular, since \libmember makes it even harder to see what the actual (visible) text will be.

I'd merge the changes to [execution.syn] right away, though, if you want to make a separate pull request for those.

noexcept(@\seebelow@);
\end{itemdecl}

Expand All @@ -2192,7 +2192,7 @@

\begin{itemdecl}
template<@\libconcept{sender}@ Sndr, @\exposconcept{queryable}@ Env>
constexpr @\exposconcept{queryable}@ decltype(auto) transform_env(Sndr&& sndr, Env&& env) noexcept;
constexpr @\exposconcept{queryable}@ decltype(auto) @\libmember{transform_env}{default_domain}@(Sndr&& sndr, Env&& env) noexcept;
\end{itemdecl}

\begin{itemdescr}
Expand All @@ -2215,7 +2215,7 @@

\begin{itemdecl}
template<class Tag, @\libconcept{sender}@ Sndr, class... Args>
constexpr decltype(auto) apply_sender(Tag, Sndr&& sndr, Args&&... args)
constexpr decltype(auto) @\libmember{apply_sender}{default_domain}@(Tag, Sndr&& sndr, Args&&... args)
noexcept(@\seebelow@);
\end{itemdecl}

Expand Down Expand Up @@ -2245,7 +2245,7 @@
namespace std::execution {
template<class Domain, @\libconcept{sender}@ Sndr, @\exposconcept{queryable}@... Env>
requires (sizeof...(Env) <= 1)
constexpr @\libconcept{sender}@ decltype(auto) transform_sender(Domain dom, Sndr&& sndr, const Env&... env)
constexpr @\libconcept{sender}@ decltype(auto) @\libglobal{transform_sender}@(Domain dom, Sndr&& sndr, const Env&... env)
noexcept(@\seebelow@);
}
\end{itemdecl}
Expand Down Expand Up @@ -2281,7 +2281,7 @@
\begin{itemdecl}
namespace std::execution {
template<class Domain, @\libconcept{sender}@ Sndr, @\exposconcept{queryable}@ Env>
constexpr @\exposconcept{queryable}@ decltype(auto) transform_env(Domain dom, Sndr&& sndr, Env&& env) noexcept;
constexpr @\exposconcept{queryable}@ decltype(auto) @\libglobal{transform_env}@(Domain dom, Sndr&& sndr, Env&& env) noexcept;
}
\end{itemdecl}

Expand Down Expand Up @@ -2310,7 +2310,7 @@
\begin{itemdecl}
namespace std::execution {
template<class Domain, class Tag, @\libconcept{sender}@ Sndr, class... Args>
constexpr decltype(auto) apply_sender(Domain dom, Tag, Sndr&& sndr, Args&&... args)
constexpr decltype(auto) @\libglobal{apply_sender}@(Domain dom, Tag, Sndr&& sndr, Args&&... args)
noexcept(see below);
}
\end{itemdecl}
Expand Down Expand Up @@ -4971,7 +4971,7 @@

\begin{codeblock}
namespace std::execution {
class run_loop {
class @\libglobal{run_loop}@ {
// \ref{exec.run.loop.types}, associated types
class @\exposid{run-loop-scheduler}@; // \expos
class @\exposid{run-loop-sender}@; // \expos
Expand Down Expand Up @@ -5401,7 +5401,7 @@
\begin{codeblock}
namespace std::execution {
template<@\exposconcept{class-type}@ Promise>
struct with_awaitable_senders {
struct @\libglobal{with_awaitable_senders}@ {
template<class OtherPromise>
requires (!@\libconcept{same_as}@<OtherPromise, void>)
void set_continuation(coroutine_handle<OtherPromise> h) noexcept;
Expand Down Expand Up @@ -5430,7 +5430,7 @@
\begin{itemdecl}
template<class OtherPromise>
requires (!@\libconcept{same_as}@<OtherPromise, void>)
void set_continuation(coroutine_handle<OtherPromise> h) noexcept;
void @\libmember{set_continuation}{with_awaitable_senders}@(coroutine_handle<OtherPromise> h) noexcept;
\end{itemdecl}

\begin{itemdescr}
Expand All @@ -5452,7 +5452,7 @@

\begin{itemdecl}
template<class Value>
@\exposid{call-result-t}@<as_awaitable_t, Value, Promise&> await_transform(Value&& value);
@\exposid{call-result-t}@<as_awaitable_t, Value, Promise&> @\libmember{await_transform}{with_awaitable_senders}@(Value&& value);
\end{itemdecl}

\begin{itemdescr}
Expand Down
Loading