]> git.lizzy.rs Git - rust.git/log
rust.git
6 years agoAuto merge of #47251 - rkruppe:rm-simd-attr, r=eddyb
bors [Sat, 13 Jan 2018 15:29:31 +0000 (15:29 +0000)]
Auto merge of #47251 - rkruppe:rm-simd-attr, r=eddyb

Remove deprecated unstable attribute #[simd]

The `#[simd]` attribute has been deprecated since c8b6d5b23cc8b2d43ece9f06252c7e98280fb8e5 back in 2015. Any nightly crates using it have had ample time to switch to `#[repr(simd)]`, and if they didn't they're likely broken by now anyway.

r? @eddyb

6 years agoAuto merge of #47242 - estebank:issue-15980, r=petrochenkov
bors [Sat, 13 Jan 2018 12:42:33 +0000 (12:42 +0000)]
Auto merge of #47242 - estebank:issue-15980, r=petrochenkov

`struct` pattern parsing and diagnostic tweaks

 - Recover from struct parse error on match and point out missing match
   body.
 - Point at struct when finding non-identifier while parsing its fields.
 - Add label to "expected identifier, found {}" error.

Fix #15980.

6 years agoAuto merge of #47181 - michaelwoerister:var-len-def-index, r=eddyb
bors [Sat, 13 Jan 2018 09:11:59 +0000 (09:11 +0000)]
Auto merge of #47181 - michaelwoerister:var-len-def-index, r=eddyb

Use DefIndex encoding that works better with on-disk variable length integer representations.

Use the least instead of the most significant bit for representing the address space.

r? @eddyb

6 years agoAuto merge of #46592 - o01eg:fix-45345, r=alexcrichton
bors [Sat, 13 Jan 2018 05:02:04 +0000 (05:02 +0000)]
Auto merge of #46592 - o01eg:fix-45345, r=alexcrichton

Fix 45345

There is a fix for https://github.com/rust-lang/rust/issues/45345

It re-introduces `CFG_LIBDIR_RELATIVE` which was broken when migration from `configure` script to `x.py`.

Other commits fix errors which happen after rustbuild cleanups.

6 years agoAuto merge of #46461 - zackmdavis:elemental_method_suggestion_jamboree, r=estebank
bors [Sat, 13 Jan 2018 02:15:19 +0000 (02:15 +0000)]
Auto merge of #46461 - zackmdavis:elemental_method_suggestion_jamboree, r=estebank

 type error method suggestions use whitelisted identity-like conversions

