Skip to content

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

Merged
mvandeberg merged 1 commit into
cppalliance:developfrom
mvandeberg:pr/350-remove-transfer-algos
Jul 23, 2026
Merged

refactor!: remove push_to/pull_from and the source/sink concept family#368
mvandeberg merged 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.

@cppalliance-bot

cppalliance-bot commented Jul 22, 2026

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-23 16:12:00 UTC

@cppalliance-bot

cppalliance-bot commented Jul 22, 2026

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-23 16:27:02 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.07%. Comparing base (727f491) to head (1c107c7).
⚠️ Report is 2 commits behind head on develop.

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           develop     #368      +/-   ##
===========================================
- Coverage    98.33%   98.07%   -0.27%     
===========================================
  Files          152      132      -20     
  Lines         8288     6230    -2058     
===========================================
- Hits          8150     6110    -2040     
+ Misses         138      120      -18     
Flag Coverage Δ
linux 98.06% <ø> (-0.26%) ⬇️

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 727f491...1c107c7. Read the comment docs.

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

@mvandeberg
mvandeberg force-pushed the pr/350-remove-transfer-algos branch 2 times, most recently from d1f92f8 to af619fc Compare July 23, 2026 15:59
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, 1 example (stream-pipeline); cuda/pipeline retained,
  rewritten to the any_*_stream wrappers
- 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.
@mvandeberg
mvandeberg force-pushed the pr/350-remove-transfer-algos branch from af619fc to 1c107c7 Compare July 23, 2026 16:08
@mvandeberg
mvandeberg merged commit 70af0fb into cppalliance:develop Jul 23, 2026
36 of 37 checks passed
@github-project-automation github-project-automation Bot moved this from Backlog to Done in Beast2 Jul 23, 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.

Error provenance — identify which stream an error originated from

2 participants