summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2018-04-17Auto merge of #49664 - alexcrichton:stable-simd, r=BurntSushibors-165/+242
Stabilize x86/x86_64 SIMD This commit stabilizes the SIMD in Rust for the x86/x86_64 platforms. Notably this commit is stabilizing: * The `std::arch::{x86, x86_64}` modules and the intrinsics contained inside. * The `is_x86_feature_detected!` macro in the standard library * The `#[target_feature(enable = "...")]` attribute * The `#[cfg(target_feature = "...")]` matcher Stabilization of the module and intrinsics were primarily done in rust-lang-nursery/stdsimd#414 and the two attribute stabilizations are done in this commit. The standard library is also tweaked a bit with the new way that stdsimd is integrated. Note that other architectures like `std::arch::arm` are not stabilized as part of this commit, they will likely stabilize in the future after they've been implemented and fleshed out. Similarly the `std::simd` module is also not being stabilized in this commit, only `std::arch`. Finally, nothing related to `__m64` is stabilized in this commit either (MMX), only SSE and up types and intrinsics are stabilized. Closes #29717 Closes #44839 Closes #48556
2018-04-17Auto merge of #50012 - Zoxc:msvc-fix, r=Mark-Simulacrumbors-4/+8
Don't look for cc/cxx when testing with bogus targets This fixes test builds on Windows. r? @Mark-Simulacrum
2018-04-17Remove no longer necessary comparison to Vec::splice.Corey Farwell-3/+0
`String::replace_range` was previously called `String::splice`, so this note was necessary to differentiate it from the `Vec` method. Now that it's renamed, this note no longer seems necessary.
2018-04-17Don't look for cc/cxx when testing with bogus targetsJohn Kåre Alsaker-4/+8
2018-04-16Auto merge of #49488 - alexcrichton:small-wasm-panic, r=sfacklerbors-72/+296
std: Minimize size of panicking on wasm This commit applies a few code size optimizations for the wasm target to the standard library, namely around panics. We notably know that in most configurations it's impossible for us to print anything in wasm32-unknown-unknown so we can skip larger portions of panicking that are otherwise simply informative. This allows us to get quite a nice size reduction. Finally we can also tweak where the allocation happens for the `Box<Any>` that we panic with. By only allocating once unwinding starts we can reduce the size of a panicking wasm module from 44k to 350 bytes.
2018-04-16Remove unwanted auto-linking and updateGuillaume Gomez-13/+14
2018-04-16Fix empty testsGuillaume Gomez-3/+1
2018-04-16Fix nitsGuillaume Gomez-4/+0
2018-04-16Add rustdoc-ui test suiteGuillaume Gomez-34/+85
2018-04-16Add error-format and color-config options to rustdocGuillaume Gomez-12/+89
2018-04-16Add warning if a resolution failedGuillaume Gomez-0/+43
2018-04-16Update testsJohn Kåre Alsaker-133/+83
2018-04-16Improve query cycle error messageJohn Kåre Alsaker-18/+32
2018-04-16Call default_span lazily when query cycles occur instead of in the hot path ↵John Kåre Alsaker-25/+28
for queries
2018-04-16Separately gate each target_feature featureAlex Crichton-71/+219
Use an explicit whitelist for what features are actually stable and can be enabled.
2018-04-16Changed help message to notePhlosioneer-1/+1
2018-04-16Auto merge of #50003 - kennytm:rollup, r=kennytmbors-45/+86
Rollup of 8 pull requests Successful merges: - #49555 (Inline most of the code paths for conversions with boxed slices) - #49606 (Prevent broken pipes causing ICEs) - #49646 (Use box syntax instead of Box::new in Mutex::remutex on Windows) - #49647 (Remove `underscore_lifetimes` and `match_default_bindings` from active feature list) - #49931 (Fix incorrect span in `&mut` suggestion) - #49959 (rustbuild: allow building tools with debuginfo) - #49965 (Remove warning about f64->f32 cast being potential UB) - #49994 (Remove unnecessary indentation in rustdoc book codeblock.) Failed merges:
2018-04-17Rollup merge of #49647 - kennytm:duplicated-features, r=aturonkennytm-48/+129
Remove `underscore_lifetimes` and `match_default_bindings` from active feature list These are already stabilized in 1.26.
2018-04-17Rollup merge of #49994 - frewsxcv:frewsxcv-doc-tests, r=QuietMisdreavuskennytm-19/+19
Remove unnecessary indentation in rustdoc book codeblock. None
2018-04-17Rollup merge of #49965 - nikic:fix-49622, r=rkruppekennytm-4/+0
Remove warning about f64->f32 cast being potential UB As discussed in #15536, the LLVM documentation incorrect described overflowing f64->f32 casts as being undefined behavior. LLVM never treated them as such, and the documentation has been adjusted in https://reviews.llvm.org/rL329065. As such, this warning can now be removed. Closes #49622. --- I could not find any existing test checking for this warning. Should I be adding a test for the absence of the warning instead?
2018-04-17Rollup merge of #49959 - cuviper:debuginfo-tools, r=Mark-Simulacrumkennytm-4/+19
rustbuild: allow building tools with debuginfo Debugging information for the extended tools is currently disabled for concerns about the size. This patch adds `--enable-debuginfo-tools` to let one opt into having that debuginfo. This is useful for debugging the tools in distro packages. We always strip debuginfo into separate packages anyway, so the extra size is not a concern in regular use.
2018-04-17Rollup merge of #49931 - csmoe:end_span, r=estebankkennytm-5/+19
Fix incorrect span in `&mut` suggestion Fixes #49859
2018-04-16Reorder injection of std to get better compilation errorRussell Cohen-1/+27
2018-04-17Remove `underscore_lifetimes` and `match_default_bindings` from active ↵kennytm-8/+0
feature list These are already stabilized in 1.26.
2018-04-17Rollup merge of #49646 - glandium:uninitialized-box, r=alexcrichtonkennytm-1/+1
Use box syntax instead of Box::new in Mutex::remutex on Windows The Box::new(mem::uninitialized()) pattern actually actively copies uninitialized bytes from the stack into the box, which is a waste of time. Using the box syntax instead avoids the useless copy.
2018-04-17Rollup merge of #49606 - varkor:pipe-repair, r=alexcrichtonkennytm-3/+19
Prevent broken pipes causing ICEs As the private `std::io::print_to` panics if there is an I/O error, which is used by `println!`, the compiler would ICE if one attempted to use a broken pipe (e.g. `rustc --help | false`). This introduces a new (private) macro `try_println!` which allows us to avoid this. As a side note, it seems this macro might be useful publicly (and actually there seems to be [a crate specifically for this purpose](https://crates.io/crates/try_print/)), though that can probably be left for a future discussion. One slight alternative approach would be to simply early exit without an error (i.e. exit code `0`), which [this comment](https://github.com/rust-lang/rust/issues/34376#issuecomment-377822526) suggests is the usual approach. I've opted not to take that approach initially, because I think it's more helpful to know when there is a broken pipe. Fixes #34376.
2018-04-17Rollup merge of #49555 - nox:inline-into-boxed, r=alexcrichtonkennytm-1/+9
Inline most of the code paths for conversions with boxed slices This helps with the specific problem described in #49541, obviously without making any large change to how inlining works in the general case. Everything involved in the conversions is made `#[inline]`, except for the `<Vec<T>>::into_boxed_slice` entry point which is made `#[inline(always)]` after checking that duplicating the function mentioned in the issue prevented its inlining if I only annotate it with `#[inline]`. For the record, that function was: ```rust pub fn foo() -> Box<[u8]> { vec![0].into_boxed_slice() } ``` To help the inliner's job, we also hoist a `self.capacity() != self.len` check in `<Vec<T>>::shrink_to_fit` and mark it as `#[inline]` too.
2018-04-16write docs for targetssteveklabnik-0/+38
2018-04-16fill out contributingsteveklabnik-0/+5
2018-04-16fill out command line argumentssteveklabnik-2/+61
2018-04-16Auto merge of #49130 - smmalis37:range, r=alexcrichtonbors-40/+129
Move Range*::contains to a single default impl on RangeBounds Per the ongoing discussion in #32311. This is my first PR to Rust (woo!), so I don't know if this requires an amendment to the original range_contains RFC, or not, or if we can just do a psuedo-RFC here. While this may no longer follow the explicit decision made in that RFC, I believe this better follows its spirit by adding the new contains method to all Ranges. It also allows users to be generic over all ranges and use this method without writing it themselves (my personal desired use case). This also somewhat answers the unanswered question about Wrapping ranges in the above issue by instead just punting it to the question of what those types should return for start() & end(), or if they should implement RangeArgument at all. Those types could also implement their own contains method without implementing this trait, in which case the question remains the same. This does add a new contains method to types that already implemented RangeArgument but not contains. These types are RangeFull, (Bound<T>, Bound<T>), (Bound<&'a T>, Bound<&'a T>). No tests have been added for these types yet. No inherent method has been added either. r? @alexcrichton
2018-04-16Stabilize x86/x86_64 SIMDAlex Crichton-96/+25
This commit stabilizes the SIMD in Rust for the x86/x86_64 platforms. Notably this commit is stabilizing: * The `std::arch::{x86, x86_64}` modules and the intrinsics contained inside. * The `is_x86_feature_detected!` macro in the standard library * The `#[target_feature(enable = "...")]` attribute * The `#[cfg(target_feature = "...")]` matcher Stabilization of the module and intrinsics were primarily done in rust-lang-nursery/stdsimd#414 and the two attribute stabilizations are done in this commit. The standard library is also tweaked a bit with the new way that stdsimd is integrated. Note that other architectures like `std::arch::arm` are not stabilized as part of this commit, they will likely stabilize in the future after they've been implemented and fleshed out. Similarly the `std::simd` module is also not being stabilized in this commit, only `std::arch`. Finally, nothing related to `__m64` is stabilized in this commit either (MMX), only SSE and up types and intrinsics are stabilized. Closes #29717 Closes #44839 Closes #48556
2018-04-16Auto merge of #48945 - clarcharr:iter_exhaust, r=Kimundibors-13/+9
Replace manual iterator exhaust with for_each(drop) This originally added a dedicated method, `Iterator::exhaust`, and has since been replaced with `for_each(drop)`, which is more idiomatic. <del>This is just shorthand for `for _ in &mut self {}` or `while let Some(_) = self.next() {}`. This states the intent a lot more clearly than the identical code: run the iterator to completion. <del>At least personally, my eyes tend to gloss over `for _ in &mut self {}` without fully paying attention to what it does; having a `Drop` implementation akin to: <del>`for _ in &mut self {}; unsafe { free(self.ptr); }`</del> <del>Is not as clear as: <del>`self.exhaust(); unsafe { free(self.ptr); }` <del>Additionally, I've seen debate over whether `while let Some(_) = self.next() {}` or `for _ in &mut self {}` is more clear, whereas `self.exhaust()` is clearer than both.
2018-04-16Auto merge of #49433 - varkor:metadata-skip-mir-opt, r=michaelwoeristerbors-3/+14
Skip MIR encoding for cargo check Resolves #48662. r? @michaelwoerister
2018-04-16Stabilize core::hint::unreachable_unchecked.kennytm-16/+71
Closes #43751.
2018-04-16Auto merge of #49963 - llogiq:stabilize-13226, r=kennytmbors-13/+12
stabilize fetch_nand This closes #13226 and makes `Atomic*.fetch_nand` stable.
2018-04-16Remove unnecessary indentation in rustdoc book codeblock.Corey Farwell-19/+19
2018-04-16Auto merge of #49956 - QuietMisdreavus:rustdoc-codegen, r=GuillaumeGomezbors-20/+84
rustdoc: port the -C option from rustc Blocked on https://github.com/rust-lang/rust/pull/49864. The included test won't work without those changes, so this PR includes those commits as well. When documenting items that require certain target features, it helps to be able to force those target features into existence. Rather than include a flag just to parse those features, i instead decided to port the `-C` flag from rustc in its entirety. It takes the same parameters, because it runs through the same parsing function. This has the added benefit of being able to control the codegen of doctests as well. One concern i have with the flag is that i set it to stable here. My rationale is that it is a direct port of functionality on rustc that is currently stable, used only in mechanisms that it is originally used for. If needed, i can set it back to be unstable.
2018-04-16Auto merge of #49847 - sinkuu:save_analysis_implicit_extern, r=petrochenkovbors-49/+227
Fix save-analysis generation with extern_in_paths/extern_absolute_paths Fixes #48742.
2018-04-16Use locks for Session.lint_store and Session.buffered_lintsJohn Kåre Alsaker-9/+9
2018-04-16Auto merge of #49719 - mark-i-m:no_sep, r=petrochenkovbors-156/+72
Update `?` repetition disambiguation. **Do not merge** (yet) This is a test implementation of some ideas from discussion in https://github.com/rust-lang/rust/issues/48075 . This PR - disallows `?` repetition from taking a separator, since the separator is never used. - disallows the use of `?` as a separator. This allows patterns like `$(a)?+` to match `+` and `a+` rather than `a?a?a`. This is a _breaking change_, but maybe that's ok? Perhaps a crater run is the right approach? cc @durka @alexreg @nikomatsakis
2018-04-15Rebase and fix conflicts.Fabian Zaiser-5/+7
2018-04-15Stop duplicating where clauses from impl's.Fabian Zaiser-10/+8
2018-04-15Rebase and update code.Fabian Zaiser-2/+6
2018-04-15Improve function name.Fabian Zaiser-3/+5
2018-04-15Implement Chalk lowering rule Normalize-From-ImplFabian Zaiser-5/+81
2018-04-15Auto merge of #49947 - oli-obk:turing_complete_const_eval, r=nagisabors-18/+10
Don't abort const eval due to long running evals, just warn one check-box of #49930 r? @nagisa (https://github.com/rust-lang/rfcs/pull/2344#issuecomment-368246665)
2018-04-15Provide better names for builtin deriving-generated attributesJames Sanderson-15/+19
2018-04-15Tweaks to intern_tyJohn Kåre Alsaker-7/+7
2018-04-15Make use of thread-safe arenasJohn Kåre Alsaker-12/+12