]> git.lizzy.rs Git - rust.git/log
rust.git
6 years agoDon't unconditionally set CLOEXEC twice on every fd we open on Linux
Tobias Bucher [Mon, 14 May 2018 11:20:39 +0000 (13:20 +0200)]
Don't unconditionally set CLOEXEC twice on every fd we open on Linux

Previously, every `open64` was accompanied by a `ioctl(…, FIOCLEX)`,
because some old Linux version would ignore the `O_CLOEXEC` flag we pass
to the `open64` function.

Now, we check whether the `CLOEXEC` flag is set on the first file we
open – if it is, we won't do extra syscalls for every opened file. If it
is not set, we fall back to the old behavior of unconditionally calling
`ioctl(…, FIOCLEX)` on newly opened files.

On old Linuxes, this amounts to one extra syscall per process, namely
the `fcntl(…, F_GETFD)` call to check the `CLOEXEC` flag.

On new Linuxes, this reduces the number of syscalls per opened file by
one, except for the first file, where it does the same number of
syscalls as before (`fcntl(…, F_GETFD)` to check the flag instead of
`ioctl(…, FIOCLEX)` to set it).

6 years agoAuto merge of #49823 - Zoxc:term-str, r=alexcrichton
bors [Thu, 10 May 2018 16:27:32 +0000 (16:27 +0000)]
Auto merge of #49823 - Zoxc:term-str, r=alexcrichton

Remove usages of Term::as_str and mark it for removal

Returning references to rustc internal data structures is a bad idea since their lifetimes are unrelated to the lifetimes of proc_macro values.

See https://github.com/rust-lang/rust/pull/46972 and the `Taming thread-local storage` section of https://internals.rust-lang.org/t/parallelizing-rustc-using-rayon/6606

r? @alexcrichton

6 years agoAuto merge of #50395 - Zoxc:small-tys, r=michaelwoerister
bors [Thu, 10 May 2018 14:14:35 +0000 (14:14 +0000)]
Auto merge of #50395 - Zoxc:small-tys, r=michaelwoerister

Optimize layout of TypeVariants

This makes references to `Slice` use thin pointers by storing the slice length in the slice itself. `GeneratorInterior` is replaced by storing the movability of generators in `TyGenerator` and the interior witness is stored in `GeneratorSubsts` (which is just a wrapper around `&'tcx Substs`, like `ClosureSubsts`). Finally the fields of `TypeAndMut` is stored inline in `TyRef`. These changes combine to reduce `TypeVariants` from 48 bytes to 24 bytes on x86_64.

r? @michaelwoerister

6 years agoAuto merge of #50200 - alexcrichton:compile-with-clang, r=kennytm
bors [Thu, 10 May 2018 10:30:02 +0000 (10:30 +0000)]
Auto merge of #50200 - alexcrichton:compile-with-clang, r=kennytm

Compile LLVM with Clang on release builders

Attempting to cache in on some rustc compile time wins mentioned in https://github.com/rust-lang/rust/issues/49879#issuecomment-383602941

6 years agoAuto merge of #50432 - GuillaumeGomez:fix-vec-new-search, r=QuietMisdreavus
bors [Thu, 10 May 2018 07:52:15 +0000 (07:52 +0000)]
Auto merge of #50432 - GuillaumeGomez:fix-vec-new-search, r=QuietMisdreavus

Fix rustdoc pathes search

Fixes #50086.

Depends on #50302.

r? @QuietMisdreavus

6 years agoAuto merge of #49729 - collin5:b48483, r=Mark-Simulacrum
bors [Thu, 10 May 2018 02:15:40 +0000 (02:15 +0000)]
Auto merge of #49729 - collin5:b48483, r=Mark-Simulacrum

./x.py test should be able to run individual tests

Allows user to be able to run individual tests by specifying filename i.e `./x.py test src/test/run-pass/foo.rs`

Fixes #48483

6 years agoci: Compile LLVM with Clang 6.0.0
Alex Crichton [Tue, 24 Apr 2018 15:34:14 +0000 (08:34 -0700)]
ci: Compile LLVM with Clang 6.0.0

Currently on CI we predominately compile LLVM with the default system compiler
which means gcc on Linux, some version of Clang on OSX, MSVC on Windows, and
gcc on MinGW. This commit switches Linux, OSX, and Windows to all use Clang
6.0.0 to build LLVM (aka the C/C++ compiler as part of the bootstrap). This
looks to generate faster code according to #49879 which translates to a faster
rustc (as LLVM internally is faster)

The major changes here were to the containers that build Linux releases,
basically adding a new step that uses the previous gcc 4.8 compiler to compile
the next Clang 6.0.0 compiler. Otherwise the OSX and Windows scripts have been
updated to download precompiled versions of Clang 6 and configure the build to
use them.

