Skip to content

docs: add a reference overview that groups the API by purpose - #484

Merged
sgerbino merged 7 commits into
cppalliance:developfrom
TheLingeringWill:pr/grouped-api-reference
Nov 11, 2026
Merged

sgerbino merged 7 commits into
cppalliance:developfrom
TheLingeringWill:pr/grouped-api-reference

Conversation

@TheLingeringWill

@TheLingeringWill TheLingeringWill commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

Closes #408. Part of #416.

The generated MrDocs index lists the API by entity kind only. This adds a hand-written Reference page that groups it by purpose, using only what MrDocs already produces: its tagfile and the cpp: macro. The generated index is unchanged.

Changes

  • doc/modules/ROOT/pages/reference-overview.adoc (new): twelve sections:

    • Tasks and Promise Types
    • Results and Errors
    • Starting and Composing Tasks
    • Executors and Execution Contexts
    • Coroutine Environment
    • The Awaitable Protocol
    • Synchronization
    • Frame Allocators
    • Chain Ownership and Abandonment
    • Buffers
    • Streams
    • Testing

    Each section has a short intro that links the manual pages teaching it, and a Kind | Names table. The tables list every symbol on the generated boost::capy, test and this_coro index pages once (93 names), except namespaces and operators, as cpp: links.

  • nav.adoc: "Reference" now opens the overview, with one child per section and an "Index by Kind" child for the generated index.

  • glossary.adoc: the See Also section links both pages.

  • A.specification-methods/A.intro.adoc: its Reference link now points at the overview.

  • 7.testing/7e.buffer-inspection.adoc: its link to the generated index now uses the index's new name, "Index by Kind".

  • STYLE_GUIDE.md E3: records the page, and that an API change must update it in the same pull request.

The generated index lists symbols by entity kind only. The new
Reference page groups every public symbol into twelve sections, each
linking its names through cpp: and the manual pages that teach them.
The nav entry now opens this page, with one child per section and an
"Index by Kind" child for the generated index.

Refs cppalliance#408.
The glossary See Also lists both the grouped overview and the
generated index. STYLE_GUIDE E3 records that the overview must list
every indexed symbol once and be updated with API changes.

Refs cppalliance#408.
Say when strands abandon coroutines, that read and write stop on an
error, which frame allocator run_async uses by default, and that the
generated index also lists namespaces and operators. E3 now says each
symbol is listed once in a table, since intros mention some again.

Refs cppalliance#408.
Capy's primitives resume their waiters with a canceled error when
destroyed; only execution contexts and strands abandon them. Also say
what safe_resume restores, that it resumes a continuation's handle,
and that this_coro::environment reads all three values.

Refs cppalliance#408.
@cppalliance-bot

cppalliance-bot commented Nov 10, 2026 •

Copy link
Copy Markdown

An automated preview of the documentation is available at https://484.capy.prtest3.cppalliance.org/index.html

If more commits are pushed to the pull request, the docs will rebuild at the same URL.

2026-11-10 22:35:27 UTC

@cppalliance-bot

cppalliance-bot commented Nov 10, 2026 •

Copy link
Copy Markdown

GCOVR code coverage report https://484.capy.prtest3.cppalliance.org/gcovr/index.html
LCOV code coverage report https://484.capy.prtest3.cppalliance.org/genhtml/index.html
Coverage Diff Report https://484.capy.prtest3.cppalliance.org/diff-report/index.html

Build time: 2026-11-10 22:45:38 UTC

@codecov

codecov Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.46%. Comparing base (811054a) to head (fc798fe).

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           develop     #484      +/-   ##
===========================================
+ Coverage    98.45%   98.46%   +0.01%     
===========================================
  Files          135      135              
  Lines         7250     7250              
===========================================
+ Hits          7138     7139       +1     
+ Misses         112      111       -1     
Flag Coverage Δ
linux 98.46% <ø> (+0.02%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.
see 1 file with indirect coverage changes


Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 811054a...fc798fe. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

The Methods of API Description intro now links the reference overview,
and the buffer-inspection page names the generated index by its new
nav label.

The overview's chain ownership section now says that when_all,
when_any, run and test::run_blocking abandon their caller when a
coroutine they started is abandoned.
…overview

await_context also carries the segment owner, which this_coro reads only
through environment. test::run_blocking does not abandon its caller; it
throws error::canceled, so drop it from the upward-abandonment list.
@TheLingeringWill
TheLingeringWill marked this pull request as ready for review November 10, 2026 23:07
@sgerbino
sgerbino merged commit d62f5de into cppalliance:develop Nov 11, 2026
41 checks passed
@github-project-automation github-project-automation Bot moved this from Backlog to Done in Beast2 Nov 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

docs: add a functionally grouped entry point into the reference

3 participants