![method_jamboree_summit](https://user-images.githubusercontent.com/1076988/33523646-e5c43184-d7c0-11e7-98e5-1bff426ade86.png)

Previously, on a type mismatch (and if this wasn't preëmpted by a
higher-priority suggestion), we would look for argumentless methods
returning the expected type, and list them in a `help` note. This had two
major shortcomings: firstly, a lot of the suggestions didn't really make
sense (if you used a &str where a String was expected,
`.to_ascii_uppercase()` is probably not the solution you were hoping
for). Secondly, we weren't generating suggestions from the most useful
traits! We address the first problem with an internal
`#[rustc_conversion_suggestion]` attribute meant to mark methods that keep
the "same value" in the relevant sense, just converting the type. We
address the second problem by making `FnCtxt.probe_for_return_type` pass
the `ProbeScope::AllTraits` to `probe_op`: this would seem to be safe
because grep reveals no other callers of `probe_for_return_type`.

Also, structured suggestions are pretty and good for RLS and friends.

Unfortunately, the trait probing is still not all one would hope for: at a
minimum, we don't know how to rule out `into()` in cases where it wouldn't
actually work, and we don't know how to rule in `.to_owned()` where it
would. Issues #46459 and #46460 have been filed and are ref'd in a FIXME.

This is hoped to resolve #42929, #44672, and #45777.

6 years agoAuto merge of #47392 - kennytm:rollup, r=kennytm
bors [Fri, 12 Jan 2018 20:28:19 +0000 (20:28 +0000)]
Auto merge of #47392 - kennytm:rollup, r=kennytm

Rollup of 24 pull requests

- Successful merges: #46985, #47069, #47081, #47185, #47282, #47283, #47288, #47289, #47298, #47305, #47306, #47307, #47310, #47324, #47328, #47331, #47340, #47343, #47344, #47352, #47357, #47365, #47375, #47382
- Failed merges: #47334

6 years agoRollup merge of #47382 - topecongiro:issue-43105, r=eddyb
kennytm [Fri, 12 Jan 2018 18:26:45 +0000 (02:26 +0800)]
Rollup merge of #47382 - topecongiro:issue-43105, r=eddyb

Ignore CTFE errors while lowering patterns

Closes #43105.

r? @eddyb

6 years agoRollup merge of #47375 - overvenus:duration-examples, r=dtolnay
kennytm [Fri, 12 Jan 2018 18:26:44 +0000 (02:26 +0800)]
Rollup merge of #47375 - overvenus:duration-examples, r=dtolnay

Fix examples of Duration::subsec_millis and Duration::subsec_micros

Update examples of `Duration::subsec_millis` and `Duration::subsec_micros`, because they are not for these two methods actually.

6 years agoRollup merge of #47365 - Diggsey:issue-42630, r=alexcrichton
kennytm [Fri, 12 Jan 2018 18:26:43 +0000 (02:26 +0800)]
Rollup merge of #47365 - Diggsey:issue-42630, r=alexcrichton

Re-enable num tests on wasm

Issue #42630 was closed but the tests are still ignored, supposedly they should pass now.

6 years agoRollup merge of #47357 - whentze:osstr-doc-fix, r=GuillaumeGomez
kennytm [Fri, 12 Jan 2018 18:26:42 +0000 (02:26 +0800)]
Rollup merge of #47357 - whentze:osstr-doc-fix, r=GuillaumeGomez

Fix docs for OsStr

At present, there are two small issues with the [docs](https://doc.rust-lang.org/std/ffi/struct.OsStr.html) for std::ffi::OsStr:
- The docs say "OsStr is to OsString as String is to &str: the former in each pair are borrowed references; the latter are owned strings.". The latter pair is mixed up: String is the owned variant whereas &str is the borrowed reference.
- The doc links to String and &str are broken and render as [String] and [&str].

This PR fixes these issues.

6 years agoRollup merge of #47352 - EdSchouten:cloudabi-libtest, r=kennytm
kennytm [Fri, 12 Jan 2018 18:26:41 +0000 (02:26 +0800)]
Rollup merge of #47352 - EdSchouten:cloudabi-libtest, r=kennytm

Make libtest build on CloudABI.

Just like on UNIX systems, we need to use sysconf() to obtain the number
of CPUs. Extend the existing cfg()'s to match CloudABI as well.

6 years agoRollup merge of #47344 - topecongiro:fixed-ices, r=alexcrichton
kennytm [Fri, 12 Jan 2018 18:26:40 +0000 (02:26 +0800)]
Rollup merge of #47344 - topecongiro:fixed-ices, r=alexcrichton

Add tests to fixed issues.

Closes #36792. Closes #38091. Closes #39687. Closes #42148. Closes #42956.

6 years agoRollup merge of #47343 - goffrie:master, r=jseyfried
kennytm [Fri, 12 Jan 2018 18:26:39 +0000 (02:26 +0800)]
Rollup merge of #47343 - goffrie:master, r=jseyfried

Glued tokens can themselves be joint.

When gluing two tokens, the second of which is joint, the result should also be
joint.
This fixes an issue with joining three `Dot` tokens to make a `DotDotDot` - the
intermediate `DotDot` would not be joint and therefore we would not attempt to
glue the last `Dot` token, yielding `.. .` instead of `...`.

r? @jseyfried

6 years agoRollup merge of #47340 - alercah:typo-fix, r=GuillaumeGomez
kennytm [Fri, 12 Jan 2018 18:26:38 +0000 (02:26 +0800)]
Rollup merge of #47340 - alercah:typo-fix, r=GuillaumeGomez

Fix typo.

6 years agoRollup merge of #47331 - michaelwoerister:measure-depgraph-loading, r=alexcrichton
kennytm [Fri, 12 Jan 2018 18:26:37 +0000 (02:26 +0800)]
Rollup merge of #47331 - michaelwoerister:measure-depgraph-loading, r=alexcrichton

Add -Ztime-passes line for dep-graph loading.

We measure how much time the background thread spends on loading the dep-graph but not how long the main thread is blocked while the background thread is still working. Let's change that!

6 years agoRollup merge of #47328 - mbrubeck:fs_read, r=sfackler
kennytm [Fri, 12 Jan 2018 18:26:35 +0000 (02:26 +0800)]
Rollup merge of #47328 - mbrubeck:fs_read, r=sfackler

Use the new fs_read_write functions in rustc internals

Uses `fs::read` and `fs::write` (added by #45837) where appropriate, to simplify code and dog-food these new APIs.  This also improves performance, when combined with #47324.

6 years agoRollup merge of #47324 - mbrubeck:len, r=sfackler
kennytm [Fri, 12 Jan 2018 18:26:35 +0000 (02:26 +0800)]
Rollup merge of #47324 - mbrubeck:len, r=sfackler

Pre-allocate in fs::read and fs::read_string

This is a simpler alternative to #46340 and #45928, as requested by the libs team.

6 years agoRollup merge of #47310 - bmusin:patch-1, r=sfackler
kennytm [Fri, 12 Jan 2018 18:26:34 +0000 (02:26 +0800)]
Rollup merge of #47310 - bmusin:patch-1, r=sfackler

fix typo rwlock.rs

Hi. Fixed typo: contained -> content

6 years agoRollup merge of #47307 - dlrobertson:fix_panic_strings, r=kennytm
kennytm [Fri, 12 Jan 2018 18:26:33 +0000 (02:26 +0800)]
Rollup merge of #47307 - dlrobertson:fix_panic_strings, r=kennytm

Fix panic strings.

 - Fix panic string in `check_ast_crate`.
 - Update panic string for Duration subtraction on overflow/underflow.

Not sure if the changes to `Duration` are helpful/needed. Mostly just a nit.
Otherwise this is just a one character change :)

On another note: I hit the panic in `check_ast_crate` when compiling
[m-labs/smoltcp] with the following:

```
cargo test --doc --no-default-features --features "std socket-raw"`
```

[m-labs/smoltcp]: https://github.com/m-labs/smoltcp

6 years agoRollup merge of #47306 - alexreg:dataflow-analysis, r=eddyb
kennytm [Fri, 12 Jan 2018 18:26:32 +0000 (02:26 +0800)]
Rollup merge of #47306 - alexreg:dataflow-analysis, r=eddyb

Don't track local_needs_drop separately in qualify_consts.

None

6 years agoRollup merge of #47305 - cramertj:better-calendar-alone, r=eddyb
kennytm [Fri, 12 Jan 2018 18:26:31 +0000 (02:26 +0800)]
Rollup merge of #47305 - cramertj:better-calendar-alone, r=eddyb

Use copy/clone closures to simplify calendar test

Split out from #47304

r? @eddyb

6 years agoRollup merge of #47298 - cramertj:path-as-modrs, r=nikomatsakis
kennytm [Fri, 12 Jan 2018 18:26:30 +0000 (02:26 +0800)]
Rollup merge of #47298 - cramertj:path-as-modrs, r=nikomatsakis

Treat #[path] files as mod.rs files

Fixes https://github.com/rust-lang/rust/issues/46936, cc @briansmith, @SergioBenitez, @nikomatsakis.

This (insta-stable) change treats files included via `#[path = "bla.rs"] mod foo;` as though they were `mod.rs` files. Namely, it allows them to include `mod` statements and looks for the child modules in sibling directories, rather than in relative `modname/childmodule.rs` files as happens for non-`mod.rs` files.

This change makes the `non_modrs_mods` feature backwards compatible with the existing usage in https://github.com/briansmith/ring, several versions of which are currently broken in beta. If we decide to merge, this change should be backported to beta.

cc https://github.com/rust-lang/rust/issues/37872

r? @jseyfried

6 years agoRollup merge of #47289 - etaoins:skip-linker-output-non-utf8-test-on-apple, r=kennytm
kennytm [Fri, 12 Jan 2018 18:26:29 +0000 (02:26 +0800)]
Rollup merge of #47289 - etaoins:skip-linker-output-non-utf8-test-on-apple, r=kennytm

Skip linker-output-non-utf8 test on Apple

This test fails on APFS filesystems with the following error:

```shell
mkdir: /Users/ryan/Code/rust/build/x86_64-apple-darwin/test/run-make/linker-output-non-utf8.stage2-x86_64-apple-darwin/zzz�: Illegal byte sequence
```

The mkdir does succeed on an HFS+ volume mounted on the same system:
```shell
$ mkdir zzz$$'\xff'
$ ls
zzz47432\xff
```

This is due to APFS now requiring that all paths are valid UTF-8. As APFS will be the default filesystem for all new Darwin-based systems the most straightforward fix is to skip this test on Darwin as well as Windows.

6 years agoRollup merge of #47288 - cuviper:jobserver-pipe2, r=alexcrichton
kennytm [Fri, 12 Jan 2018 18:26:28 +0000 (02:26 +0800)]
Rollup merge of #47288 - cuviper:jobserver-pipe2, r=alexcrichton

Update jobserver to 0.1.9

Fix for `ENOSYS` when calling `pipe2`, alexcrichton/jobserver-rs#5.

r? @alexcrichton

6 years agoRollup merge of #47283 - malbarbo:musl-1.1.18, r=alexcrichton
kennytm [Fri, 12 Jan 2018 18:26:27 +0000 (02:26 +0800)]
Rollup merge of #47283 - malbarbo:musl-1.1.18, r=alexcrichton

Update musl to 1.1.18

According to http://www.musl-libc.org/download.html:

This release corrects regressions in glob() and armv4t build failure
introduced in the previous release, and includes an important bug fix
for posix_spawnp in the presence of a large PATH environment variable.

6 years agoRollup merge of #47282 - malbarbo:i586-musl, r=alexcrichton
kennytm [Fri, 12 Jan 2018 18:26:26 +0000 (02:26 +0800)]
Rollup merge of #47282 - malbarbo:i586-musl, r=alexcrichton

Add i586-unknown-linux-musl target

6 years agoRollup merge of #47185 - ritiek:ui-test-failed-output, r=nikomatsakis
kennytm [Fri, 12 Jan 2018 18:26:25 +0000 (02:26 +0800)]
Rollup merge of #47185 - ritiek:ui-test-failed-output, r=nikomatsakis

Show only stderr diff when a ui test fails

Addresses #46826.

This PR will print the normalized output if expected text is empty otherwise it will just print the diff.

Should we also show a few (actual == expected) lines above & below when displaying the diff? What about indicating line numbers as well so one can quickly check mismatch lines in .stderr file?

6 years agoRollup merge of #47081 - pietroalbini:fix-nested-tree-dump, r=nrc
kennytm [Fri, 12 Jan 2018 18:26:24 +0000 (02:26 +0800)]
Rollup merge of #47081 - pietroalbini:fix-nested-tree-dump, r=nrc

Fix nested imports not included in the save_analysis output

This PR fixes #46823.

The bug was caused by the old access level checking code, which checked against the root UseTree even for nested trees. The problem with that is, for nested trees the root is lowered as an empty `ListStem`, which is not reachable by definition. The new code computes the access level with each tree's own ID, and with the root tree's visibility.

I tested this manually and it works, but I'm not really satisfied with that. I looked at the existing tests though, and no one checked for the save_analysis output as far as I can see. How should I proceed with that? I think having a test about this would be really nice.

6 years agoRollup merge of #47069 - Kagamihime:master, r=nrc
kennytm [Fri, 12 Jan 2018 18:26:23 +0000 (02:26 +0800)]
Rollup merge of #47069 - Kagamihime:master, r=nrc

rustfmt libarena/lib.rs

Note: it's my very first pull request. I'm trying to do something very simple to see how it works here, even if it's a tiny change or maybe it's not correct (sorry if it is the case).

r? @nrc

6 years agoRollup merge of #46985 - Diggsey:path-component-asref, r=alexcrichton
kennytm [Fri, 12 Jan 2018 18:26:22 +0000 (02:26 +0800)]
Rollup merge of #46985 - Diggsey:path-component-asref, r=alexcrichton

Implement AsRef<Path> for Component

Fixes #41866

6 years agoUse delay_span_bug() over debug!()
Seiichi Uchida [Fri, 12 Jan 2018 15:54:56 +0000 (00:54 +0900)]
Use delay_span_bug() over debug!()

6 years agoIgnore CTFE errors while lowering patterns
Seiichi Uchida [Fri, 12 Jan 2018 10:54:52 +0000 (19:54 +0900)]
Ignore CTFE errors while lowering patterns

Closes #43105.

6 years agoAuto merge of #46551 - jseyfried:improve_legacy_modern_macro_interaction, r=nrc
bors [Fri, 12 Jan 2018 10:00:09 +0000 (10:00 +0000)]
Auto merge of #46551 - jseyfried:improve_legacy_modern_macro_interaction, r=nrc

macros: improve 1.0/2.0 interaction

This PR supports using unhygienic macros from hygienic macros without breaking the latter's hygiene.
```rust
// crate A:
#[macro_export]
macro_rules! m1 { () => {
    f(); // unhygienic: this macro needs `f` in its environment
    fn g() {} // (1) unhygienic: `g` is usable outside the macro definition
} }

// crate B:
#![feature(decl_macro)]
extern crate A;
use A::m1;

macro m2() {
    fn f() {} // (2)
    m1!(); // After this PR, `f()` in the expansion resolves to (2), not (3)
    g(); // After this PR, this resolves to `fn g() {}` from the above expansion.
         // Today, it is a resolution error.
}

fn test() {
    fn f() {} // (3)
    m2!(); // Today, `m2!()` can see (3) even though it should be hygienic.
    fn g() {} // Today, this conflicts with `fn g() {}` from the expansion, even though it should be hygienic.
}
```

Once this PR lands, you can make an existing unhygienic macro hygienic by wrapping it in a hygienic macro. There is an [example](https://github.com/rust-lang/rust/pull/46551/commits/b766fa887dc0e4b923a38751fe4d570e35a75710) of this in the tests.

r? @nrc

6 years agoRemove unused configuration parameter `libdir_relative`.
O01eg [Sat, 16 Dec 2017 19:48:45 +0000 (22:48 +0300)]
Remove unused configuration parameter `libdir_relative`.

6 years agoRemove unused argument `rustc_cargo`.
O01eg [Mon, 25 Dec 2017 21:00:09 +0000 (00:00 +0300)]
Remove unused argument `rustc_cargo`.

6 years agoAdd library path for real rustdoc with `RUSTDOC_LIBDIR` environment variable.
O01eg [Fri, 12 Jan 2018 07:04:02 +0000 (10:04 +0300)]
Add library path for real rustdoc with `RUSTDOC_LIBDIR` environment variable.

6 years agoFix Duration::subsec_millis and Duration::subsec_micros examples
Neil Shen [Fri, 12 Jan 2018 05:38:24 +0000 (13:38 +0800)]
Fix Duration::subsec_millis and Duration::subsec_micros examples

6 years agoBuild all stages with relative libdirs.
O01eg [Thu, 7 Dec 2017 09:27:12 +0000 (12:27 +0300)]
Build all stages with relative libdirs.

6 years agoStage 1 and later use relative libdir.
O01eg [Sun, 3 Dec 2017 21:51:59 +0000 (00:51 +0300)]
Stage 1 and later use relative libdir.

6 years agoAccept verbosity in rustdoc.
O01eg [Sun, 3 Dec 2017 11:09:12 +0000 (14:09 +0300)]
Accept verbosity in rustdoc.

6 years agoFix #45345.
O01eg [Wed, 29 Nov 2017 09:32:03 +0000 (12:32 +0300)]
Fix #45345.

Re-implement

```bash
CFG_LIBDIR_RELATIVE=`echo ${CFG_LIBDIR} | cut -c$((${#CFG_PREFIX}+${CAT_INC}))-`
```

from old `configure` script.

6 years agoEnable num tests on wasm
Diggory Blake [Thu, 11 Jan 2018 21:26:53 +0000 (21:26 +0000)]
Enable num tests on wasm

6 years agos/OsStr/&OsStr in docs to align with &str/String comparison
muvlon [Thu, 11 Jan 2018 21:01:32 +0000 (22:01 +0100)]
s/OsStr/&OsStr in docs to align with &str/String comparison

6 years agoDon't track local_needs_drop separately in qualify_consts (fixes #47351).
Alexander Regueiro [Wed, 10 Jan 2018 02:57:50 +0000 (02:57 +0000)]
Don't track local_needs_drop separately in qualify_consts (fixes #47351).

6 years agoAdd i586-unknown-linux-musl target
Marco A L Barbosa [Thu, 4 Jan 2018 16:55:04 +0000 (14:55 -0200)]
Add i586-unknown-linux-musl target

6 years agoFix dead links in docs for OsStr
muvlon [Thu, 11 Jan 2018 16:20:30 +0000 (17:20 +0100)]
Fix dead links in docs for OsStr

6 years agoFix confusing documentation for OsStr
muvlon [Thu, 11 Jan 2018 16:20:16 +0000 (17:20 +0100)]
Fix confusing documentation for OsStr

6 years agoAuto merge of #47180 - varkor:range-iterator-overrides, r=alexcrichton
bors [Thu, 11 Jan 2018 12:22:54 +0000 (12:22 +0000)]
Auto merge of #47180 - varkor:range-iterator-overrides, r=alexcrichton

Add iterator method specialisations to Range*

Add specialised implementations of `max` for `Range`, and `last`, `min` and `max` for `RangeInclusive`, all of which lead to significant advantages in the generated assembly on x86.

Note that adding specialisations of `min` and `last` for `Range` led to no benefit, and adding `sum` for `Range` and `RangeInclusive` led to type inference issues (though this is possibly still worthwhile considering the performance gain).

This addresses some of the concerns in #39975.

6 years agoMake libtest build on CloudABI.
Ed Schouten [Thu, 11 Jan 2018 10:42:33 +0000 (11:42 +0100)]
Make libtest build on CloudABI.

Just like on UNIX systems, we need to use sysconf() to obtain the number
of CPUs. Extend the existing cfg()'s to match CloudABI as well.

6 years agoAdd tests to fixed issues.
Seiichi Uchida [Thu, 11 Jan 2018 02:57:56 +0000 (11:57 +0900)]
Add tests to fixed issues.

Closes #36792. Closes #38091. Closes #39687. Closes #42148. Closes #42956.

6 years agoAuto merge of #47087 - Zoxc:incr_no_in_ignore, r=michaelwoerister
bors [Thu, 11 Jan 2018 03:24:16 +0000 (03:24 +0000)]
Auto merge of #47087 - Zoxc:incr_no_in_ignore, r=michaelwoerister

Replace uses of DepGraph.in_ignore with DepGraph.with_ignore

I currently plan to track tasks in thread local storage. Ignoring things in a closure ensures that the ignore tasks do not overlap the beginning or end of any other task. The TLS API will also use a closure to change a TLS value, so having the ignore task be a closure also helps there.

It also adds `assert_ignored` which is used before a `TyCtxt` is created. Instead of adding a new ignore task this simply ensures that we are in a context where reads are ignored.

r? @michaelwoerister

6 years agoGlued tokens can themselves be joint.
Geoffry Song [Thu, 11 Jan 2018 01:20:04 +0000 (17:20 -0800)]
Glued tokens can themselves be joint.

When gluing two tokens, the second of which is joint, the result should also be
joint.
This fixes an issue with joining three `Dot` tokens to make a `DotDotDot` - the
intermediate `DotDot` would not be joint and therefore we would not attempt to
glue the last `Dot` token, yielding `.. .` instead of `...`.

6 years agoAuto merge of #47243 - wesleywiser:incr_fingerprint_encoding, r=michaelwoerister
bors [Thu, 11 Jan 2018 00:23:23 +0000 (00:23 +0000)]
Auto merge of #47243 - wesleywiser:incr_fingerprint_encoding, r=michaelwoerister

[incremental] Specialize encoding and decoding of Fingerprints

This saves the storage space used by about 32 bits per `Fingerprint`.
On average, this reduces the size of the `/target/{mode}/incremental`
folder by roughly 5% [Full details here](https://gist.github.com/wesleywiser/264076314794fbd6a4c110d7c1adc43e).

Fixes #45875

r? @michaelwoerister

6 years agoFix typo.
Alexis Hunt [Wed, 10 Jan 2018 22:58:00 +0000 (17:58 -0500)]
Fix typo.

6 years agoUse the new fs_read_write functions in rustc internals
Matt Brubeck [Wed, 10 Jan 2018 16:58:39 +0000 (08:58 -0800)]
Use the new fs_read_write functions in rustc internals

6 years agoFix panic strings.
Dan Robertson [Wed, 10 Jan 2018 03:07:33 +0000 (03:07 +0000)]
Fix panic strings.

 - Fix panic string in `check_ast_crate`.

6 years agoPre-allocate in fs::read and fs::read_string
Matt Brubeck [Wed, 10 Jan 2018 16:06:23 +0000 (08:06 -0800)]
Pre-allocate in fs::read and fs::read_string

6 years agoAdd -Ztime-passes line for dep-graph loading.
Michael Woerister [Wed, 10 Jan 2018 17:23:50 +0000 (18:23 +0100)]
Add -Ztime-passes line for dep-graph loading.

6 years agoAuto merge of #47167 - ivanbakel:builtin_indexing, r=nikomatsakis
bors [Wed, 10 Jan 2018 12:29:05 +0000 (12:29 +0000)]
Auto merge of #47167 - ivanbakel:builtin_indexing, r=nikomatsakis

Fix built-in indexing not being used where index type wasn't "obviously" usize

Fixes #33903
Fixes #46095

This PR was made possible thanks to the generous help of @eddyb

Following the example of binary operators, builtin checking for indexing has been moved from the typecheck stage to a writeback stage, after type constraints have been resolved.

6 years agoAuto merge of #46830 - Diggsey:cursor-vec-mut, r=alexcrichton
bors [Wed, 10 Jan 2018 06:33:31 +0000 (06:33 +0000)]
Auto merge of #46830 - Diggsey:cursor-vec-mut, r=alexcrichton

Implement `Write` for `Cursor<&mut Vec<T>>`

Fixes #30132

r? @dtolnay (I'm just going through `feature-accepted` issues I swear 😛)

6 years agofix typo rwlock.rs
Bulat Musin [Wed, 10 Jan 2018 05:03:10 +0000 (08:03 +0300)]
fix typo rwlock.rs

Hi. Fixed typo: contained -> content

6 years agoAuto merge of #47308 - frewsxcv:rollup, r=frewsxcv
bors [Wed, 10 Jan 2018 03:52:19 +0000 (03:52 +0000)]
Auto merge of #47308 - frewsxcv:rollup, r=frewsxcv

Rollup of 5 pull requests

- Successful merges: #46762, #46777, #47262, #47285, #47301
- Failed merges:

6 years agoRollup merge of #47301 - GuillaumeGomez:fix-error-index-display, r=QuietMisdreavus
Corey Farwell [Wed, 10 Jan 2018 03:28:26 +0000 (22:28 -0500)]
Rollup merge of #47301 - GuillaumeGomez:fix-error-index-display, r=QuietMisdreavus

Fix error index display

Fixes #47284.

r? @QuietMisdreavus

6 years agoRollup merge of #47285 - AndrewBrinker:master, r=kennytm
Corey Farwell [Wed, 10 Jan 2018 03:28:25 +0000 (22:28 -0500)]
Rollup merge of #47285 - AndrewBrinker:master, r=kennytm

Fixed a typo in the compile_error docs

Noticed a typo and fixed it.

6 years agoRollup merge of #47262 - estebank:issue-45562, r=petrochenkov
Corey Farwell [Wed, 10 Jan 2018 03:28:24 +0000 (22:28 -0500)]
Rollup merge of #47262 - estebank:issue-45562, r=petrochenkov

Account for `pub` in `const` -> `static` suggestion

Fix #45562.

6 years agoRollup merge of #46777 - frewsxcv:frewsxcv-rotate, r=alexcrichton
Corey Farwell [Wed, 10 Jan 2018 03:28:23 +0000 (22:28 -0500)]
Rollup merge of #46777 - frewsxcv:frewsxcv-rotate, r=alexcrichton

Deprecate [T]::rotate in favor of [T]::rotate_{left,right}.

Background
==========

Slices currently have an **unstable** [`rotate`] method which rotates
elements in the slice to the _left_ N positions. [Here][tracking] is the
tracking issue for this unstable feature.

```rust
let mut a = ['a', 'b' ,'c', 'd', 'e', 'f'];
a.rotate(2);
assert_eq!(a, ['c', 'd', 'e', 'f', 'a', 'b']);
```

Proposal
========

Deprecate the [`rotate`] method and introduce `rotate_left` and
`rotate_right` methods.

```rust
let mut a = ['a', 'b' ,'c', 'd', 'e', 'f'];
a.rotate_left(2);
assert_eq!(a, ['c', 'd', 'e', 'f', 'a', 'b']);
```

```rust
let mut a = ['a', 'b' ,'c', 'd', 'e', 'f'];
a.rotate_right(2);
assert_eq!(a, ['e', 'f', 'a', 'b', 'c', 'd']);
```

Justification
=============

I used this method today for my first time and (probably because I’m a
naive westerner who reads LTR) was surprised when the docs mentioned that
elements get rotated in a left-ward direction. I was in a situation
where I needed to shift elements in a right-ward direction and had to
context switch from the main problem I was working on and think how much
to rotate left in order to accomplish the right-ward rotation I needed.

Ruby’s `Array.rotate` shifts left-ward, Python’s `deque.rotate` shifts
right-ward. Both of their implementations allow passing negative numbers
to shift in the opposite direction respectively. The current `rotate`
implementation takes an unsigned integer argument which doesn't allow
the negative number behavior.

Introducing `rotate_left` and `rotate_right` would:

- remove ambiguity about direction (alleviating need to read docs 😉)
- make it easier for people who need to rotate right

[`rotate`]: https://doc.rust-lang.org/std/primitive.slice.html#method.rotate
[tracking]: https://github.com/rust-lang/rust/issues/41891

6 years agoRollup merge of #46762 - est31:master, r=alexcrichton
Corey Farwell [Wed, 10 Jan 2018 03:28:22 +0000 (22:28 -0500)]
Rollup merge of #46762 - est31:master, r=alexcrichton

Stabilize the panic_col feature

I've added the panic_col feature in PR #42938.
Now it's time to stabilize it!
Closes #42939.

6 years agoWe have Rust 1.25 now
est31 [Wed, 10 Jan 2018 02:24:24 +0000 (03:24 +0100)]
We have Rust 1.25 now

6 years agoStabilize the panic_col feature
est31 [Sat, 16 Dec 2017 07:54:52 +0000 (08:54 +0100)]
Stabilize the panic_col feature

I've added the panic_col feature in PR #42938.
Now it's time to stabilize it!
Closes #42939.

6 years ago[incremental] Specialize encoding and decoding of Fingerprints
Wesley Wiser [Sat, 23 Dec 2017 03:41:09 +0000 (22:41 -0500)]
[incremental] Specialize encoding and decoding of Fingerprints

This saves the storage space used by about 32 bits per `Fingerprint`.
On average, this reduces the size of the `/target/{mode}/incremental`
folder by roughly 5%.

Fixes #45875

6 years agoAuto merge of #47248 - EdSchouten:cloudabi-liblibc, r=kennytm
bors [Wed, 10 Jan 2018 00:59:00 +0000 (00:59 +0000)]
Auto merge of #47248 - EdSchouten:cloudabi-liblibc, r=kennytm

Upgrade liblibc to upstream version 0.2.35.

This version of liblibc is a prerequisite for getting libstd to build on
CloudABI.

6 years agoUse copy/clone closures to simplify calendar test
Taylor Cramer [Wed, 10 Jan 2018 00:00:12 +0000 (16:00 -0800)]
Use copy/clone closures to simplify calendar test

6 years agoFix typo
Ryan Cumming [Tue, 9 Jan 2018 22:15:51 +0000 (09:15 +1100)]
Fix typo

6 years agoRestore the original Window comment
Ryan Cumming [Tue, 9 Jan 2018 22:10:59 +0000 (09:10 +1100)]
Restore the original Window comment

The Windows situation is more complicated than I realised

6 years agoFix error index display
Guillaume Gomez [Tue, 9 Jan 2018 21:26:26 +0000 (22:26 +0100)]
Fix error index display

6 years agoAdd `min` and `last` specialisations for `Range`
varkor [Mon, 8 Jan 2018 18:46:40 +0000 (18:46 +0000)]
Add `min` and `last` specialisations for `Range`

6 years agoTreat #[path] files as mod.rs files
Taylor Cramer [Tue, 9 Jan 2018 18:54:13 +0000 (10:54 -0800)]
Treat #[path] files as mod.rs files

6 years agoReplace uses of DepGraph.in_ignore with DepGraph.with_ignore
John Kåre Alsaker [Thu, 28 Dec 2017 05:05:45 +0000 (06:05 +0100)]
Replace uses of DepGraph.in_ignore with DepGraph.with_ignore

6 years agoAuto merge of #47269 - michaelwoerister:mangled-cgu-names, r=alexcrichton
bors [Tue, 9 Jan 2018 16:04:21 +0000 (16:04 +0000)]
Auto merge of #47269 - michaelwoerister:mangled-cgu-names, r=alexcrichton

Shorten names of some compiler generated artifacts.

This PR makes the compiler mangle codegen unit names by default. The name of every codegen unit name will now be a random string of 16 characters. It also makes the file extensions of some intermediate compiler products shorter. Hopefully, these changes will reduce the pressure on tools with path length restrictions like buildbot. The change should also solve problems with case-insensitive file system.

cc #47186 and #47222

r? @alexcrichton

6 years agoSkip linker-output-non-utf8 test on Apple
Ryan Cumming [Tue, 9 Jan 2018 08:54:13 +0000 (19:54 +1100)]
Skip linker-output-non-utf8 test on Apple

This test fails on APFS filesystems with the following error:

mkdir: /Users/ryan/Code/rust/build/x86_64-apple-darwin/test/run-make/linker-output-non-utf8.stage2-x86_64-apple-darwin/zzz�: Illegal byte sequence

This is due to APFS now requiring that all paths are valid UTF-8. As
APFS will be the default filesystem for all new Darwin-based systems the
most straightforward fix is to skip this test on Darwin as well as
Windows.

6 years agoAuto merge of #47231 - ereslibre:clean-emitted-diagnostics, r=nrc
bors [Tue, 9 Jan 2018 07:12:08 +0000 (07:12 +0000)]
Auto merge of #47231 - ereslibre:clean-emitted-diagnostics, r=nrc

Clean emitted diagnostics when `reset_err_count` is called.

When external tools like `rustfmt` calls to `reset_err_count` for handler
reusing, it will set the error count on the handler to 0, but since
https://github.com/rust-lang/rust/pull/47146 the handler will contain
status that will prevent the error count to be bumped if this handler is
reused.

This caused `rustfmt` idempotency tests to fail:
https://github.com/rust-lang-nursery/rustfmt/issues/2338

Fixes: https://github.com/rust-lang-nursery/rustfmt/issues/2338
6 years agoUpdate jobserver to 0.1.9
Josh Stone [Tue, 9 Jan 2018 06:00:45 +0000 (22:00 -0800)]
Update jobserver to 0.1.9

Fix for `ENOSYS` when calling `pipe2`, alexcrichton/jobserver-rs#5.

r? @alexcrichton

6 years agoAuto merge of #47276 - kennytm:rollup, r=kennytm
bors [Tue, 9 Jan 2018 04:22:50 +0000 (04:22 +0000)]
Auto merge of #47276 - kennytm:rollup, r=kennytm

Rollup of 10 pull requests

- Successful merges: #47210, #47233, #47246, #47254, #47256, #47258, #47259, #47263, #47270, #47272
- Failed merges: #47248

6 years agoFixed a typo in the compile_error docs
Andrew Brinker [Tue, 9 Jan 2018 00:35:06 +0000 (16:35 -0800)]
Fixed a typo in the compile_error docs

6 years agoUpdate musl to 1.1.18
Marco A L Barbosa [Mon, 8 Jan 2018 23:26:47 +0000 (21:26 -0200)]
Update musl to 1.1.18

According to http://www.musl-libc.org/download.html:

This release corrects regressions in glob() and armv4t build failure
introduced in the previous release, and includes an important bug fix
for posix_spawnp in the presence of a large PATH environment variable.

6 years agoRollup merge of #47272 - GuillaumeGomez:missing-links, r=QuietMisdreavus
kennytm [Mon, 8 Jan 2018 17:58:55 +0000 (01:58 +0800)]
Rollup merge of #47272 - GuillaumeGomez:missing-links, r=QuietMisdreavus

Add missing links

r? @QuietMisdreavus

(please wait for CI, I have a few doubts about the `Write` trait links...)

6 years agoRollup merge of #47270 - Zoxc:gen-layout-fix, r=eddyb
kennytm [Mon, 8 Jan 2018 17:58:54 +0000 (01:58 +0800)]
Rollup merge of #47270 - Zoxc:gen-layout-fix, r=eddyb

Don't look for niches inside generator types. Fixes #47253

r? @eddyb

6 years agoRollup merge of #47263 - ollie27:rustdoc_private_macro_import, r=GuillaumeGomez
kennytm [Mon, 8 Jan 2018 17:58:53 +0000 (01:58 +0800)]
Rollup merge of #47263 - ollie27:rustdoc_private_macro_import, r=GuillaumeGomez

rustdoc: Don't import macros from private imports

Fixes #47038

6 years agoRollup merge of #47259 - sfackler:map-remove-entry, r=dtolnay
kennytm [Mon, 8 Jan 2018 17:58:52 +0000 (01:58 +0800)]
Rollup merge of #47259 - sfackler:map-remove-entry, r=dtolnay

Add HashMap::remove_entry

Implements #46344

r? @dtolnay

6 years agoRollup merge of #47258 - rkruppe:struct-assert, r=eddyb
kennytm [Mon, 8 Jan 2018 17:58:51 +0000 (01:58 +0800)]
Rollup merge of #47258 - rkruppe:struct-assert, r=eddyb

rustc::ty: Rename struct_variant to non_enum_variant

r? @eddyb

6 years agoRollup merge of #47256 - rkruppe:misc-cleanup, r=eddyb
kennytm [Mon, 8 Jan 2018 17:58:50 +0000 (01:58 +0800)]
Rollup merge of #47256 - rkruppe:misc-cleanup, r=eddyb

Rename ReprExtern to ReprC

… and similarily rename a few other field and locals that mentioned "extern repr".

6 years agoRollup merge of #47254 - rkruppe:no-more-align-hack, r=alexcrichton
kennytm [Mon, 8 Jan 2018 17:58:49 +0000 (01:58 +0800)]
Rollup merge of #47254 - rkruppe:no-more-align-hack, r=alexcrichton

Replace empty array hack with repr(align)

As a side effect, this fixes the warning about repr(C, simd) that has been reported during x86_64 windows builds since #47111 (see also: #47103)

r? @alexcrichton

6 years agoRollup merge of #47246 - aidanhs:aphs-wasm-backtrace-feature, r=KodrAus
kennytm [Mon, 8 Jan 2018 17:58:47 +0000 (01:58 +0800)]
Rollup merge of #47246 - aidanhs:aphs-wasm-backtrace-feature, r=KodrAus

Make wasm obey backtrace feature, like other targets

E.g. https://github.com/rust-lang/rust/blob/6828cf90146c7fefc4ba4f16dffe75f763f2d910/src/libstd/sys/unix/mod.rs#L40-L41

6 years agoRollup merge of #47233 - dotdash:cleanup_llvm, r=alexcrichton
kennytm [Mon, 8 Jan 2018 17:58:46 +0000 (01:58 +0800)]
Rollup merge of #47233 - dotdash:cleanup_llvm, r=alexcrichton

Remove unused LLVM related code

Ticks a few more boxes on #46437

6 years agoRollup merge of #47210 - zackmdavis:the_3rd_of_2_hardest_problems_in_computer_science...
kennytm [Mon, 8 Jan 2018 17:58:45 +0000 (01:58 +0800)]
Rollup merge of #47210 - zackmdavis:the_3rd_of_2_hardest_problems_in_computer_science, r=QuietMisdreavus

fix the doc-comment-decoration-trimming edge-case rustdoc ICE

This `horizontal_trim` function strips the leading whitespace from
doc-comments that have a left-asterisk-margin:

```
  /**
   * You know what I mean—
   *
   * comments like this!
   */
```

The index of the column of asterisks is `i`, and if trimming is deemed
possible, we slice each line from `i+1` to the end of the line. But if, in
particular, `i` was 0 _and_ there was an empty line (as in the example
given in the reporting issue), we ended up panicking trying to slice an
empty string from 0+1 (== 1).

Let's tighten our check to say that we can't trim when `i` is even the same
as the length of the line, not just when it's greater. (Any such cases
would panic trying to slice `line` from `line.len()+1`.)

Resolves #47197.

6 years agoClean emitted diagnostics when `reset_err_count` is called.
Rafael Fernández López [Sat, 6 Jan 2018 12:33:20 +0000 (13:33 +0100)]
Clean emitted diagnostics when `reset_err_count` is called.

When external tools like `rustfmt` calls to `reset_err_count` for handler
reusing, it will set the error count on the handler to 0, but since
https://github.com/rust-lang/rust/pull/47146 the handler will contain
status that will prevent the error count to be bumped if this handler is
reused.

This caused `rustfmt` idempotency tests to fail:
https://github.com/rust-lang-nursery/rustfmt/issues/2338

Fixes: https://github.com/rust-lang-nursery/rustfmt/issues/2338
6 years agoUpdate to libc in Cargo.lock to 0.2.35 as well.
Ed Schouten [Mon, 8 Jan 2018 16:00:25 +0000 (17:00 +0100)]
Update to libc in Cargo.lock to 0.2.35 as well.

6 years agoUpgrade liblibc to latest upstream version.
Ed Schouten [Mon, 8 Jan 2018 15:59:15 +0000 (16:59 +0100)]
Upgrade liblibc to latest upstream version.

This version of liblibc is a prerequisite for getting libstd to build on
CloudABI.

6 years agoAuto merge of #47208 - Manishearth:double-ended-searcher, r=pnkfelix
bors [Mon, 8 Jan 2018 14:32:25 +0000 (14:32 +0000)]
Auto merge of #47208 - Manishearth:double-ended-searcher, r=pnkfelix

Make double ended searchers use dependent fingers

(fixes #47175)

r? @burntsushi @alexcrichton

needs uplift to beta

6 years agoAdd missing links
Guillaume Gomez [Mon, 8 Jan 2018 13:16:16 +0000 (14:16 +0100)]
Add missing links