Note that `cc` was updated here to fix using `clang-cl` with `cc-rs` on MSVC, as
well as an update to `sccache` on Windows which was needed to correctly work
with `clang-cl`. Finally the MinGW compiler is entirely left out here
intentionally as it's currently thought that Clang can't generate C++ code for
MinGW and we need to use gcc, but this should be verified eventually.

6 years agoAuto merge of #49834 - Zoxc:sync-trait-cache, r=nikomatsakis
bors [Wed, 9 May 2018 19:17:35 +0000 (19:17 +0000)]
Auto merge of #49834 - Zoxc:sync-trait-cache, r=nikomatsakis

Make SelectionCache and EvaluationCache thread-safe

Split out from https://github.com/rust-lang/rust/pull/49558

r? @nikomatsakis

6 years agoAdd exact-check option to rustdoc-js tests
Guillaume Gomez [Thu, 3 May 2018 20:54:04 +0000 (22:54 +0200)]
Add exact-check option to rustdoc-js tests

6 years agoAuto merge of #49711 - ibabushkin:auto_trait_refactor, r=nikomatsakis
bors [Wed, 9 May 2018 16:56:30 +0000 (16:56 +0000)]
Auto merge of #49711 - ibabushkin:auto_trait_refactor, r=nikomatsakis

Refactor auto trait handling in librustdoc to be accessible from librustc.

These commits transfer some of the functionality introduced in https://github.com/rust-lang/rust/pull/47833 to librustc with the intention of making the tools to work with auto traits accessible to third-party code, for example [rust-semverver](https://github.com/rust-lang-nursery/rust-semverver).

Some rough edges remain, and I'm certain some of the FIXMEs introduced will need some discussion, most notably the fairly ugly overall approach to pull out the core logic into librustc, which was previously fairly tightly coupled with various bits and bobs from librustdoc.

cc @Aaron1011

6 years agoAuto merge of #50546 - kennytm:rollup, r=kennytm
bors [Wed, 9 May 2018 13:28:15 +0000 (13:28 +0000)]
Auto merge of #50546 - kennytm:rollup, r=kennytm

Rollup of 11 pull requests

Successful merges:

 - #49988 (Mention Result<!, E> in never docs.)
 - #50148 (turn `ManuallyDrop::new` into a constant function)
 - #50456 (Update the Cargo submodule)
 - #50460 (Make `String::new()` const)
 - #50464 (Remove some transmutes)
 - #50505 (Added regression function match value test)
 - #50511 (Add some explanations for #[must_use])
 - #50525 (Optimize string handling in lit_token().)
 - #50527 (Cleanup a `use` in a raw_vec test)
 - #50539 (Add more logarithm constants)
 - #49523 (Update RELEASES.md for 1.26.0)

Failed merges:

6 years agoRollup merge of #49523 - Aaronepower:master, r=Mark-Simulacrum
kennytm [Wed, 9 May 2018 10:17:13 +0000 (18:17 +0800)]
Rollup merge of #49523 - Aaronepower:master, r=Mark-Simulacrum

Update RELEASES.md for 1.26.0

