Skip to content

unify read_to_end and io::copy impls for reading into a Vec #118222

New issue

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

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

Already on GitHub? # to your account

Merged
merged 1 commit into from
Nov 29, 2023

Conversation

the8472
Copy link
Member

@the8472 the8472 commented Nov 24, 2023

This ports over the initial probe (to avoid allocation) and the dynamic read sizing from the io::copy specialization to the default_read_to_end implementation which already had its own optimizations for different cases.

I think it should be a best-of-both now.

suggested by @a1phyr in #117576 (comment)

@rustbot
Copy link
Collaborator

rustbot commented Nov 24, 2023

r? @m-ou-se

(rustbot has picked a reviewer for you, use r? to override)

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Nov 24, 2023
@rust-log-analyzer

This comment has been minimized.

@m-ou-se
Copy link
Member

m-ou-se commented Nov 28, 2023

@bors r+

@bors
Copy link
Collaborator

bors commented Nov 28, 2023

📌 Commit bc7dd5f has been approved by m-ou-se

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Nov 28, 2023
bors added a commit to rust-lang-ci/rust that referenced this pull request Nov 28, 2023
…iaskrgr

Rollup of 6 pull requests

Successful merges:

 - rust-lang#118193 (Add missing period in `std::process::Command` docs)
 - rust-lang#118222 (unify read_to_end and io::copy impls for reading into a Vec)
 - rust-lang#118323 (give dev-friendly error message for incorrect config profiles)
 - rust-lang#118378 (Perform LTO optimisations with wasm-ld + -Clinker-plugin-lto)
 - rust-lang#118399 (Clean dead codes in miri)
 - rust-lang#118410 (update test for new LLVM 18 codegen)

r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request Nov 28, 2023
…iaskrgr

Rollup of 6 pull requests

Successful merges:

 - rust-lang#118193 (Add missing period in `std::process::Command` docs)
 - rust-lang#118222 (unify read_to_end and io::copy impls for reading into a Vec)
 - rust-lang#118323 (give dev-friendly error message for incorrect config profiles)
 - rust-lang#118378 (Perform LTO optimisations with wasm-ld + -Clinker-plugin-lto)
 - rust-lang#118399 (Clean dead codes in miri)
 - rust-lang#118410 (update test for new LLVM 18 codegen)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 97ef5a3 into rust-lang:master Nov 29, 2023
@rustbot rustbot added this to the 1.76.0 milestone Nov 29, 2023
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Nov 29, 2023
Rollup merge of rust-lang#118222 - the8472:copy-use-vec-write, r=m-ou-se

unify read_to_end and io::copy impls for reading into a Vec

This ports over the initial probe (to avoid allocation) and the dynamic read sizing from the io::copy specialization to the `default_read_to_end` implementation which already had its own optimizations for different cases.

I think it should be a best-of-both now.

suggested by `@a1phyr` in rust-lang#117576 (comment)
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this pull request Sep 22, 2024
…ChrisDenton

delay uncapping the max_read_size in File::read_to_end

In rust-lang#130600 (comment) I realized that we're likely still passing too-large buffers to the OS, at least once at the end.

Previous issues and PRs:
* rust-lang#110650
* rust-lang#110655
* rust-lang#118222

r? ChrisDenton
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this pull request Sep 22, 2024
…ChrisDenton

delay uncapping the max_read_size in File::read_to_end

In rust-lang#130600 (comment) I realized that we're likely still passing too-large buffers to the OS, at least once at the end.

Previous issues and PRs:
* rust-lang#110650
* rust-lang#110655
* rust-lang#118222

r? ChrisDenton
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this pull request Sep 22, 2024
…ChrisDenton

delay uncapping the max_read_size in File::read_to_end

In rust-lang#130600 (comment) I realized that we're likely still passing too-large buffers to the OS, at least once at the end.

Previous issues and PRs:
* rust-lang#110650
* rust-lang#110655
* rust-lang#118222

r? ChrisDenton
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Sep 22, 2024
Rollup merge of rust-lang#130670 - the8472:read-to-end-heuristics, r=ChrisDenton

delay uncapping the max_read_size in File::read_to_end

In rust-lang#130600 (comment) I realized that we're likely still passing too-large buffers to the OS, at least once at the end.

Previous issues and PRs:
* rust-lang#110650
* rust-lang#110655
* rust-lang#118222

r? ChrisDenton
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-libs Relevant to the library team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants