Skip to content
Merged
Show file tree
Hide file tree
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
9 changes: 5 additions & 4 deletions docs/Doxyfile.in
Original file line number Diff line number Diff line change
Expand Up @@ -518,7 +518,7 @@ TIMESTAMP = NO
# normally produced when WARNINGS is set to YES.
# The default value is: NO.

EXTRACT_ALL = NO
EXTRACT_ALL = YES

# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
# be included in the documentation.
Expand All @@ -542,7 +542,7 @@ EXTRACT_PACKAGE = NO
# included in the documentation.
# The default value is: NO.

EXTRACT_STATIC = NO
EXTRACT_STATIC = YES

# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
# locally in source files will be included in the documentation. If set to NO,
Expand Down Expand Up @@ -1063,15 +1063,16 @@ EXCLUDE_SYMLINKS = NO
# Note that the wildcards are matched against the file with absolute path, so to
# exclude all test directories for example use the pattern */test/*

EXCLUDE_PATTERNS = *__*
EXCLUDE_PATTERNS =

# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
# (namespaces, classes, functions, etc.) that should be excluded from the
# output. The symbol name can be a fully qualified name, a word, or if the
# wildcard * is used, a substring. Examples: ANamespace, AClass,
# ANamespace::AClass, ANamespace::*Test

EXCLUDE_SYMBOLS = *__*
EXCLUDE_SYMBOLS = *__* \
_*

# The EXAMPLE_PATH tag can be used to specify one or more files or directories
# that contain example code fragments that are included (see the \include
Expand Down
2 changes: 1 addition & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information

project = 'stdexec'
copyright = '2023, NVIDIA Corporation'
copyright = '2025, NVIDIA Corporation'
author = 'NVIDIA Corporation'
release = 'dev'

Expand Down
32 changes: 32 additions & 0 deletions docs/source/developer/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
.. =============================================================================
.. Copyright 2025 NVIDIA Corporation
..
.. Licensed under the Apache License, Version 2.0 (the "License");
.. you may not use this file except in compliance with the License.
.. You may obtain a copy of the License at
..
.. http://www.apache.org/licenses/LICENSE-2.0
..
.. Unless required by applicable law or agreed to in writing, software
.. distributed under the License is distributed on an "AS IS" BASIS,
.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
.. See the License for the specific language governing permissions and
.. limitations under the License.
.. =============================================================================

Developer's Guide
=================

This section will eventually contain a guide for those interested in developing their own
asynchronous, sender-based algorithms and execution contexts.

Essential concepts
------------------

* Receivers
* Custom Algorithms
* Custom Schedulers
* Customizing ``stdexec``'s algorithms
* Domains
* Early algorithm customization
* Late algorithm customization
9 changes: 6 additions & 3 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,12 @@
Welcome to ``stdexec``
======================

``stdexec`` is the reference implementation for P2300, the ``std::execution`` proposal to the C++ standard library.
``stdexec`` is the reference implementation for `P2300 <https://wg21.link/P2300>`_, the
``std::execution`` proposal to the C++ standard library which will bring to C++26 a standard
async programming model.

It provides:

* TODO

.. toctree::
Expand All @@ -28,9 +31,9 @@ It provides:

reference/index

.. user/index
.. developer/index
user/index

developer/index

.. .. toctree: :
.. :maxdepth: 1
Expand Down
6 changes: 1 addition & 5 deletions docs/source/reference/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Concepts
Sender Factories
----------------

.. doxygenvariable:: stdexec::__write
.. doxygenvariable:: stdexec::read_env

Sender Adaptors
---------------
Expand All @@ -37,7 +37,3 @@ Sender Consumers
Utilities
---------

.. doxygenfunction:: stdexec::__write
:project: stdexec
:outline:

35 changes: 35 additions & 0 deletions docs/source/user/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
.. =============================================================================
.. Copyright 2025 NVIDIA Corporation
..
.. Licensed under the Apache License, Version 2.0 (the "License");
.. you may not use this file except in compliance with the License.
.. You may obtain a copy of the License at
..
.. http://www.apache.org/licenses/LICENSE-2.0
..
.. Unless required by applicable law or agreed to in writing, software
.. distributed under the License is distributed on an "AS IS" BASIS,
.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
.. See the License for the specific language governing permissions and
.. limitations under the License.
.. =============================================================================

