| Age | Commit message (Collapse) | Author | Lines |
|
This ensures we won't accidentally read *src or *dest even when count = 0.
|
|
|
|
|
|
|
|
|
|
Stabilize reverse_bits feature
FCP done in https://github.com/rust-lang/rust/issues/48763#issuecomment-497349379
Closes #48763
r? @Centril
|
|
|
|
|
|
|
|
|
|
|
|
Fixed a typo in core::convert::AsMut
Just missing a space, and added a comma to make more idiomatic.
|
|
Stabilize iter_nth_back feature
FCP done in https://github.com/rust-lang/rust/issues/56995#issuecomment-491145691
Closes #56995
r? @Centril
|
|
Fix links in Deref documentation
Fixes #61358.
In commonmark, the "link alias" has to be right after the link. Screenshot:
<img width="970" alt="Screenshot 2019-05-30 at 19 01 58" src="https://user-images.githubusercontent.com/3050060/58650155-3b594e00-830e-11e9-956c-4dadefa40ff0.png">
r? @Manishearth
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Stabilize RefCell::try_borrow_unguarded
Servo has been using this since https://github.com/servo/servo/pull/23196 to add a runtime check to some unsafe code, as discussed in PR https://github.com/rust-lang/rust/pull/59211. Stabilizing would help do more of the same in libraries that also have users on Stable.
|
|
This uses (and reuses) the u8 arrays's inherent block alignment when checking whether the current index is block aligned.
I initially thought that this would just move the expensive `align_offset` call out of the while loop and replace it with a subtraction and bitwise AND. But it appears this optimizes much better, too...
before: https://rust.godbolt.org/z/WIPvWl
after: https://rust.godbolt.org/z/-jBPoW
https://github.com/jridgewell/faster-from_utf8/tree/pointer-alignment
```
test from_utf8_2_bytes_fast ... bench: 310 ns/iter (+/- 42) = 1290 MB/s
test from_utf8_2_bytes_regular ... bench: 309 ns/iter (+/- 24) = 1294 MB/s
test from_utf8_3_bytes_fast ... bench: 1,027 ns/iter (+/- 62) = 1168 MB/s
test from_utf8_3_bytes_regular ... bench: 1,513 ns/iter (+/- 611) = 793 MB/s
test from_utf8_4_bytes_fast ... bench: 1,788 ns/iter (+/- 26) = 1342 MB/s
test from_utf8_4_bytes_regular ... bench: 1,907 ns/iter (+/- 181) = 1258 MB/s
test from_utf8_all_bytes_fast ... bench: 3,463 ns/iter (+/- 97) = 1155 MB/s
test from_utf8_all_bytes_regular ... bench: 4,083 ns/iter (+/- 89) = 979 MB/s
test from_utf8_ascii_fast ... bench: 88 ns/iter (+/- 4) = 28988 MB/s
test from_utf8_ascii_regular ... bench: 88 ns/iter (+/- 8) = 28988 MB/s
test from_utf8_cyr_fast ... bench: 7,707 ns/iter (+/- 531) = 665 MB/s
test from_utf8_cyr_regular ... bench: 8,202 ns/iter (+/- 135) = 625 MB/s
test from_utf8_enwik8_fast ... bench: 1,135,756 ns/iter (+/- 84,450) = 8804 MB/s
test from_utf8_enwik8_regular ... bench: 1,145,468 ns/iter (+/- 79,601) = 8730 MB/s
test from_utf8_jawik10_fast ... bench: 12,723,844 ns/iter (+/- 473,247) = 785 MB/s
test from_utf8_jawik10_regular ... bench: 13,384,596 ns/iter (+/- 666,997) = 747 MB/s
test from_utf8_mixed_fast ... bench: 2,321 ns/iter (+/- 123) = 2081 MB/s
test from_utf8_mixed_regular ... bench: 2,702 ns/iter (+/- 408) = 1788 MB/s
test from_utf8_mostlyasc_fast ... bench: 249 ns/iter (+/- 10) = 14666 MB/s
test from_utf8_mostlyasc_regular ... bench: 276 ns/iter (+/- 5) = 13231 MB/s
```
|
|
The name `swap_default` was suggested but rejected. @SimonSapin observed
that this operation isn't really a `swap` in the same sense as
`mem::swap`; it is a `replace`. Since `replace_default` is a bit
misleading, the "correct" name would be `replace_with_default`, which is
quite verbose.
@czipperz observed that we have precedence for using `take` to refer to
methods that replace with `Default` in `Cell::take` and `Option::take`,
so this reverts commit 99c00591c29b472c8a87c4a9342d0e0c508647a3 to
return to the original `take` method name.
The name `replace_with_default` was suggested, but was deemed too
verbose, especially given that we use `take` for methods that replace
with `Default` elsewhere.
|
|
|
|
split libcore::mem into multiple files
r? @Centril
|
|
|
|
Feature/nth back chunks
A succinct implementation for nth_back on chunks. Thank you @timvermeulen for the guidance.
r? @timvermeulen
|
|
Implement nth_back for RChunks(Exact)(Mut)
Part of #54054.
These implementations may not be optimal because of the use of `self.len()`, but it's quite cheap and simplifies the code a lot.
There's quite some duplication going on here, I wouldn't mind cleaning this up later. A good next step would probably be to add private `split_off_up_to`/`split_off_from` helper methods for slices since their behavior is commonly useful throughout the `Chunks` types.
r? @scottmcm
|
|
Add Step::sub_usize
Required for #54054.
I'm aware that the `Step` trait needs a rework, but this still seems like a reasonable addition?
This currently doesn't compile because Chalk contains a type that implement this trait, and this is a breaking change. How can that be fixed?
|
|
Implement `iter::Sum` and `iter::Product` for `Option`
This is similar to the existing implementation for `Result`. It will take each item into the accumulator unless a `None` is returned.
I based a lot of this on #38580. From that discussion it didn't seem like this addition would be too controversial or difficult. One thing I still don't understand is picking the values for the `stable` attribute. This is my first non-documentation PR for rust so I am open to any feedback on improvements.
|
|
|
|
mention that MaybeUninit is a bit like Option
|
|
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
|
|
split core::ptr module into multiple files
Cc @Centril
|
|
|
|
Updated the Iterator docs with information about overriding methods.
# Description
Updated the Iterator docs with information about overriding methods.
closes #60223
|
|
Use .await syntax instead of await!
Tiny doc fix.
|
|
Clarify docs for unreachable! macro
Fixes #60754.
|
|
Bump nightly to 1.37.0
r? @Mark-Simulacrum
|
|
|
|
|
|
MaybeUninit doctest: remove unnecessary type ascription
|
|
|
|
|
|
Annotate each `reverse_bits` with `#[must_use]`
Because the name sounds like an in-place mutation like `[T]::reverse(&mut self)`, it may be confused for one.
This change was requested at https://github.com/rust-lang/rust/issues/48763#issuecomment-493743741.
|
|
|
|
|
|
Because the name sounds like an in-place mutation like
`[T]::reverse(&mut self)`, it may be confused for one.
|
|
|
|
|