| Age | Commit message (Collapse) | Author | Lines |
|
Based on the discussion in https://github.com/rust-lang/rust/pull/37573,
it is likely better to keep this limited to std::io, instead of
modifying a function which users expect to be a memcpy.
|
|
Ultimately copy_from_slice is being a bottleneck, not io::Cursor::read.
It might be worthwhile to move the check here, so more places can
benefit from it.
|
|
During benchmarking, I found that one of my programs spent between 5 and
10 percent of the time doing memmoves. Ultimately I tracked these down
to single-byte slices being copied with a memcopy in io::Cursor::read().
Doing a manual copy if only one byte is requested can speed things up
significantly. For my program, this reduced the running time by 20%.
Why special-case only a single byte, and not a "small" slice in general?
I tried doing this for slices of at most 64 bytes and of at most 8
bytes. In both cases my test program was significantly slower.
|
|
Fixes #26554.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Previously the `LineWriter` could successfully write some bytes but then fail to
report that it has done so. Additionally, an erroneous flush after a successful
write was permanently ignored. This commit fixes these two issues by (a)
maintaining a `need_flush` flag to indicate whether a flush should be the first
operation in `LineWriter::write` and (b) avoiding returning an error once some
bytes have been successfully written.
Closes #37807
|
|
Clearer description of std::path::MAIN_SEPARATOR.
|
|
Use displacement instead of initial bucket in HashMap code
Use displacement instead of initial bucket in HashMap code. It makes the code a bit cleaner and also saves a few instructions (handy since it'll be using some to do some sort of adaptive behavior soon).
|
|
|
|
Add examples for TcpListener struct
r? @frewsxcv
|
|
|
|
Add missing urls and examples to TcpStream
r? @frewsxcv
|
|
|
|
|
|
Document how lock 'guard' structures are created.
|
|
Follow our own recommendations in the examples
Remove exclamation marks from the the example error descriptions:
> The description [...] should not contain newlines or sentence-ending punctuation
|
|
Remove completed FIXME.
https://github.com/rust-lang/rust/issues/30530
|
|
Define `bound` argument in std::sync::mpsc::sync_channel in the documentation
The `bound` argument in `std::sync::mpsc::sync:channel(bound: usize)` was not defined in the documentation.
|
|
Add missing examples to SocketAddrV6
r? @steveklabnik
cc @frewsxcv
|
|
|
|
|
|
Also, end sentence with a period.
|
|
|
|
|
|
|
|
Remove exclamation marks from the the example error descriptions:
> The description [...] should not contain newlines or sentence-ending punctuation
|
|
https://github.com/rust-lang/rust/issues/30530
|
|
The `bound` argument in `std::sync::mpsc::sync:channel(bound: usize)` was not defined in the documentation.
|
|
with this feature disabled, you can (Cargo) compile std with
"panic=abort"
rustbuild will build std with this feature enabled, to maintain the
status quo
fixes #37252
|
|
refactored out some now-duplicated code into a 'process_common.rs'
|
|
|
|
|
|
|
|
|
|
|
|
Add some internal docs links for Args/ArgsOs
In many places the docs link to other sections and I noticed it was lacking here. Not sure if there is a standard for if inter-linking is appropriate.
|
|
Add missing examples for SocketAddrV4
r? @steveklabnik
cc @frewsxcv
|
|
|
|
|
|
|
|
On unix like systems, the underlying file corresponding to any given path may
change at any time. This function makes it possible to set the permissions of
the a file corresponding to a `File` object even if its path changes.
|
|
|
|
|
|
libstd: support creation of anonymous pipe on WinXP/2K3
`PIPE_REJECT_REMOTE_CLIENTS` flag is not supported on Windows < VISTA, and every invocation of `anon_pipe` including attempts to pipe `std::process::Child`'s stdio fails.
This PR should work around this issue by performing a runtime check of windows version and conditionally omitting this flag on "XP and friends".
Getting the version should be probably moved out of the function `anon_pipe` itself (the OS version does not often change during runtime :) ), but:
- I didn't find any precedent for this and assuming there's not much overhead (I hope windows does not perform any heuristics to find out it's own version, just fills couple of fields in the struct).
- the code path is not especially performance sensitive anyway.
|
|
|