[Rendered](https://github.com/Aaronepower/rust/blob/master/RELEASES.md)

6 years agoRollup merge of #50527 - glandium:cleanup, r=sfackler
kennytm [Wed, 9 May 2018 09:26:49 +0000 (17:26 +0800)]
Rollup merge of #50527 - glandium:cleanup, r=sfackler

Cleanup a `use` in a raw_vec test

`allocator` is deprecated in favor of `alloc`, and `Alloc` is already imported
through `super::*`.

6 years agoRollup merge of #50511 - Manishearth:must-use, r=QuietMisdreavus
kennytm [Wed, 9 May 2018 09:26:38 +0000 (17:26 +0800)]
Rollup merge of #50511 - Manishearth:must-use, r=QuietMisdreavus

Add some explanations for #[must_use]

`#[must_use]` can be given a string argument which is shown whilst warning for things.

We should add a string argument to most of the user-exposed ones.

I added these for everything but the operators, mostly because I'm not sure what to write there or if we need anything there.

6 years agoRollup merge of #50505 - Aaronepower:add-test, r=oli-obk
kennytm [Wed, 9 May 2018 09:26:25 +0000 (17:26 +0800)]
Rollup merge of #50505 - Aaronepower:add-test, r=oli-obk

Added regression function match value test

closes #44333

6 years agoRollup merge of #50464 - est31:master, r=rkruppe
kennytm [Wed, 9 May 2018 09:26:13 +0000 (17:26 +0800)]
Rollup merge of #50464 - est31:master, r=rkruppe

Remove some transmutes

6 years agoRollup merge of #50460 - F001:const_string, r=kennytm
kennytm [Wed, 9 May 2018 09:25:53 +0000 (17:25 +0800)]
Rollup merge of #50460 - F001:const_string, r=kennytm

Make `String::new()` const

Following the steps of https://github.com/rust-lang/rust/pull/50233 , make `String::new()` a `const fn`.

6 years agoUpdate RELEASES.md
Aaron Power [Wed, 9 May 2018 10:06:20 +0000 (11:06 +0100)]
Update RELEASES.md

6 years agoRollup merge of #50148 - japaric:const-manuallydrop, r=oli-obk
kennytm [Wed, 9 May 2018 09:25:25 +0000 (17:25 +0800)]
Rollup merge of #50148 - japaric:const-manuallydrop, r=oli-obk

turn `ManuallyDrop::new` into a constant function

6 years agoRollup merge of #49988 - clarcharr:never_docs, r=steveklabnik
kennytm [Wed, 9 May 2018 09:25:04 +0000 (17:25 +0800)]
Rollup merge of #49988 - clarcharr:never_docs, r=steveklabnik

Mention Result<!, E> in never docs.

Fixes #48096.

6 years agoRollup merge of #50539 - clarcharr:log_const, r=dtolnay
kennytm [Wed, 9 May 2018 09:24:44 +0000 (17:24 +0800)]
Rollup merge of #50539 - clarcharr:log_const, r=dtolnay

Add more logarithm constants

Right now, we have `ln(2)` and `ln(10)`, but only `log2(e)` and `log10(e)`. This also adds `log2(10)` and `log10(2)` for consistency.

6 years agoRollup merge of #50525 - nnethercote:lit_token, r=michaelwoerister
kennytm [Wed, 9 May 2018 09:23:31 +0000 (17:23 +0800)]
Rollup merge of #50525 - nnethercote:lit_token, r=michaelwoerister

Optimize string handling in lit_token().

In the common case, the string value in a string literal Token is the
same as the string value in a string literal LitKind. (The exception is
when escapes or \r are involved.) This patch takes advantage of that to
avoid calling str_lit() and re-interning the string in that case. This
speeds up incremental builds for a few of the rustc-benchmarks, the best
by 3%.

Benchmarks that got a speedup of 1% or more:
```
coercions
        avg: -1.1%      min: -3.5%      max: 0.4%
regex-check
        avg: -1.2%      min: -1.5%      max: -0.6%
futures-check
        avg: -0.9%      min: -1.4%      max: -0.3%
futures
        avg: -0.8%      min: -1.3%      max: -0.3%
futures-opt
        avg: -0.7%      min: -1.2%      max: -0.1%
regex
        avg: -0.5%      min: -1.2%      max: -0.1%
regex-opt
        avg: -0.5%      min: -1.1%      max: -0.1%
hyper-check
        avg: -0.7%      min: -1.0%      max: -0.3%
```

6 years agoRollup merge of #50456 - alexcrichton:update-cargo, r=alexcrichton
kennytm [Wed, 9 May 2018 09:20:55 +0000 (17:20 +0800)]
Rollup merge of #50456 - alexcrichton:update-cargo, r=alexcrichton

Update the Cargo submodule

Hopefully brining in a few fixes to Cargo regressions!

6 years agoignore test-args if user specifies suite_path
Collins Abitekaniza [Tue, 8 May 2018 12:23:32 +0000 (15:23 +0300)]
ignore test-args if user specifies suite_path

6 years agoOptimize string handling in lit_token().
Nicholas Nethercote [Fri, 4 May 2018 06:53:31 +0000 (16:53 +1000)]
Optimize string handling in lit_token().

In the common case, the string value in a string literal Token is the
same as the string value in a string literal LitKind. (The exception is
when escapes or \r are involved.) This patch takes advantage of that to
avoid calling str_lit() and re-interning the string in that case. This
speeds up incremental builds for a few of the rustc-benchmarks, the best
by 3%.

6 years agoAdd more logarithm constants
Clar Charr [Tue, 8 May 2018 16:05:07 +0000 (12:05 -0400)]
Add more logarithm constants

6 years agoAuto merge of #50530 - oli-obk:miri, r=kennytm
bors [Tue, 8 May 2018 17:20:01 +0000 (17:20 +0000)]
Auto merge of #50530 - oli-obk:miri, r=kennytm

Fix thinning pointers to extern types in miri

r? @kennytm as an alternative to disabling the miri build

fixes #50495

6 years agoUpdate the Cargo/stdsimd submodules
Alex Crichton [Sat, 5 May 2018 05:27:29 +0000 (22:27 -0700)]
Update the Cargo/stdsimd submodules

Hopefully brining in a few fixes to Cargo regressions as well as some new
stdsimd functions!

6 years agoAuto merge of #50497 - RalfJung:pinmut, r=withoutboats
bors [Tue, 8 May 2018 14:45:16 +0000 (14:45 +0000)]
Auto merge of #50497 - RalfJung:pinmut, r=withoutboats

Rename Pin to PinMut, and some more breaking changes

As discussed at [1] §3 and [2] and [3], a formal look at pinning requires considering a distinguished "shared pinned" mode/typestate.  Given that, it seems desirable to at least eventually actually expose that typestate as a reference type.  This renames Pin to PinMut, freeing the name Pin in case we want to use it for a shared pinned reference later on.

[1] https://www.ralfj.de/blog/2018/04/10/safe-intrusive-collections-with-pinning.html
[2] https://github.com/rust-lang/rfcs/pull/2349#issuecomment-379250361
[3] https://github.com/rust-lang/rust/issues/49150#issuecomment-380488275

Cc @withoutboats

6 years agoInsert fields from TypeAndMut into TyRef to allow layout optimization
John Kåre Alsaker [Wed, 2 May 2018 13:21:05 +0000 (15:21 +0200)]
Insert fields from TypeAndMut into TyRef to allow layout optimization

6 years agoStore the GeneratorInterior in the new GeneratorSubsts
John Kåre Alsaker [Wed, 2 May 2018 11:14:30 +0000 (13:14 +0200)]
Store the GeneratorInterior in the new GeneratorSubsts

6 years agoStore generator movability outside GeneratorInterior
John Kåre Alsaker [Wed, 2 May 2018 08:17:12 +0000 (10:17 +0200)]
Store generator movability outside GeneratorInterior

6 years agoAuto merge of #50490 - nrc:method-docs, r=eddyb
bors [Tue, 8 May 2018 12:25:01 +0000 (12:25 +0000)]
Auto merge of #50490 - nrc:method-docs, r=eddyb

save-analysis: emit correct docs for methods

cc https://github.com/rust-lang-nursery/rls/issues/446

r? @eddyb

6 years agoFix thinning pointers to extern types in miri
Oliver Schneider [Mon, 7 May 2018 13:53:44 +0000 (15:53 +0200)]
Fix thinning pointers to extern types in miri

6 years agoAuto merge of #50503 - alexheretic:master, r=oli-obk
bors [Tue, 8 May 2018 10:15:48 +0000 (10:15 +0000)]
Auto merge of #50503 - alexheretic:master, r=oli-obk

Update rls with compiling clippy

Updates rls to use a working clippy version. This pr can be closed if the latest clippy release is broken again.

6 years agoCleanup a `use` in a raw_vec test
Mike Hommey [Tue, 8 May 2018 08:07:24 +0000 (17:07 +0900)]
Cleanup a `use` in a raw_vec test

`allocator` is deprecated in favor of `alloc`, and `Alloc` is already imported
through `super::*`.

6 years agoAuto merge of #50390 - hdhoang:46205_deny_by_default, r=nikomatsakis
bors [Tue, 8 May 2018 04:56:01 +0000 (04:56 +0000)]
Auto merge of #50390 - hdhoang:46205_deny_by_default, r=nikomatsakis

lint: deny incoherent_fundamental_impls by default

Warn the ecosystem of the pending intent-to-disallow in #49799.

There are 4 ICEs on my machine, look unrelated (having happened before in https://github.com/rust-lang/rust/issues/49146#issuecomment-384473523)

```rust
thread 'main' panicked at 'assertion failed: position <= slice.len()', libserialize/leb128.rs:97:1
```

```
    [run-pass] run-pass/allocator/xcrate-use2.rs
    [run-pass] run-pass/issue-12133-3.rs
    [run-pass] run-pass/issue-32518.rs
    [run-pass] run-pass/trait-default-method-xc-2.rs
```

r? @nikomatsakis

6 years agoAuto merge of #50260 - Manishearth:no-extern-crate, r=nikomatsakis
bors [Tue, 8 May 2018 01:37:52 +0000 (01:37 +0000)]
Auto merge of #50260 - Manishearth:no-extern-crate, r=nikomatsakis

idiom lints for removing `extern crate`

Based off of https://github.com/rust-lang/rust/pull/49789

This contains two lints:

 - One that suggests replacing pub extern crates with pub use, and removing non-pub extern crates entirely
 - One that suggests rewriting `use modulename::...::cratename::foo` as `cratename::foo`

The latter is a bit tricky to emit suggestions for; for one this involves splicing spans (never a good idea), and it also won't be able to correctly
handle `use module::{cratename, foo}` and use-trees. I'm not sure how to proceed here. Currently it doesn't suggest anything at all.

Perhaps we can go the other way and suggest removal of all extern crates _except_ those used through modules (stash node ids somewhere) and suggest replacing those with `<visibility> use`?

r? @nikomatsakis

fixes https://github.com/rust-lang/rust/issues/48719

6 years agoAuto merge of #50305 - GuillaumeGomez:fix-mod-stackoverflow, r=QuietMisdreavus
bors [Mon, 7 May 2018 23:18:12 +0000 (23:18 +0000)]
Auto merge of #50305 - GuillaumeGomez:fix-mod-stackoverflow, r=QuietMisdreavus

Prevent infinite recursion of modules

Fixes #50196.

r? @QuietMisdreavus

6 years agoAdd explanation for #[must_use] on string replace methods
Manish Goregaokar [Mon, 7 May 2018 16:30:11 +0000 (09:30 -0700)]
Add explanation for #[must_use] on string replace methods

6 years agoAdd explanation for #[must_use] on mutex guards
Manish Goregaokar [Mon, 7 May 2018 16:27:50 +0000 (09:27 -0700)]
Add explanation for #[must_use] on mutex guards

6 years agoAdd explanation for #[must_use] on Debug builders
Manish Goregaokar [Mon, 7 May 2018 16:26:03 +0000 (09:26 -0700)]
Add explanation for #[must_use] on Debug builders

6 years agoAdd explanation for #[must_use] on Result
Manish Goregaokar [Mon, 7 May 2018 16:18:12 +0000 (09:18 -0700)]
Add explanation for #[must_use] on Result

6 years agoMake SelectionCache and EvaluationCache thread-safe
John Kåre Alsaker [Sun, 1 Apr 2018 06:14:58 +0000 (08:14 +0200)]
Make SelectionCache and EvaluationCache thread-safe

6 years agoAdded regression function match value test, closes #44333
Aaron Power [Mon, 7 May 2018 14:44:28 +0000 (15:44 +0100)]
Added regression function match value test, closes #44333

6 years agoUpdate clippy 0.0.197
Alex Butler [Mon, 7 May 2018 15:03:42 +0000 (16:03 +0100)]
Update clippy 0.0.197

6 years agoAuto merge of #50454 - Manishearth:edition-preview-fixes, r=alexcrichton
bors [Mon, 7 May 2018 14:54:17 +0000 (14:54 +0000)]
Auto merge of #50454 - Manishearth:edition-preview-fixes, r=alexcrichton

Various edition preview fixes

Implement a bunch of things discussed in the meeting.

6 years agoUpdate rls 1263f1f
Alex Butler [Mon, 7 May 2018 14:23:24 +0000 (15:23 +0100)]
Update rls 1263f1f

Fix rls-clippy feature compile

6 years ago./x.py test should be able to run individual tests
Collins Abitekaniza [Thu, 12 Apr 2018 11:49:31 +0000 (14:49 +0300)]
./x.py test should be able to run individual tests

trim and pass relative test paths as test-args

use collect for getting test_args

move suite_path to ShouldRun and make Option

append existing args to test_args

use enum for PathSet

handle Suites differently from Paths

Error out if part of test suite but not file

refactor, make requested changes

6 years agoAuto merge of #50487 - nikic:heap-manually-drop, r=Gankro
bors [Mon, 7 May 2018 12:30:55 +0000 (12:30 +0000)]
Auto merge of #50487 - nikic:heap-manually-drop, r=Gankro

Use ManuallyDrop instead of Option in BinaryHeap Hole implementation

The Option is always Some until drop, where it becomes None. Make this more explicit and avoid unwraps by using ManuallyDrop.

This change should be performance-neutral as LLVM already optimizes the unwraps away in the inlined code. However I've seen this pattern copied from here to other crates where it is not optimized away, so I think it would be good to change it.

6 years agoUnpin: Fix references to Pin type
Ralf Jung [Mon, 7 May 2018 12:30:29 +0000 (14:30 +0200)]
Unpin: Fix references to Pin type

6 years agoRename PinMut::borrow to PinMut::reborrow and make it a method
Ralf Jung [Mon, 7 May 2018 11:56:24 +0000 (13:56 +0200)]
Rename PinMut::borrow to PinMut::reborrow and make it a method

6 years agoPinMut::get_mut can also preserve the lifetime
Ralf Jung [Mon, 7 May 2018 11:20:30 +0000 (13:20 +0200)]
PinMut::get_mut can also preserve the lifetime

6 years agoChange PinMut::map to be able to preserve the original reference's lifetime
Ralf Jung [Mon, 7 May 2018 10:51:59 +0000 (12:51 +0200)]
Change PinMut::map to be able to preserve the original reference's lifetime

Suggested by @dylanede at <https://github.com/rust-lang/rust/issues/49150#issuecomment-381071442>.

6 years agoRename Pin to PinMut
Ralf Jung [Mon, 7 May 2018 10:44:26 +0000 (12:44 +0200)]
Rename Pin to PinMut

As discussed at [1] §3 and [2] and [3], a formal look at pinning requires considering a
distinguished "shared pinned" mode/typestate.  Given that, it seems desirable to
at least eventually actually expose that typestate as a reference type.  This
renames Pin to PinMut, freeing the name Pin in case we want to use it for a
shared pinned reference later on.

[1] https://www.ralfj.de/blog/2018/04/10/safe-intrusive-collections-with-pinning.html
[2] https://github.com/rust-lang/rfcs/pull/2349#issuecomment-379250361
[3] https://github.com/rust-lang/rust/issues/49150#issuecomment-380488275

6 years agoPrevent infinite recursion of modules
Guillaume Gomez [Sat, 28 Apr 2018 19:56:38 +0000 (21:56 +0200)]
Prevent infinite recursion of modules

6 years agoUpdate RELEASES.md
Aaron Power [Mon, 7 May 2018 10:37:36 +0000 (11:37 +0100)]
Update RELEASES.md

6 years agomake the const constructor unstable
Jorge Aparicio [Mon, 7 May 2018 10:11:22 +0000 (12:11 +0200)]
make the const constructor unstable

6 years agoAuto merge of #50000 - michaelwoerister:cross-lang-lto, r=alexcrichton
bors [Mon, 7 May 2018 08:41:07 +0000 (08:41 +0000)]
Auto merge of #50000 - michaelwoerister:cross-lang-lto, r=alexcrichton

Add some groundwork for cross-language LTO.

Implements part of #49879:
- Adds a `-Z cross-lang-lto` flag to rustc
- Makes sure that bitcode is embedded in object files if the flag is set.

This should already allow for using cross language LTO for staticlibs (where one has to invoke the linker manually anyway). However, `rustc` will not try to enable LTO for its own linker invocations yet.

r? @alexcrichton

6 years agoFix Mac OS section name for LLVM bitcode.
Michael Woerister [Mon, 7 May 2018 07:52:38 +0000 (09:52 +0200)]
Fix Mac OS section name for LLVM bitcode.

6 years agoAuto merge of #50437 - zackmdavis:must_note, r=estebank
bors [Mon, 7 May 2018 06:27:01 +0000 (06:27 +0000)]
Auto merge of #50437 - zackmdavis:must_note, r=estebank

in which the must-use additional messaging is tucked into a note

_I_ think it looks better this way! What do _you_ think??

![must_use_note](https://user-images.githubusercontent.com/1076988/39612597-b6dd2dae-4f15-11e8-87ec-ab9da21ef062.png)

r? @estebank

6 years agoin which the must-use additional messaging is tucked into a note
Zack M. Davis [Fri, 4 May 2018 04:01:57 +0000 (21:01 -0700)]
in which the must-use additional messaging is tucked into a note

Also, a comment is edited to reflect that spaces around the equals-sign in
attributes is the standard (q.v. rust-lang-nursery/fmt-rfcs@bea80532e7).

6 years agoAuto merge of #50434 - nrc:tool-bustage-infra, r=alexcrichton
bors [Mon, 7 May 2018 03:47:41 +0000 (03:47 +0000)]
Auto merge of #50434 - nrc:tool-bustage-infra, r=alexcrichton

Ping infra team on all tool bustage

r? @kennytm

cc @rust-lang/core as discussed at today's meeting

6 years agosave-analysis: emit correct docs for methods
Nick Cameron [Sun, 6 May 2018 23:43:34 +0000 (11:43 +1200)]
save-analysis: emit correct docs for methods

cc https://github.com/rust-lang-nursery/rls/issues/446

6 years agoAuto merge of #50468 - nrc:test-rustfmt, r=alexcrichton
bors [Sun, 6 May 2018 22:29:01 +0000 (22:29 +0000)]
Auto merge of #50468 - nrc:test-rustfmt, r=alexcrichton

Pass a test directory to rustfmt

Another attempt to fix the rustfmt tests. `RUSTFMT_TEST_DIR` is consumed by Rustfmt in the latext commit (thus the Rustfmt update) because we need a place to create temp files that won't be read-only.

r? @alexcrichton

6 years agoAuto merge of #50309 - samWson:issue-49938, r=eddyb
bors [Sun, 6 May 2018 17:47:30 +0000 (17:47 +0000)]
Auto merge of #50309 - samWson:issue-49938, r=eddyb

Issue 49938: Reference tagged unions discr(iminant) as tag

Here the changes reference the Tagged type _discriminant_ as _tag_ instead. This is the correct terminology when referencing how tagged unions are represented in memory.

6 years agoAuto merge of #50474 - sinkuu:fix_assert_ice, r=alexcrichton
bors [Sun, 6 May 2018 15:17:13 +0000 (15:17 +0000)]
Auto merge of #50474 - sinkuu:fix_assert_ice, r=alexcrichton

Fix ICE in assertion macro

Fixes #50471. Needs beta-backport (stable-to-beta/nightly regression).

* `panic` with single argument does not need escaping `{` and `}`
* Instead of unescaping `\u{...}` manually, just use `escape_debug` in pprust

6 years agoUse ManuallyDrop instead of Option in Hole implementation
Nikita Popov [Sun, 6 May 2018 14:55:04 +0000 (16:55 +0200)]
Use ManuallyDrop instead of Option in Hole implementation

The Option is always Some until drop, where it becomes None. Make
this more explicit and avoid unwraps by using ManuallyDrop.

This change should be performance-neutral as LLVM already optimizes
the unwraps away in the inlined code.

6 years agoAuto merge of #50420 - chrisvittal:mailmap-chrisvittal, r=oli-obk
bors [Sun, 6 May 2018 12:44:15 +0000 (12:44 +0000)]
Auto merge of #50420 - chrisvittal:mailmap-chrisvittal, r=oli-obk

Add mailmap entry for Chris Vittal

I use both Chris and Christopher in git configs and other places.

6 years agoAuto merge of #50466 - kennytm:rustbuild-stage0-lib-test, r=Mark-Simulacrum
bors [Sun, 6 May 2018 06:33:53 +0000 (06:33 +0000)]
Auto merge of #50466 - kennytm:rustbuild-stage0-lib-test, r=Mark-Simulacrum

rustbuild: Allow quick testing of libstd and libcore at stage0

This PR implemented two features:

1. Added a `--no-doc` flag to allow testing a crate *without* doc tests. In this mode, we don't need to build rustdoc, and thus we can skip building the stage2 compiler. (Ideally stage0 test should use the bootstrap rustdoc, but I don't want to mess up the core builder logic here)

2. Moved all libcore tests externally and added a tidy test to ensure we don't accidentally add `#[test]` into libcore.

After this PR, one could run `./x.py test --stage 0 --no-doc src/libstd` to test `libstd` without building the compiler, thus enables us to quickly test new library features.

6 years agoAuto merge of #50453 - alexcrichton:proc-macro-not-send, r=eddyb
bors [Sun, 6 May 2018 04:15:02 +0000 (04:15 +0000)]
Auto merge of #50453 - alexcrichton:proc-macro-not-send, r=eddyb

proc_macro: Explicitly make everything !Send/Sync

This commit adds explicit imp blocks to ensure that all publicly exported types
(except simple enums) are not `Send` nor `Sync` in the `proc_macro` crate.

cc #38356

6 years agoFix assertion message generation
Shotaro Yamada [Sun, 6 May 2018 01:55:10 +0000 (10:55 +0900)]
Fix assertion message generation

6 years agoissue-49938: Reference tagged unions discr(iminant) as tag
Samuel Wilson [Fri, 4 May 2018 10:32:08 +0000 (22:32 +1200)]
issue-49938: Reference tagged unions discr(iminant) as tag

Refer https://github.com/rust-lang/rust/issues/49938

Previously tagged unions' tag was refered to as a discr(iminant).
Here the changes use tag instead which is the correct terminology
when refering to the memory representation of tagged unions.

6 years agoAuto merge of #50470 - frewsxcv:frewsxcv-update-books, r=Mark-Simulacrum
bors [Sat, 5 May 2018 23:46:16 +0000 (23:46 +0000)]
Auto merge of #50470 - frewsxcv:frewsxcv-update-books, r=Mark-Simulacrum

Update books for the next release.

Continuation from https://github.com/rust-lang/rust/pull/50427

6 years agoUpdate books for the next release.
Corey Farwell [Sat, 5 May 2018 23:02:13 +0000 (19:02 -0400)]
Update books for the next release.

6 years agoAuto merge of #50444 - michaelwoerister:check-parallel-queries-in-ci, r=alexcrichton
bors [Sat, 5 May 2018 21:09:56 +0000 (21:09 +0000)]
Auto merge of #50444 - michaelwoerister:check-parallel-queries-in-ci, r=alexcrichton

Add a CI job that makes sure rustc builds with parallel queries enabled.

This shouldn't take up too much CI time `:)`

cc https://github.com/rust-lang/rust/issues/48607
cc @Zoxc

r? @alexcrichton

6 years agoPass a test directory to rustfmt
Nick Cameron [Sat, 5 May 2018 20:27:48 +0000 (08:27 +1200)]
Pass a test directory to rustfmt

6 years agos/DocTestsOption/DocTests/g
kennytm [Sat, 5 May 2018 19:30:42 +0000 (03:30 +0800)]
s/DocTestsOption/DocTests/g

6 years agoAdded some simple documentation.
kennytm [Sat, 5 May 2018 19:29:19 +0000 (03:29 +0800)]
Added some simple documentation.

6 years agoAuto merge of #50276 - Zoxc:build-cleanup, r=alexcrichton
bors [Sat, 5 May 2018 18:58:17 +0000 (18:58 +0000)]
Auto merge of #50276 - Zoxc:build-cleanup, r=alexcrichton

Misc tweaks

This:
- ~~Add explicit dependencies on `getops`~~
- Fixes the libtest-json test when `RUST_BACKTRACE=1` is set
- ~~Sets `opt-level` to `3`~~
- Removes the use of `staged_api` from `rustc_plugin`
- ~~Enables the Windows Error Reporting dialog when running rustc during bootstrapping~~
- Disables Windows Error Reporting dialog when running compiletest tests
- Enables backtraces when running rustc during bootstrapping
- ~~Removes the `librustc` dependency on `libtest`~~
- Triggers JIT debugging on Windows if rustc panics during bootstrapping

r? @alexcrichton

6 years agoMisc tweaks
John Kåre Alsaker [Sun, 8 Apr 2018 11:44:29 +0000 (13:44 +0200)]
Misc tweaks

6 years agoSome final touches to ensure `./x.py test --stage 0 src/lib*` works
kennytm [Sat, 5 May 2018 17:02:05 +0000 (01:02 +0800)]
Some final touches to ensure `./x.py test --stage 0 src/lib*` works

6 years agoAdded a tidy test to ensure libcore cannot contain any tests.
kennytm [Sat, 5 May 2018 16:54:12 +0000 (00:54 +0800)]
Added a tidy test to ensure libcore cannot contain any tests.

6 years agoMove the tests in src/libcore/slice/memchr.rs as well.
kennytm [Sat, 5 May 2018 16:53:48 +0000 (00:53 +0800)]
Move the tests in src/libcore/slice/memchr.rs as well.

6 years agoFix warning in `core::time` tests
Lukas Kalbertodt [Tue, 1 May 2018 13:07:15 +0000 (15:07 +0200)]
Fix warning in `core::time` tests

6 years agoMove libcore/time tests from `time.rs` to `tests/time.rs`
Lukas Kalbertodt [Tue, 1 May 2018 11:43:05 +0000 (13:43 +0200)]
Move libcore/time tests from `time.rs` to `tests/time.rs`

All other tests of libcore reside in the tests/ directory,
too. Apparently the tests of `time.rs` weren't run before, at
least not by `x.py test src/libcore`.

6 years agoAdded test case.
kennytm [Sat, 5 May 2018 18:33:01 +0000 (02:33 +0800)]
Added test case.

6 years agoRemove some transmutes
est31 [Sat, 5 May 2018 17:45:22 +0000 (19:45 +0200)]
Remove some transmutes

6 years agoAdded `./x.py test --no-doc` option.
kennytm [Sat, 5 May 2018 16:04:06 +0000 (00:04 +0800)]
Added `./x.py test --no-doc` option.

This enables `./x.py test --stage 0 src/libstd --no-doc` and ensures the
stage2-rustc and rustdoc need to be built.

6 years agoAuto merge of #50441 - kornelski:debughint, r=kornelski
bors [Sat, 5 May 2018 14:29:42 +0000 (14:29 +0000)]
Auto merge of #50441 - kornelski:debughint, r=kornelski

Suggest more helpful formatting string

Based on [user feedback](https://users.rust-lang.org/t/ux-feedback-from-a-rust-newbie/17220) the minimal suggestion of `:?` is unclear.

Also `{:#?}` is much more readable than the standard debug, so this PR suggests it to help surface this nice feature.

6 years agoAuto merge of #50370 - nikomatsakis:nll-alias-analysis-flat, r=pnkfelix
bors [Sat, 5 May 2018 11:05:23 +0000 (11:05 +0000)]
Auto merge of #50370 - nikomatsakis:nll-alias-analysis-flat, r=pnkfelix

introduce `-Znll-facts` to dump base-facts for the NLL analysis

r? @pnkfelix

6 years agoSuggest more helpful formatting string
Kornel [Fri, 4 May 2018 11:43:52 +0000 (12:43 +0100)]
Suggest more helpful formatting string

6 years agoFix paths search
Guillaume Gomez [Thu, 3 May 2018 20:20:57 +0000 (22:20 +0200)]
Fix paths search

6 years agoadd a comment about Locations::All
Niko Matsakis [Fri, 4 May 2018 18:26:53 +0000 (14:26 -0400)]
add a comment about Locations::All

6 years agoremove `#[allow(dead_code)]`
Niko Matsakis [Tue, 1 May 2018 19:00:31 +0000 (15:00 -0400)]
remove `#[allow(dead_code)]`

6 years agoadd `-Znll-facts` switch that dumps facts for new analysis
Niko Matsakis [Tue, 1 May 2018 14:49:11 +0000 (10:49 -0400)]
add `-Znll-facts` switch that dumps facts for new analysis

6 years agoadd location table
Niko Matsakis [Tue, 1 May 2018 14:03:36 +0000 (10:03 -0400)]
add location table

This will be used in fact generation.

6 years agoadd `Locations::All` as a concept
Niko Matsakis [Tue, 1 May 2018 14:50:05 +0000 (10:50 -0400)]
add `Locations::All` as a concept

In particular, type annotations given by the user must hold at all
points in the program. This doesn't affect current analysis but
will affect fact generation later.

6 years agouse `crate` visibility modifier
Niko Matsakis [Tue, 1 May 2018 14:48:04 +0000 (10:48 -0400)]
use `crate` visibility modifier

6 years agoadd `Location::START` const
Niko Matsakis [Tue, 1 May 2018 13:46:11 +0000 (09:46 -0400)]
add `Location::START` const