about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2019-04-05Auto merge of #59681 - dtolnay:cargo, r=alexcrichtonbors-0/+0
Update cargo 20 commits in 63231f438a2b5b84ccf319a5de22343ee0316323..6f3e9c367abb497c64f360c3839dab5e74928d5c 2019-03-27 12:26:45 +0000 to 2019-04-04 14:11:33 +0000 - Fix Init for Fossil SCM project (rust-lang/cargo#6792) - Fix member_manifest_version_error accessing the network (rust-lang/cargo#6799) - Don't include email if it is empty (rust-lang/cargo#6802) - Fix unused import warning (rust-lang/cargo#6807) - Add some help and documentation for unstable flags (rust-lang/cargo#6791) - Allow `cargo doc --open` with multiple packages (rust-lang/cargo#6803) - Allow `cargo install --path P` to load config from P (rust-lang/cargo#6804) - Add more suggestions on how to deal with excluding a package from a workspace (rust-lang/cargo#6805) - Warn on version req with metadata (rust-lang/cargo#6806) - cargo install: Be more restrictive about cli flags (rust-lang/cargo#6801) - Support force-pushed repos with git-fetch-with-cli (rust-lang/cargo#6800) - Cargo clippy (rust-lang/cargo#6759) - Don't include metadata in wasm binary examples (rust-lang/cargo#6812) - Update glossary for `feature` (rust-lang/cargo#6809) - Include proc-macros in `build-override` (rust-lang/cargo#6811) - Resolver: A dep is equivalent to one of the things it can resolve to (rust-lang/cargo#6776) - Add some docs for `Downloads` (rust-lang/cargo#6815) - Resolve: Be less strict while offline (rust-lang/cargo#6814) - Accept trailing comma in test of impl Debug for PackageId (rust-lang/cargo#6818) - Fix doc link (rust-lang/cargo#6820) <br> I specifically care about "Accept trailing comma in test of impl Debug for PackageId (rust-lang/cargo#6818)" to unblock https://github.com/rust-lang/rust/pull/59076. Mentioning @ehuss.
2019-04-05Fix expectations on some ui test in nll compare mode.Charles Lew-5/+3
2019-04-05Auto merge of #59643 - alexcrichton:wasi-symbols, r=sanxiynbors-1/+1
std: Upgrade `compiler_builtins` to fix wasi linkage Turns out we needed to exclude a number of math functions on the `wasm32-unknown-wasi` target, and this was fixed in 0.1.9 of compiler-builtins and this is pulling in the fix to libstd's own build.
2019-04-05improve docs for std::hint::unreachable_unchecked()Unreachable-3/+2
2019-04-05Auto merge of #59704 - alexcrichton:fix-freebsd, r=pietroalbinibors-1/+5
ci: Update FreeBSD tarball downloads These appear to have disappeared from the original server, so I acquired the contents from a different mirror and uploaded them to our S3 bucket
2019-04-05Increase `Span` from 4 bytes to 8 bytes.Nicholas Nethercote-103/+90
This increases the size of some important types, such as `ast::Expr` and `mir::Statement`. However, it drastically reduces how much the interner is used, and the fields are more natural sizes that don't require bit operations to extract. As a result, instruction counts drop across a range of workloads, by as much as 12% for incremental "check" builds of `script-servo`. Peak memory usage goes up a little for some cases, but down by more for some other cases -- as much as 18% for non-incremental builds of `packed-simd`. The commit also: - removes the `repr(packed)`, because it has negligible effect, but can cause undefined behaviour; - replaces explicit impls of common traits (`Copy`, `PartialEq`, etc.) with derived ones.
2019-04-05Add DropArena and use it to allocate types with few allocationsJohn Kåre Alsaker-25/+150
2019-04-05Impl UseSpecializedDecodable for &TJohn Kåre Alsaker-9/+1
2019-04-05Make ArenaAllocatable a marker trait to allow overlapping impls and use ↵John Kåre Alsaker-28/+28
specialization to find the right field
2019-04-05Introduce an arena type which may be used to allocate a list of types with ↵John Kåre Alsaker-21/+167
destructors
2019-04-04Add back the substring testGuillaume Gomez-0/+29
2019-04-04Mark variables captured by reference as mutable correctlyMatthew Jasper-28/+87
2019-04-04wasm32: Default to a "static" relocation modelAlex Crichton-0/+9
LLVM 9 is adding support for a "pic" relocation model for wasm code, which is quite different than the current model. In order to preserve the mode of compilation that we have today default to "static" to ensure that we don't accidentally start creating experimental relocatable binaries.
2019-04-04ci: Update FreeBSD tarball downloadsAlex Crichton-1/+5
These appear to have disappeared from the original server, so I acquired the contents from a different mirror and uploaded them to our S3 bucket
2019-04-05Add ignore to doc codeMasaki Hara-2/+2
2019-04-05Simplify fnbox docs.Masaki Hara-235/+15
2019-04-05Stabilize boxed_closure_impls in 1.35.0.Charles Lew-109/+3
2019-04-05Remove FnBox specialization of impl FnOnce for Box<impl FnOnce>.Masaki Hara-41/+1
2019-04-05We already have unsized_locals in stage0.Masaki Hara-9/+0
2019-04-05Fix failing tests.Masaki Hara-25/+10
2019-04-05Fix expectations on some ui tests involving FnOnce.Masaki Hara-72/+42
2019-04-05Add unstable-book articles on fnbox and boxed_closure_impls.Masaki Hara-0/+350
2019-04-05Add tests for boxed_closure_impls.Masaki Hara-0/+61
2019-04-05Add Fn* blanket impls for Box.Masaki Hara-0/+34
2019-04-05Make FnBox a subtrait of FnOnce.Masaki Hara-5/+1
2019-04-04std: Upgrade `compiler_builtins` to fix wasi linkageAlex Crichton-1/+1
Turns out we needed to exclude a number of math functions on the `wasm32-unknown-wasi` target, and this was fixed in 0.1.9 of compiler-builtins and this is pulling in the fix to libstd's own build.
2019-04-04Auto merge of #59676 - alexcrichton:osx-deadlock, r=sfacklerbors-13/+65
std: Avoid usage of `Once` in `Instant` This commit removes usage of `Once` from the internal implementation of time utilities on OSX and Windows. It turns out that we accidentally hit a deadlock today (#59020) via events that look like: * A thread invokes `park_timeout` * Internally, only on OSX, `park_timeout` calls `Instant::elapsed` * Inside of `Instant::elapsed` on OSX we enter a `Once` to initialize global timer data * Inside of `Once`, it attempts to `park` This means on the same stack frame, when there's contention, we're calling `park` from inside `park_timeout`, causing a deadlock! The solution implemented in this commit was to remove usage of `Once` and instead just do a small dance with atomics. There's no real need we need to guarantee that the global information is only learned once, only that it's only *stored* once. This implementation may have multiple threads invoke `mach_timebase_info`, but only one will store the global information which will amortize the cost for all other threads. A similar fix has been applied to windows to be uniform across our implementations, but looking at the code on Windows no deadlock was possible. This is purely just a consistency update for Windows and in theory a slightly leaner implementation. Closes #59020
2019-04-04Use more accurate lint root for mutable_borrow_reservation_conflictMatthew Jasper-1/+8
2019-04-04Placate tidyFelix S Klock II-2/+2
Get us back below 100 characters per line to placate tidy.
2019-04-04Fix out-of-date commentFelix S Klock II-1/+1
A comment in one match arm make a blanket statement about "reads/reservations", but in fact the whole point of this PR is that reservations are *not* handled by that particular arm anymore.
2019-04-04Adjust the mutable_borrow_reservation_conflict messageMatthew Jasper-8/+12
We aren't sure if this will become an error or not yet.
2019-04-04unit test for the lint itself, illustrating that it can be controlled by ↵Felix S. Klock II-0/+83
`#[allow(..)]` etc.
2019-04-04update unit test output to reflect change to lint-based diagnostic.Felix S. Klock II-10/+12
2019-04-04add mutable_borrow_reservation_conflict future-incompatibility lint.Felix S. Klock II-4/+25
Convert the new 2-phase reservation errors into instances of the lint so that they will be controlled by that attribute.
2019-04-04Update tests for restrictive two-phase borrowsMatthew Jasper-124/+1
2019-04-04Treat two-phase borrow reservations as mutable accessesMatthew Jasper-75/+328
2019-04-04Fix cases of conflicting two-phase borrowsMatthew Jasper-6/+7
2019-04-04Update cargoDavid Tolnay-0/+0
2019-04-04Use declare_lint_pass! and impl_lint_pass! in more placeshgallagher1993-20/+2
2019-04-04Simplify doc comment lexingAleksey Kladov-17/+5
is_doc_comment function checks the first four chars, but this is redundant, `doc_comment` local var has the same info.
2019-04-04Auto merge of #59695 - Centril:rollup-88qffc2, r=Centrilbors-32/+91
Rollup of 8 pull requests Successful merges: - #59470 (Document std::fs::File close behavior ignoring errors) - #59555 (update miri) - #59556 (update stdsimd) - #59596 (Forward formatter settings to bounds of `Range<T>` in `fmt::Debug` impl) - #59639 (Never return uninhabited values at all) - #59671 (Make some of lexer's API private) - #59685 (Add description for -Os and -Oz in rustc.1) - #59686 (Temporarily disable stack probing for gnux32.) Failed merges: r? @ghost
2019-04-04std: Avoid usage of `Once` in `Instant`Alex Crichton-13/+65
This commit removes usage of `Once` from the internal implementation of time utilities on OSX and Windows. It turns out that we accidentally hit a deadlock today (#59020) via events that look like: * A thread invokes `park_timeout` * Internally, only on OSX, `park_timeout` calls `Instant::elapsed` * Inside of `Instant::elapsed` on OSX we enter a `Once` to initialize global timer data * Inside of `Once`, it attempts to `park` This means on the same stack frame, when there's contention, we're calling `park` from inside `park_timeout`, causing a deadlock! The solution implemented in this commit was to remove usage of `Once` and instead just do a small dance with atomics. There's no real need we need to guarantee that the global information is only learned once, only that it's only *stored* once. This implementation may have multiple threads invoke `mach_timebase_info`, but only one will store the global information which will amortize the cost for all other threads. A similar fix has been applied to windows to be uniform across our implementations, but looking at the code on Windows no deadlock was possible. This is purely just a consistency update for Windows and in theory a slightly leaner implementation. Closes #59020
2019-04-04tweak unresolved label suggestionAndy Russell-9/+32
Only suggest label names in the same hygiene context, and use a structured suggestion.
2019-04-04Rollup merge of #59686 - crlf0710:disable_gnux32_stackprobe, r=luqmanaMazdak Farrokhzad-1/+2
Temporarily disable stack probing for gnux32.
2019-04-04Rollup merge of #59685 - lzutao:patch-1, r=GuillaumeGomezMazdak Farrokhzad-1/+1
Add description for -Os and -Oz in rustc.1
2019-04-04Rollup merge of #59671 - matklad:lexer, r=eddybMazdak Farrokhzad-8/+8
Make some of lexer's API private Lexer is a `pub` type, so it feels wrong that its fields are just pub (I guess it wasn't exported initially), so let's minimize visibility. Context: I am looking into extracting rust-lexer into a library, which can be shared by rust-analyzer and rustc. I hope that a simple interface like `fn next_token(src: &str) -> (TokenKind, usize)` would work, but to try this out I need to understand what is the current API of the lexer.
2019-04-04Rollup merge of #59639 - cuviper:ignore-uninhabited, r=eddybMazdak Farrokhzad-0/+39
Never return uninhabited values at all Functions with uninhabited return values are already marked `noreturn`, but we were still generating return instructions for this. When running with `-C passes=lint`, LLVM prints: Unusual: Return statement in function with noreturn attribute The LLVM manual makes a stronger statement about `noreturn` though: > This produces undefined behavior at runtime if the function ever does dynamically return. We now emit an `abort` anywhere that would have tried to return an uninhabited value. Fixes #48227 cc #7463 #48229 r? @eddyb
2019-04-04Rollup merge of #59596 - LukasKalbertodt:fix-range-fmt, r=KimundiMazdak Farrokhzad-5/+17
Forward formatter settings to bounds of `Range<T>` in `fmt::Debug` impl Before this change, formatter settings were lost when printing a `Range`. For example, printing a `Range<f32>` with `{:.2?}` would not apply the precision modifier when printing the floats. Now the `Debug` impls look a bit more verbose, but modifier are not lost. --- I assume the exact output of `Debug` impls in `std` cannot be relied on by users and thus can change, right?
2019-04-04Rollup merge of #59556 - RalfJung:stdsimd, r=gnzlbgMazdak Farrokhzad-0/+0
update stdsimd Cc @gnzlbg
2019-04-04Rollup merge of #59555 - RalfJung:miri, r=oli-obkMazdak Farrokhzad-15/+15
update miri r? @oli-obk Fixes https://github.com/rust-lang/rust/issues/59477