| Age | Commit message (Collapse) | Author | Lines |
|
|
|
All other methods in this file have #[inline] and these methods are very
similar to those of &[u8] which are already inlined here.
|
|
Master bootstrap update
https://forge.rust-lang.org/release/process.html#master-bootstrap-update-tuesday
r? `@Mark-Simulacrum`
|
|
|
|
with where to *actually* look for more details
|
|
(cherry picked from commit e4840ce59bdddb19394df008c5c26d9c493725f8)
|
|
|
|
Use `const_error!` when possible
Replace usages of `io::Error::new(io::ErrorKind::Variant, "constant string")` with `io::const_error!(io::ErrorKind::Variant, "constant string")` to avoid allocations when possible. Additionally, fix `&&str` error messages in SGX and missing/misplaced trailing commas in `const_error!`.
|
|
|
|
Use the existing `fill` methods on slices instead of manually
writing the fill loop.
|
|
Add diagnostic item for `std::io::BufRead`
This will be used in Clippy to detect unbuffered calls to `Read::bytes()`.
|
|
This will be used in Clippy to detect unbuffered calls to
`Read::bytes()`.
|
|
|
|
cc #136756
|
|
Update bootstrap compiler and rustfmt
The rustfmt version we previously used formats things differently from what the latest nightly rustfmt does. This causes issues for subtrees that get formatted both in-tree and in their own repo. Updating the rustfmt used in-tree solves those issues. Also bumped the bootstrap compiler as the stage0 update command always updates both at the same
time.
|
|
|
|
std: move `io` module out of `pal`, get rid of `sys_common::io`
Part of #117276.
This does two related things:
1. It moves the platform-specific definitions for `IoSlice`, `IoSliceMut` and `is_terminal` out of `pal` and into `sys` and unifies some of them.
2. It gets rid of `sys_common::io`, moving the non-platform-specific test helpers into `std::test_helpers` and the buffer size definition to the new `sys::io` module.
|
|
|
|
|
|
Fixes #85394
|
|
Fixes https://github.com/rust-lang/rust/pull/135635#pullrequestreview-2574184488.
|
|
Also create a section "Platform-specific behavior", don't hide required
imports for code examples.
|
|
|
|
Update emscripten std tests
This disables a bunch of emscripten tests that test things emscripten doesn't support and re-enables a whole bunch of tests which now work just fine on emscripten.
Tested with `EMCC_CFLAGS="-s MAXIMUM_MEMORY=2GB" ./x.py test library/ --target wasm32-unknown-emscripten`.
|
|
- Simplify some of the language
- Minor grammar fixes
- Don't imply that pipes *only* work across multiple processes; instead,
*suggest* that they're typically used across two or more separate
processes.
- Specify that portable applications cannot use multiple readers or
multiple writers for messages larger than a byte, due to potential
interleaving.
- Remove no-longer-referenced footnote URLs.
|
|
They are either outdated as emscripten now supports i128 or they are
subsumed by #[cfg_attr(not(panic = "unwind"), ignore]
|
|
This does need EMCC_CFLAGS="-s MAXIMUM_MEMORY=2GB" avoid several OOMs.
|
|
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
|
|
|
|
This API removes the need for several `unsafe` blocks, and leads to
clearer code.
|
|
|
|
Also update the tests to avoid testing implementation details.
|
|
|
|
Stabilize `std::io::ErrorKind::QuotaExceeded`
Also drop "Filesystem" from its name.
See #130190 for more info.
FCP in #130190
cc #86442
r? `@dtolnay`
|
|
Stabilize `std::io::ErrorKind::CrossesDevices`
FCP in #130191
cc #86442
See #130191 for more info and a recap of what has happened up until now.
TLDR: This had been FCP'd in December 2022 with some other `ErrorKind`s, but the stabilization got postponed due to some concerns voiced about several of the variants. However, the only concern ever voiced for this variant in particular was a wish to rename this to `NotSameDevice` analogous to Windows's `ERROR_NOT_SAME_DEVICE` (as opposed to Unix's `EXDEV`). This suggestion did not receive any support. So let's try to FCP this as is.
r? libs-api
|
|
|
|
|
|
ACP: rust-lang/libs-team#205
Tracking issue: #133448
|
|
Mark `get_mut` and `set_position` in `std::io::Cursor` as const.
Relevant tracking issue: #130801
The methods `get_mut` and `set_position` can trivially be marked as const due to #57349 being stabilised.
|
|
Add as_slice/into_slice for IoSlice/IoSliceMut.
ACP: https://github.com/rust-lang/libs-team/issues/93
Tracking issue: #132818
Based on a623c5233ae7f6b540e5c00f2be02f40b33b0793 (CC `@mpdn)` and #111277 (CC `@Lucretiel).`
Closes: #124659
Tracking Issue: TODO
try-job: test-various
try-job: dist-various-1
try-job: dist-various-2
r? libs
|
|
Co-authored-by: Mike Pedersen <mike@mikepedersen.dk>
Co-authored-by: Nathan West <Lucretiel@gmail.com>
|
|
|
|
|
|
(cherry picked from commit 567fd9610cbfd220844443487059335d7e1ff021)
|
|
These are common pitfalls for beginners, so I think it's worth
making the subtleties more visible.
|
|
|
|
Also drop "Filesystem" from its name
|
|
|
|
Add tests for addition of `#[rustc_confusables("get_line")]`
|
|
Mark some more types as having insignificant dtor
These were caught by https://github.com/rust-lang/rust/pull/129864#issuecomment-2376658407, which is implementing a lint for some changes in drop order for temporaries in tail expressions.
Specifically, the destructors of `CString` and the bitpacked repr for `std::io::Error` are insignificant insofar as they don't have side-effects on things like locking or synchronization; they just free memory.
See some discussion on #89144 for what makes a drop impl "significant"
|