User's Guide
============

This section will eventually contain a user's guide for ``stdexec`` that describes what the library
is, the high-level concepts on which it is based, and how to use it.

TODO


Essential concepts
------------------

* Execution Contexts
* Senders
* Schedulers
* Sender Algorithms
* Sender Factories
* Sender Adaptors
* Sender Consumers
4 changes: 2 additions & 2 deletions include/exec/finally.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -285,9 +285,9 @@ namespace exec {

struct finally_t {
template <sender _Initial, sender _Final>
requires __domain::__has_common_domain<_Initial, _Final>
requires __has_common_domain<_Initial, _Final>
auto operator()(_Initial&& __initial, _Final&& __final) const {
using _Domain = __domain::__common_domain_t<_Initial, _Final>;
using _Domain = __common_domain_t<_Initial, _Final>;
return stdexec::transform_sender(
_Domain(),
__make_sexpr<finally_t>(
Expand Down
4 changes: 2 additions & 2 deletions include/exec/sequence.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ namespace exec {
STDEXEC_ATTRIBUTE((nodiscard, host, device)) auto operator()(Sndr sndr) const -> Sndr;

template <class... Sndrs>
requires(sizeof...(Sndrs) > 1) && stdexec::__domain::__has_common_domain<Sndrs...>
requires(sizeof...(Sndrs) > 1) && stdexec::__has_common_domain<Sndrs...>
STDEXEC_ATTRIBUTE((nodiscard, host, device)) auto operator()(Sndrs... sndrs) const -> _sndr<Sndrs...>;
};

Expand Down Expand Up @@ -198,7 +198,7 @@ namespace exec {
}

template <class... Sndrs>
requires(sizeof...(Sndrs) > 1) && stdexec::__domain::__has_common_domain<Sndrs...>
requires(sizeof...(Sndrs) > 1) && stdexec::__has_common_domain<Sndrs...>
STDEXEC_ATTRIBUTE((host, device)) auto sequence_t::operator()(Sndrs... sndrs) const -> _sndr<Sndrs...> {
return _sndr<Sndrs...>{{}, {}, {static_cast<Sndrs&&>(sndrs)...}};
}
Expand Down
14 changes: 0 additions & 14 deletions include/stdexec/__detail/__bulk.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -88,20 +88,6 @@ namespace stdexec {
{}
};
}

// This describes how to use the pieces of a bulk sender to find
// legacy customizations of the bulk algorithm.
using _Sender = __1;
using _Shape = __nth_member<0>(__0);
using _Fun = __nth_member<1>(__0);
using __legacy_customizations_t = __types<
tag_invoke_t(
bulk_t,
get_completion_scheduler_t<set_value_t>(get_env_t(_Sender&)),
_Sender,
_Shape,
_Fun),
tag_invoke_t(bulk_t, _Sender, _Shape, _Fun)>;
};

struct __bulk_impl : __sexpr_defaults {
Expand Down
13 changes: 0 additions & 13 deletions include/stdexec/__detail/__continues_on.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
#include "__sender_introspection.hpp"
#include "__sender_adaptor_closure.hpp"
#include "__senders_core.hpp"
#include "__tag_invoke.hpp"
#include "__transform_sender.hpp"

namespace stdexec {
Expand Down Expand Up @@ -57,18 +56,6 @@ namespace stdexec {
return {{static_cast<_Scheduler&&>(__sched)}, {}, {}};
}

//////////////////////////////////////////////////////////////////////////////////////////////
using _Sched = __0;
using _Sender = __1;
using __legacy_customizations_t = //
__types<
tag_invoke_t(
continues_on_t,
get_completion_scheduler_t<set_value_t>(get_env_t(const _Sender&)),
_Sender,
_Sched),
tag_invoke_t(continues_on_t, _Sender, _Sched)>;

static auto __transform_sender_fn() {
return [&]<class _Data, class _Child>(__ignore, _Data&& __data, _Child&& __child) {
return schedule_from(static_cast<_Data&&>(__data), static_cast<_Child&&>(__child));
Expand Down
Loading
Loading