Skip to content

refactor!: remove push_to/pull_from and the source/sink concept family#368

Open
mvandeberg wants to merge 1 commit into
cppalliance:developfrom
mvandeberg:pr/350-remove-transfer-algos
Open

refactor!: remove push_to/pull_from and the source/sink concept family#368
mvandeberg wants to merge 1 commit into
cppalliance:developfrom
mvandeberg:pr/350-remove-transfer-algos

Conversation

@mvandeberg

Copy link
Copy Markdown
Contributor

The transfer algorithms push_to/pull_from and the source/sink concept family they rest on (ReadSource, BufferSource, BufferSink, WriteSink and the any_read_source/any_buffer_source/any_buffer_sink/any_write_sink wrappers) were consumed only by downstream libraries (http, beast2, burl) -- no capy algorithm uses them.

Removed from capy:

  • concepts: read_source, buffer_source, buffer_sink, write_sink
  • io: push_to, pull_from, any_read_source, any_buffer_source, any_buffer_sink, any_write_sink
  • test mocks: buffer_source, buffer_sink, read_source, write_sink
  • 14 unit tests, 2 examples (stream-pipeline, cuda/pipeline)
  • 11 Antora pages; nav, feature lists, and stream tutorials updated

The stream concepts (ReadStream/WriteStream/Stream) and the any_*_stream wrappers stay -- they back capy's read/write algorithms and corosio's TLS.

Four design essays (9c/9f/9i/9m) still reference the moved concepts in narrative and are left for an authorial pass.

Resolves #350 by removal rather than by an API change.

The transfer algorithms push_to/pull_from and the source/sink concept
family they rest on (ReadSource, BufferSource, BufferSink, WriteSink and the
any_read_source/any_buffer_source/any_buffer_sink/any_write_sink wrappers)
were consumed only by downstream libraries (http, beast2, burl) -- no capy
algorithm uses them.

Removed from capy:
- concepts: read_source, buffer_source, buffer_sink, write_sink
- io: push_to, pull_from, any_read_source, any_buffer_source,
  any_buffer_sink, any_write_sink
- test mocks: buffer_source, buffer_sink, read_source, write_sink
- 14 unit tests, 2 examples (stream-pipeline, cuda/pipeline)
- 11 Antora pages; nav, feature lists, and stream tutorials updated

The stream concepts (ReadStream/WriteStream/Stream) and the any_*_stream
wrappers stay -- they back capy's read/write algorithms and corosio's TLS.

Four design essays (9c/9f/9i/9m) still reference the moved concepts in
narrative and are left for an authorial pass.

Resolves cppalliance#350 by removal rather than by an API change.
@cppalliance-bot

Copy link
Copy Markdown

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

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

2026-07-22 18:47:01 UTC

@cppalliance-bot

Copy link
Copy Markdown

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

Build time: 2026-07-22 19:02:26 UTC

@codecov

codecov Bot commented Jul 22, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.06%. Comparing base (61945d4) to head (3b39aa2).

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           develop     #368      +/-   ##
===========================================
- Coverage    98.32%   98.06%   -0.27%     
===========================================
  Files          152      132      -20     
  Lines         8260     6202    -2058     
===========================================
- Hits          8122     6082    -2040     
+ Misses         138      120      -18     
Flag Coverage Δ
linux 98.05% <ø> (-0.27%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
include/boost/capy/ex/immediate.hpp 100.00% <ø> (ø)

... and 10 files 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 61945d4...3b39aa2. Read the comment docs.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

Error provenance — identify which stream an error originated from

2 participants