7033 Commits

Author SHA1 Message Date
bors
d5b69d4670 Auto merge of #45306 - whitequark:ref_slice, r=alexcrichton
Bring back slice::ref_slice as slice::from_ref.

These functions were deprecated and removed in 1.5, but such simple
functionality shouldn't require using unsafe code, and it isn't
cluttering libstd too much.

The original removal was quite contentious (see #27774), since then
we've had precedent for including such nuggets of functionality (see rust-lang/rfcs#1789),
and @nikomatsakis has provided a lot of use cases in https://github.com/rust-lang/rfcs/pull/1789#issuecomment-314640034.
Hence this PR.

I'm not too sure what to do with stability, feel free to correct me.
It seems pointless to go through stabilization for these functions though.

cc @aturon
2017-11-02 00:06:16 +00:00
whitequark
1cc88be2eb De-stabilize core::slice::{from_ref, from_ref_mut}. 2017-11-01 22:21:29 +00:00
bors
f3b900cc3b Auto merge of #44764 - nvzqz:master, r=alexcrichton
Implement TryFrom<&[T]> for &[T; N]

There are many cases where a buffer with a static compile-time size is preferred over a slice with a dynamic size. This allows for performing a checked conversion from `&[T]` to `&[T; N]`. This may also lead to compile-time optimizations involving `[T; N]` such as loop unrolling.

This is my first PR to Rust, so I'm not sure if discussion of this change should happen here or does it need its own RFC? I figured these changes would be a subset of #33417.
2017-10-31 23:06:37 +00:00
Wesley Wiser
9ca825e292 Add link to stablized version of an intrinsic 2017-10-29 22:53:07 -04:00
Florian Hartwig
9e966ad3dc Fix references to zero_memory and copy_memory in ptr docs 2017-10-29 15:40:09 +01:00
Alex Crichton
ca18537197 Bump to 1.23 and update bootstrap
This commit updates the bootstrap compiler, bumps the version to 1.23, updates
Cargo, updates books, and updates crates.io dependencies
2017-10-26 13:59:18 -07:00
kennytm
86360b7ef5 Rollup merge of #45483 - mbrubeck:hash, r=alexcrichton
Implement Hash for raw pointers to unsized types

This is useful for some niche cases, like a hash table of slices or trait objects where the key is the raw pointer.  Example use case: https://docs.rs/by_address
2017-10-26 03:02:51 +08:00
Matt Brubeck
c2c1910d69 Implement Hash for raw pointers to unsized types 2017-10-25 11:07:13 -07:00
Guillaume Gomez
cb1e4142b4 Rollup merge of #45461 - wesleywiser:intrinsics_docs, r=dtolnay
Two small enhancements to intrinsics docs
2017-10-25 09:48:09 +02:00
whitequark
8431811728 Bring back slice::ref_slice as slice::from_ref.
These functions were deprecated and removed in 1.5, but such simple
functionality shouldn't require using unsafe code, and it isn't
cluttering libstd too much.
2017-10-23 22:53:31 +00:00
Wesley Wiser
3bc97bfe9a Add link to stable version of needs_drop intrinsic 2017-10-22 20:30:38 -04:00
Wesley Wiser
860e436d0e Document the size_of_val instrinsic 2017-10-22 20:30:38 -04:00
Alex Burka
42ad2d7c31 fix stringify docs 2017-10-22 13:14:17 -04:00
Corey Farwell
6ed7927fa0 Rollup merge of #45419 - steveklabnik:fix-commonmark-renderings, r=QuietMisdreavus
Fix most rendering warnings from switching to CommonMark

There's one big one lift, I'm filing a bug for it soon.

r? @rust-lang/docs
2017-10-21 09:47:25 -04:00
bors
d532ba7c62 Auto merge of #45391 - malbarbo:x32-1, r=alexcrichton
Update libc and some fixes for x86_64-unknown-linux-gnux32
2017-10-21 09:37:11 +00:00
steveklabnik
f8f9005e57 Fix most rendering warnings from switching to CommonMark 2017-10-20 15:29:35 -04:00
Marco A L Barbosa
e57ee3d0bf Fix some tests for linux gnux32 2017-10-20 13:18:16 -02:00
bors
c0956ff265 Auto merge of #45319 - michaelwoerister:use-128bit-siphash, r=nikomatsakis
incr.comp.: Use 128bit SipHash for fingerprinting

This PR switches incr. comp. result fingerprinting from 128 bit BLAKE2 to 128 bit SipHash. When we started using BLAKE2 for fingerprinting, the 128 bit version of SipHash was still experimental. Now that it isn't anymore we should be able to get a nice performance boost without significantly increasing collision probability.

~~I'm going to start a try-build for this, so we can gauge the performance impact before merging (hence the `WIP` in the title).~~

EDIT: Performance improvements look as expected. Tests seem to be passing.

Fixes #41215.
2017-10-20 07:50:18 +00:00
kennytm
40d61f5982 Rollup merge of #45097 - nivkner:fixme_fixup2, r=estebank
address more FIXME whose associated issues were marked as closed

part of #44366
2017-10-17 22:20:55 +08:00
bors
db80da1c1a Auto merge of #45179 - cuviper:result-intoiter-clone, r=BurntSushi
core: derive Clone for result::IntoIter

It appears to be a simple oversight that `result::IntoIter<T>` doesn't
implement `Clone` (where `T: Clone`).  We do already have `Clone` for
`result::Iter`, as well as the similar `option::IntoIter` and `Iter`.
2017-10-17 03:11:52 +00:00
Michael Woerister
25014b5379 rustc_data_structures: Add implementation of 128 bit SipHash. 2017-10-16 14:44:40 +02:00
Alexis Beingessner
11775ab80d Clarify how needs_drop is conservative 2017-10-13 02:29:10 -04:00
bors
64ee7d1399 Auto merge of #45233 - kennytm:rollup, r=kennytm
Rollup of 9 pull requests

- Successful merges: #44989, #45005, #45049, #45105, #45121, #45166, #45172, #45190, #45231
- Failed merges: #45138
2017-10-12 23:01:34 +00:00
kennytm
4f83c359b8
Rollup merge of #45005 - leodasvacas:inline-eq-slice-into-eq, r=jseyfried
Inline eq_slice into str::eq

It's the only use of the function.
2017-10-13 01:58:38 +08:00
bors
dcbbfb6e80 Auto merge of #45007 - undecidabot:optimize-iter, r=bluss
Optimize comparison functions of Iterator

Replaced matching on tuples which led to less performant code generation. Testing on microbenchmarks consistently showed ~1.35x improvement in performance on my machine.

Fixes #44729.
2017-10-12 17:34:21 +00:00
Josh Stone
9e8b33e811 core: derive Clone for result::IntoIter
It appears to be a simple oversight that `result::IntoIter<T>` doesn't
implement `Clone` (where `T: Clone`).  We do already have `Clone` for
`result::Iter`, as well as the similar `option::IntoIter` and `Iter`.
2017-10-10 10:18:34 -07:00
kennytm
9effa73286
Rollup merge of #45095 - bluss:discriminant-send-sync, r=alexcrichton
Ensure std::mem::Discriminant is Send + Sync

`PhantomData<*const T>` has the implication of Send / Syncness following
the *const T type, but the discriminant should always be Send and Sync.

Use `PhantomData<fn() -> T>` which has the same variance in T, but is Send + Sync
2017-10-10 22:44:02 +08:00
kennytm
db202e34ae Rollup merge of #45081 - tamird:fmt-cleanup, r=alexcrichton
fmt: misc cleanup
2017-10-08 13:39:03 +08:00
kennytm
761efb3239 Rollup merge of #45053 - GuillaumeGomez:atomicbool-doc, r=QuietMisdreavus
Add missing links for AtomicBool

r? @rust-lang/docs
2017-10-08 13:39:00 +08:00
kennytm
4090e81319 Rollup merge of #45042 - brennie:brennie/fmt-trait-summaries, r=steveklabnik
Update trait summaries for std::fmt

This patch is part of #29355.

r? @steveklabnik
2017-10-08 13:38:58 +08:00
Ulrik Sverdrup
3fff2d95bf core: Ensure std::mem::Discriminant is Send + Sync
`PhantomData<*const T>` has the implication of Send / Syncness following
the *const T type, but the discriminant should always be Send and Sync.

Use `PhantomData<fn() -> T>` which has the same variance in T, but is Send + Sync
2017-10-08 01:09:55 +02:00
Niv Kaminer
e0ac65e669 address more FIXME whose associated issues were marked as closed
update FIXME(#6298) to point to open issue 15020
update FIXME(#6268) to point to RFC 811
update FIXME(#10520) to point to RFC 1751
remove FIXME for emscripten issue 4563 and include target in `test_estimate_scaling_factor`
remove FIXME(#18207) since node_id isn't used for `ref` pattern analysis
remove FIXME(#6308) since DST was implemented in #12938
remove FIXME(#2658) since it was decided to not reorganize module
remove FIXME(#20590) since it was decided to stay conservative with projection types
remove FIXME(#20297) since it was decided that solving the issue is unnecessary
remove FIXME(#27086) since closures do correspond to structs now
remove FIXME(#13846) and enable `function_sections` for windows
remove mention of #22079 in FIXME(#22079) since this is a general FIXME
remove FIXME(#5074) since the restriction on borrow were lifted
2017-10-08 00:27:28 +03:00
Tamir Duberstein
41b105b6ea
fmt: remove misleading comment fragment 2017-10-07 05:48:58 -04:00
Tamir Duberstein
19dcf9190c
fmt: DRY 2017-10-07 05:48:21 -04:00
Tamir Duberstein
45907f5cac
fmt: remove unnecessary lint suppression 2017-10-07 05:41:24 -04:00
Guillaume Gomez
98045fdaca Add missing links for AtomicBool 2017-10-05 23:20:58 +02:00
bors
417c73891f Auto merge of #44943 - nivkner:fixme_fixup, r=dtolnay
address some FIXME whose associated issues were marked as closed

part of #44366
2017-10-05 19:52:00 +00:00
Barret Rennie
276bebebb0 Update trait summaries for std::fmt
This patch is part of #29355.
2017-10-04 22:16:09 -06:00
Niv Kaminer
51542a9192 seperate and move miscellaneous benchmarks to librustc 2017-10-04 12:21:15 +00:00
Matt
3264c836bb Optimize comparison functions of Iterator
Replaced matching on tuples which led to less performant code generation.
2017-10-04 01:04:15 +08:00
leonardo.yvens
bb74c20a5d Inline eq_slice into str::eq
It's the only use of the function.
2017-10-02 22:04:23 -03:00
steveklabnik
851b6d4762 update books for next release
Also fixes some stdlib links to the reference which have changed.
2017-10-02 12:07:28 -04:00
bors
cef4a3ebfa Auto merge of #44897 - Havvy:doc-size_of, r=steveklabnik
Docs for size_of::<#[repr(C)]> items.

Most of this info comes from camlorn's blog post on optimizing struct layout and the Rustonomicon.

I don't really like my wording in the first paragraph.

I also cannot find a definition of what `#[repr(C)]` does for enums that have variants with fields. They're allowed, unlike `#[repr(C)] enum`s with no variants.
2017-10-01 17:32:34 +00:00
Nikolai Vazquez
4c853adce9 Merge remote-tracking branch 'upstream/master' 2017-09-30 10:08:33 -04:00
bors
c4cca3a72d Auto merge of #44936 - Mark-Simulacrum:rollup, r=Mark-Simulacrum
Rollup of 15 pull requests

- Successful merges: #44124, #44287, #44320, #44694, #44708, #44794, #44797, #44824, #44836, #44840, #44845, #44854, #44889, #44900, #44903
- Failed merges:
2017-09-30 10:03:00 +00:00
Niv Kaminer
ff99111f48 address some FIXMEs whose associated issues were marked as closed
remove FIXME(#13101) since `assert_receiver_is_total_eq` stays.
remove FIXME(#19649) now that stability markers render.
remove FIXME(#13642) now the benchmarks were moved.
remove FIXME(#6220) now that floating points can be formatted.
remove FIXME(#18248) and write tests for `Rc<str>` and `Rc<[u8]>`
remove reference to irelevent issues in FIXME(#1697, #2178...)
update FIXME(#5516) to point to getopts issue 7
update FIXME(#7771) to point to RFC 628
update FIXME(#19839) to point to issue 26925
2017-09-30 11:33:47 +03:00
Mark Simulacrum
4489a7a0bb Rollup merge of #44900 - Havvy:normalize-lang-attribute-spacing, r=sfackler
Normalize spaces in lang attributes.

So, like, I grepped for all `lang` attributes for *reasons* and I noticed that they all share the same spacing of `#[lang = "item_name"]` except these five instances. So I decided to fix that. So enjoy this PR of exactly ten spaces.
2017-09-29 17:59:04 -06:00
Mark Simulacrum
7756d39dca Rollup merge of #44854 - lucasem:atomic-docs, r=steveklabnik
docs improvement sync::atomic::Atomic*

Addresses the `Atomic*` part of #29377.
r? @steveklabnik
2017-09-29 17:59:02 -06:00
Mark Simulacrum
3d7a390552 Rollup merge of #44840 - steveklabnik:fix-wording, r=BurntSushi
Improve wording for StepBy

No other iterator makes the distinction between an iterator and an iterator adapter
in its summary line, so change it to be consistent with all other adapters.
2017-09-29 17:59:00 -06:00
Mark Simulacrum
327cd0d557 Rollup merge of #44836 - GuillaumeGomez:fmt-missing-links, r=QuietMisdreavus
Add missing links in fmt module

r? @rust-lang/docs
2017-09-29 17:58:59 -06:00