about summary refs log tree commit diff
path: root/src/libcore
AgeCommit message (Collapse)AuthorLines
2019-06-02copy_within: replace element access by pointer arithmetic to avoid UBkennytm-2/+16
This ensures we won't accidentally read *src or *dest even when count = 0.
2019-06-02Fix typo in AsRef docFabian Drinck-1/+1
2019-06-01Enable feature bound_cloned for testsChris Gregory-0/+2
2019-06-01Implement Clone::clone_from for Result.Mara Bos-1/+22
2019-06-01Implement Clone::clone_from for Option.Mara Bos-1/+20
2019-06-01Rollup merge of #61364 - lzutao:stabilize-reverse_bits, r=CentrilMazdak Farrokhzad-11/+3
Stabilize reverse_bits feature FCP done in https://github.com/rust-lang/rust/issues/48763#issuecomment-497349379 Closes #48763 r? @Centril
2019-05-31Enable feature bound_clonedChris Gregory-0/+1
2019-05-31Import Bound in testsChris Gregory-1/+1
2019-05-31Add Bound testsChris Gregory-0/+15
2019-05-31Make Bound::cloned publicChris Gregory-1/+1
2019-05-31Stabilize copy_withinkennytm-3/+1
2019-05-31Rollup merge of #61382 - OptimisticPeach:patch-1, r=CentrilPietro Albini-2/+2
Fixed a typo in core::convert::AsMut Just missing a space, and added a comma to make more idiomatic.
2019-05-31Rollup merge of #61363 - lzutao:stabilize-iter_nth_back, r=CentrilPietro Albini-5/+1
Stabilize iter_nth_back feature FCP done in https://github.com/rust-lang/rust/issues/56995#issuecomment-491145691 Closes #56995 r? @Centril
2019-05-31Rollup merge of #61359 - GuillaumeGomez:fix-deref-doc-links, r=ManishearthPietro Albini-6/+6
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
2019-05-31Stabilize reverse_bits featureLzu Tao-11/+3
2019-05-30Fix compilation errorsChris Gregory-2/+2
2019-05-30Fixed some typos.OptimisticPeach-2/+2
2019-05-30Add Bound::cloned()Chris Gregory-0/+22
2019-05-30Stabilize iter_nth_back featureLzu Tao-5/+1
2019-05-30Fix links in Deref documentationGuillaume Gomez-6/+6
2019-05-30Rollup merge of #60850 - SimonSapin:unguarded, r=alexcrichtonMazdak Farrokhzad-2/+1
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.
2019-05-29Optimize pointer alignment in utf8 validationJustin Ridgewell-6/+3
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 ```
2019-05-29Add std::mem::take as suggested in #61129Jon Gjengset-0/+55
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.
2019-05-29Add custom nth_back for SkipAndrea Corradi-0/+48
2019-05-29Rollup merge of #61310 - RalfJung:mem, r=CentrilOliver Scherer-1406/+1417
split libcore::mem into multiple files r? @Centril
2019-05-29split libcore::mem into multiple filesRalf Jung-1406/+1417
2019-05-29Rollup merge of #61048 - wizAmit:feature/nth_back_chunks, r=scottmcmMazdak Farrokhzad-0/+42
Feature/nth back chunks A succinct implementation for nth_back on chunks. Thank you @timvermeulen for the guidance. r? @timvermeulen
2019-05-29Rollup merge of #60555 - timvermeulen:rchunks_nth_back, r=scottmcmMazdak Farrokhzad-0/+124
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
2019-05-29Rollup merge of #60542 - timvermeulen:step_sub_usize, r=scottmcmMazdak Farrokhzad-0/+35
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?
2019-05-29Rollup merge of #58975 - jtdowney:iter_arith_traits_option, r=dtolnayMazdak Farrokhzad-0/+126
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.
2019-05-28Bump Sum and Product for Option<T> to 1.37David Tolnay-2/+2
2019-05-29Rollup merge of #61273 - RalfJung:maybe-uninit, r=CentrilMazdak Farrokhzad-0/+3
mention that MaybeUninit is a bit like Option
2019-05-28Update src/libcore/mem.rsRalf Jung-1/+1
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
2019-05-28Rollup merge of #61159 - RalfJung:ptr, r=alexcrichtonMazdak Farrokhzad-387/+414
split core::ptr module into multiple files Cc @Centril
2019-05-28mention that MaybeUninit is a bit like OptionRalf Jung-0/+3
2019-05-28Rollup merge of #61237 - DevQps:expand-iterator-docs, r=Mark-SimulacrumMazdak Farrokhzad-0/+6
Updated the Iterator docs with information about overriding methods. # Description Updated the Iterator docs with information about overriding methods. closes #60223
2019-05-28Rollup merge of #61227 - diwic:patch-2, r=CentrilMazdak Farrokhzad-1/+1
Use .await syntax instead of await! Tiny doc fix.
2019-05-28Rollup merge of #61084 - blkerby:unreachable_doc, r=KodrAusMazdak Farrokhzad-3/+4
Clarify docs for unreachable! macro Fixes #60754.
2019-05-27Auto merge of #61078 - pietroalbini:nightly-next, r=Centrilbors-3/+2
Bump nightly to 1.37.0 r? @Mark-Simulacrum
2019-05-27Updated the Iterator docs with information about overriding methods.Christian-0/+6
2019-05-27Use .await syntax instead of await!diwic-1/+1
2019-05-26Rollup merge of #61161 - RalfJung:maybe-uninit, r=CentrilMazdak Farrokhzad-2/+2
MaybeUninit doctest: remove unnecessary type ascription
2019-05-25MaybeUninit doctest: remove unnecessary type ascriptionRalf Jung-2/+2
2019-05-25split core::ptr module into multiple filesRalf Jung-387/+414
2019-05-25Rollup merge of #61134 - nvzqz:reverse_bits-must_use, r=varkorMazdak Farrokhzad-0/+3
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.
2019-05-25Add Step::sub_usizeTim Vermeulen-0/+35
2019-05-25Implement nth_back for slice::{Iter, IterMut}Tim Vermeulen-21/+68
2019-05-24Annotate each `reverse_bits` with `#[must_use]`Nikolai Vazquez-0/+3
Because the name sounds like an in-place mutation like `[T]::reverse(&mut self)`, it may be confused for one.
2019-05-23typoBrent Kerby-1/+1
2019-05-23Remove phrase "instead of a panic!"Brent Kerby-1/+1