]> git.lizzy.rs Git - rust.git/log
rust.git
7 years agoFixes bootstrapping with custom cargo/rustc.
Mark Simulacrum [Wed, 21 Jun 2017 00:04:36 +0000 (18:04 -0600)]
Fixes bootstrapping with custom cargo/rustc.

config.mk is now always read when parsing the configuration to prevent
this from reoccurring in the future, hopefully.

7 years agoAuto merge of #42716 - alexbool:cstr-inlines, r=BurntSushi
bors [Tue, 20 Jun 2017 13:25:21 +0000 (13:25 +0000)]
Auto merge of #42716 - alexbool:cstr-inlines, r=BurntSushi

Mark smaller CStr and CString functions as #[inline]

7 years agoAuto merge of #42571 - tlively:wasm-dev, r=alexcrichton
bors [Tue, 20 Jun 2017 09:44:40 +0000 (09:44 +0000)]
Auto merge of #42571 - tlively:wasm-dev, r=alexcrichton

Enable wasm LLVM backend

Enables compilation to WebAssembly with the LLVM backend using the target triple "wasm32-unknown-unknown". This is the beginning of my work on #38804.

**edit:** The new new target is now wasm32-experimental-emscripten instead of wasm32-unknown-unknown.

7 years agoMark smaller CStr and CString functions as #[inline]
Alexander Bulaev [Sat, 17 Jun 2017 12:50:55 +0000 (15:50 +0300)]
Mark smaller CStr and CString functions as #[inline]

7 years agoAuto merge of #42495 - alexcrichton:new-stage0, r=Mark-Simulacrum
bors [Tue, 20 Jun 2017 07:22:38 +0000 (07:22 +0000)]
Auto merge of #42495 - alexcrichton:new-stage0, r=Mark-Simulacrum

Bump to 1.20.0 and update stage0 compiler

Betas are hot off the bots, let's get them while they're fresh.

7 years agoBump version and stage0 compiler
Alex Crichton [Wed, 7 Jun 2017 02:32:43 +0000 (19:32 -0700)]
Bump version and stage0 compiler

7 years agoAuto merge of #42313 - pnkfelix:allocator-integration, r=alexcrichton
bors [Tue, 20 Jun 2017 05:02:19 +0000 (05:02 +0000)]
Auto merge of #42313 - pnkfelix:allocator-integration, r=alexcrichton

Allocator integration

Lets start getting some feedback on `trait Alloc`.

Here is:
 *  the `trait Alloc` itself,
 * the `struct Layout` and `enum AllocErr` that its API relies on
 * a `struct HeapAlloc` that exposes the system allocator as an instance of `Alloc`
 * an integration of `Alloc` with `RawVec`
 * ~~an integration of `Alloc` with `Vec`~~

 TODO
 * [x] split `fn realloc_in_place` into `grow` and `shrink` variants
 * [x] add `# Unsafety` and `# Errors` sections to documentation for all relevant methods
 * [x] remove `Vec` integration with `Allocator`
 * [x] add `allocate_zeroed` impl to `HeapAllocator`
 * [x] remove typedefs e.g. `type Size = usize;`
 * [x] impl `trait Error` for all error types in PR
 * [x] make `Layout::from_size_align` public
 * [x] clarify docs of `fn padding_needed_for`.
 * [x] revise `Layout` constructors to ensure that [size+align combination is valid](https://github.com/rust-lang/rust/pull/42313#issuecomment-306845446)
 * [x] resolve mismatch re requirements of align on dealloc. See [comment](https://github.com/rust-lang/rust/pull/42313#issuecomment-306202489).

7 years agoAuto merge of #42754 - alexcrichton:update-cargo, r=jonathandturner
bors [Tue, 20 Jun 2017 02:34:41 +0000 (02:34 +0000)]
Auto merge of #42754 - alexcrichton:update-cargo, r=jonathandturner

Update `wincolor` dep for Cargo

Closes rust-lang/cargo#4189

7 years agoIgnore a spuriously failing test on asmjs
Alex Crichton [Mon, 19 Jun 2017 19:40:51 +0000 (12:40 -0700)]
Ignore a spuriously failing test on asmjs

Other tests are already ignored for missing `rust_begin_unwind`, let's add
another.

7 years agoUpdate `wincolor` dep for Cargo
Alex Crichton [Mon, 19 Jun 2017 17:44:12 +0000 (10:44 -0700)]
Update `wincolor` dep for Cargo

Closes rust-lang/cargo#4189

7 years agoMinor Allocator doc fix
Alex Crichton [Mon, 19 Jun 2017 14:51:00 +0000 (07:51 -0700)]
Minor Allocator doc fix

7 years agoIgnore test for not-closed issue
Alex Crichton [Mon, 19 Jun 2017 14:49:50 +0000 (07:49 -0700)]
Ignore test for not-closed issue

Confirmed on IRC that the bug isn't fully fixed, and the "resurgence" here isn't
the fault of this PR.

7 years agoAuto merge of #39409 - pnkfelix:mir-borrowck2, r=nikomatsakis
bors [Mon, 19 Jun 2017 13:01:27 +0000 (13:01 +0000)]
Auto merge of #39409 - pnkfelix:mir-borrowck2, r=nikomatsakis

MIR EndRegion Statements (was MIR dataflow for Borrows)

This PR adds an `EndRegion` statement to MIR (where the `EndRegion` statement is what terminates a borrow).

An earlier version of the PR implemented a dataflow analysis on borrow expressions, but I am now factoring that into a follow-up PR so that reviewing this one is easier. (And also because there are some revisions I want to make to that dataflow code, but I want this PR to get out of WIP status...)

This is a baby step towards MIR borrowck. I just want to get the review process going while I independently work on the remaining steps.

7 years agoAuto merge of #42737 - fhahn:rust-log-crash, r=michaelwoerister
bors [Mon, 19 Jun 2017 08:45:00 +0000 (08:45 +0000)]
Auto merge of #42737 - fhahn:rust-log-crash, r=michaelwoerister

rustc: Check if def_path_hash_to_def_id is populated before accessing.

Without this patch, there is an ICE when running rustc with
RUST_LOG=debug. This patch updates extract_def_id to check if the map
has been populated before accessing it. This fixes the problem, but
maybe we do not need to compute the incremental hashes maps in the first
place when we are not in incremental mode?

7 years agoAuto merge of #42722 - est31:master, r=Mark-Simulacrum
bors [Mon, 19 Jun 2017 03:42:27 +0000 (03:42 +0000)]
Auto merge of #42722 - est31:master, r=Mark-Simulacrum

Remove SUMMARY.md of the unstable book as its autogenerated

Its being autogenerated now, as of PR #42612.
It seems I forgot to remove it.

Also, sort the entries of SUMMARY.md alphabetically.

7 years agoAuto merge of #42740 - arielb1:bad-arm-2, r=alexcrichton
bors [Mon, 19 Jun 2017 01:31:31 +0000 (01:31 +0000)]
Auto merge of #42740 - arielb1:bad-arm-2, r=alexcrichton

Backport fixes to LLVM 4.0 ARM codegen bugs

So ARM had quite a few codegen bugs on LLVM 4.0 which are fixed on LLVM
trunk. This backports 5 of them:
r297871 - ARM: avoid clobbering register in v6 jump-table expansion.
    - fixes rust-lang/rust#42248
r294949 - [Thumb-1] TBB generation: spot redefinitions of index
r295816 - [ARM] Fix constant islands pass.
r300870 - [Thumb-1] Fix corner cases for compressed jump tables
r302650 - [IfConversion] Add missing check in
IfConversion/canFallThroughTo
    - unblocks rust-lang/rust#39409

r? @alexcrichton
beta-nominating because this fixes regressions introduced by LLVM 4.0.

7 years agoAuto merge of #42735 - arielb1:generic-closure-fn, r=eddyb
bors [Sun, 18 Jun 2017 23:22:35 +0000 (23:22 +0000)]
Auto merge of #42735 - arielb1:generic-closure-fn, r=eddyb

collector: apply param substs to closures cast to fn items

Fixes #42718.

r? @eddyb
beta-nominating because serious ICE in newly-stabilized feature.

7 years agoBackport fixes to LLVM 4.0 ARM codegen bugs
Ariel Ben-Yehuda [Sun, 18 Jun 2017 16:01:34 +0000 (19:01 +0300)]
Backport fixes to LLVM 4.0 ARM codegen bugs

So ARM had quite a few codegen bugs on LLVM 4.0 which are fixed on LLVM
trunk. This backports 5 of them:
r297871 - ARM: avoid clobbering register in v6 jump-table expansion.
    - fixes rust-lang/rust#42248
r294949 - [Thumb-1] TBB generation: spot redefinitions of index
r295816 - [ARM] Fix constant islands pass.
r300870 - [Thumb-1] Fix corner cases for compressed jump tables
r302650 - [IfConversion] Add missing check in
IfConversion/canFallThroughTo
    - unblocks rust-lang/rust#39409

7 years agoSort entries of SUMMARY.md alphabetically
est31 [Sat, 17 Jun 2017 19:54:09 +0000 (21:54 +0200)]
Sort entries of SUMMARY.md alphabetically

7 years agoRemove SUMMARY.md of the unstable book as its autogenerated
est31 [Sat, 17 Jun 2017 19:40:22 +0000 (21:40 +0200)]
Remove SUMMARY.md of the unstable book as its autogenerated

Its being autogenerated now, as of PR #42612.
It seems I forgot to remove it.

7 years agoAuto merge of #42676 - alexcrichton:update-cargo, r=Mark-Simulacrum
bors [Sun, 18 Jun 2017 21:10:33 +0000 (21:10 +0000)]
Auto merge of #42676 - alexcrichton:update-cargo, r=Mark-Simulacrum

Update cargo/rls submodules and dependencies

Brings in a few regression fixes on the Cargo side, updates the rls to work
with the newer Cargo, and also updates other crates.io dependencies to pull in
various bug fixes and such.

7 years agoAuto merge of #42738 - Mark-Simulacrum:rollup, r=Mark-Simulacrum
bors [Sun, 18 Jun 2017 17:29:58 +0000 (17:29 +0000)]
Auto merge of #42738 - Mark-Simulacrum:rollup, r=Mark-Simulacrum

Rollup of 7 pull requests

- Successful merges: #42695, #42714, #42720, #42723, #42730, #42731, #42734
- Failed merges: #42722

7 years agoRollup merge of #42734 - MaloJaffre:tests, r=Mark-Simulacrum
Mark Simulacrum [Sun, 18 Jun 2017 16:34:14 +0000 (10:34 -0600)]
Rollup merge of #42734 - MaloJaffre:tests, r=Mark-Simulacrum

Add tests for various issues

Fixes #11740.
Fixes #19601.
Fixes #22603
Fixes #22789.
Fixes #26614.

r? @Mark-Simulacrum.

7 years agoRollup merge of #42731 - MaloJaffre:issue-24889, r=Mark-Simulacrum
Mark Simulacrum [Sun, 18 Jun 2017 16:34:13 +0000 (10:34 -0600)]
Rollup merge of #42731 - MaloJaffre:issue-24889, r=Mark-Simulacrum

Add test for #24889

Fixes #24889.
r? @Mark-Simulacrum (Thanks for the instructions).

7 years agoRollup merge of #42730 - VBChunguk:boxed-wild-pattern, r=eddyb
Mark Simulacrum [Sun, 18 Jun 2017 16:34:12 +0000 (10:34 -0600)]
Rollup merge of #42730 - VBChunguk:boxed-wild-pattern, r=eddyb

Use T as the subpattern type of Box<T>

The subpattern type of boxes being nil does not make sense because of box patterns. They should have their inner type as the subpattern type.

Fixes #42679, which describes ICE caused by the bug.

7 years agoRollup merge of #42723 - ubsan:master, r=QuietMisdreavus
Mark Simulacrum [Sun, 18 Jun 2017 16:34:11 +0000 (10:34 -0600)]
Rollup merge of #42723 - ubsan:master, r=QuietMisdreavus

Add `_` to the list of keywords

also, make sure the keyword table is correctly spaced

note: the reference also needs to be updated. This is not the only way to do this in the grammar, but it's my preferred way.

7 years agoRollup merge of #42720 - murarth:deprecated-collections, r=alexcrichton
Mark Simulacrum [Sun, 18 Jun 2017 16:34:10 +0000 (10:34 -0600)]
Rollup merge of #42720 - murarth:deprecated-collections, r=alexcrichton

Reintroduce deprecated `collections` crate

7 years agoRollup merge of #42714 - alexbool:master, r=alexcrichton
Mark Simulacrum [Sun, 18 Jun 2017 16:34:09 +0000 (10:34 -0600)]
Rollup merge of #42714 - alexbool:master, r=alexcrichton

Inline StrSearcher::haystack()

7 years agoRollup merge of #42695 - Mark-Simulacrum:fix-verbose, r=alexcrichton
Mark Simulacrum [Sun, 18 Jun 2017 16:34:08 +0000 (10:34 -0600)]
Rollup merge of #42695 - Mark-Simulacrum:fix-verbose, r=alexcrichton

Use custom cargo/rustc paths when parsing flags.

Fixes https://github.com/rust-lang/rust/issues/41779, probably also https://github.com/rust-lang/rust/issues/42543 (I think they're duplicates).

I'm not entirely happy with the implementation, since it means we parse the configuration twice, but it's the minimal solution. I think the other choice is to move both calls to Config::parse inside Flags::parse and merge them, but I don't know if that's a good idea.

r? @alexcrichton

7 years agoAdd tests for various issues
Malo Jaffré [Sun, 18 Jun 2017 16:18:08 +0000 (18:18 +0200)]
Add tests for various issues

Fixes #11740.
Fixes #19601.
Fixes #22603
Fixes #22789.
Fixes #26614.

r? @Mark-Simulacrum.

7 years agorustc: Check if def_path_hash_to_def_id is populated before accessing it.
Florian Hahn [Sun, 18 Jun 2017 15:58:54 +0000 (16:58 +0100)]
rustc: Check if def_path_hash_to_def_id is populated before accessing it.

Without this patch, there is an ICE when running rustc with
RUST_LOG=debug. This patch updates extract_def_id to check if the map
has been populated before accessing it. This fixes the problem, but
maybe we do not need to compute the incremental hashes maps in the first
place when we are not in incremental mode?

7 years agocollector: apply param substs to closures cast to fn items
Ariel Ben-Yehuda [Sun, 18 Jun 2017 15:57:39 +0000 (18:57 +0300)]
collector: apply param substs to closures cast to fn items

Fixes #42718.

7 years agoAdd test for #24889
Malo Jaffré [Sun, 18 Jun 2017 12:30:33 +0000 (14:30 +0200)]
Add test for #24889

Fixes #24889.
r? @Mark-Simulacrum.

7 years agoAuto merge of #42593 - ibabushkin:on-demand-external-source, r=eddyb
bors [Sun, 18 Jun 2017 10:41:05 +0000 (10:41 +0000)]
Auto merge of #42593 - ibabushkin:on-demand-external-source, r=eddyb

Implement lazy loading of external crates' sources. Fixes #38875

Fixes #38875. This is a follow-up to #42507. When a (now correctly translated) span from an external crate is referenced in a error, warning or info message, we still don't have the source code being referenced.
Since stuffing the source in the serialized metadata of an rlib is extremely wasteful, the following scheme has been implemented:

* File maps now contain a source hash that gets serialized as well.
* When a span is rendered in a message, the source hash in the corresponding file map(s) is used to try and load the source from the corresponding file on disk. If the file is not found or the hashes don't match, the failed attempt is recorded (and not retried).
* The machinery fetching source lines from file maps is augmented to use the lazily loaded external source as a secondary fallback for file maps belonging to external crates.

This required a small change to the expected stderr of one UI test (it now renders a span, where previously was none).

Further work can be done based on this - some of the machinery previously used to hide external spans is possibly obsolete and the hashing code can be reused in different places as well.

r? @eddyb

7 years agoUse T as the subpattern type of Box<T>
Wonwoo Choi [Sun, 18 Jun 2017 07:07:26 +0000 (16:07 +0900)]
Use T as the subpattern type of Box<T>

The subpattern type of boxes being nil does not make sense because of
box patterns. They should have their inner type as the subpattern type.

7 years agoReintroduce deprecated `collections` crate
Murarth [Sat, 17 Jun 2017 19:01:18 +0000 (12:01 -0700)]
Reintroduce deprecated `collections` crate

7 years agoAdd `_` to the list of keywords
ubsan [Sat, 17 Jun 2017 20:14:26 +0000 (13:14 -0700)]
Add `_` to the list of keywords

also, make sure the keyword table is correctly spaced

7 years agoUpdate cargo/rls submodules and dependencies
Alex Crichton [Thu, 15 Jun 2017 02:33:06 +0000 (19:33 -0700)]
Update cargo/rls submodules and dependencies

Brings in a few regression fixes on the Cargo side, updates the rls to work
with the newer Cargo, and also updates other crates.io dependencies to pull in
various bug fixes and such.

7 years agoCorrect location of unstable book docs
Alex Crichton [Sat, 17 Jun 2017 18:48:01 +0000 (11:48 -0700)]
Correct location of unstable book docs

7 years agoAuto merge of #42649 - estebank:if-cond, r=nikomatsakis
bors [Sat, 17 Jun 2017 16:54:07 +0000 (16:54 +0000)]
Auto merge of #42649 - estebank:if-cond, r=nikomatsakis

Report error for assignment in `if` condition

For code like `if x = 3 {}`, output:

```
error[E0308]: mismatched types
  --> $DIR/issue-17283.rs:25:8
   |
25 |     if x = x {
   |        ^^^^^
   |        |
   |        help: did you mean to compare equality? `x == x`
   |        expected bool, found ()
   |
   = note: expected type `bool`
              found type `()`
```

Fix #40926.

7 years agoAuto merge of #42659 - nikomatsakis:issue-42545-type-inference-regression, r=eddyb
bors [Sat, 17 Jun 2017 11:22:08 +0000 (11:22 +0000)]
Auto merge of #42659 - nikomatsakis:issue-42545-type-inference-regression, r=eddyb

Issue 42545 type inference regression

Fix an ICE that results from type inference obligations being dropped on the floor. Specifically, when computing the implied bounds, we would sometimes do normalizations that get stored in the cache, but we would *not* try to solve the resulting obligations. This can sometimes leave type variables uninferred. Occurs only rarely because implied bounds are processed in regionck which happens very late, so usually the cache is populated already from somewhere else.

I think that the *proper* fix here is probably lazy normalization. This fix is intentionally very narrow both because this code is on the chopping block and because this needs a beta backport.

r? @eddyb
cc @arielb1

7 years agoInline StrSearcher::haystack()
Alexander Bulaev [Sat, 17 Jun 2017 10:51:36 +0000 (13:51 +0300)]
Inline StrSearcher::haystack()

7 years agoregister the obligations from `wf::implied_bounds`
Niko Matsakis [Wed, 14 Jun 2017 18:25:41 +0000 (14:25 -0400)]
register the obligations from `wf::implied_bounds`

Fixes #42552.
Fixes #42545.

7 years agomove `implied_bounds` into regionck
Niko Matsakis [Wed, 14 Jun 2017 16:46:14 +0000 (12:46 -0400)]
move `implied_bounds` into regionck

7 years agoAuto merge of #42712 - frewsxcv:rollup, r=frewsxcv
bors [Sat, 17 Jun 2017 06:47:54 +0000 (06:47 +0000)]
Auto merge of #42712 - frewsxcv:rollup, r=frewsxcv

Rollup of 3 pull requests

- Successful merges: #42660, #42662, #42705
- Failed merges:

7 years agoRollup merge of #42705 - est31:master, r=alexcrichton
Corey Farwell [Sat, 17 Jun 2017 06:10:50 +0000 (23:10 -0700)]
Rollup merge of #42705 - est31:master, r=alexcrichton

Introduce tidy lint to check for inconsistent tracking issues

This PR
* Refactors the collect_lib_features function to work in a
      non-checking mode (no bad pointer needed, and list of
      lang features).
* Introduces checking whether unstable/stable tags for a
      given feature have inconsistent tracking issues, as in,
      multiple tracking issues per feature.
* Fixes such inconsistencies throughout the codebase.

7 years agoRollup merge of #42662 - Mark-Simulacrum:doc-fix, r=estebank
Corey Farwell [Sat, 17 Jun 2017 06:10:49 +0000 (23:10 -0700)]
Rollup merge of #42662 - Mark-Simulacrum:doc-fix, r=estebank

Correct note as to location of section.

Fixes #37226.

7 years agoRollup merge of #42660 - steveklabnik:gh42632, r=frewsxcv
Corey Farwell [Sat, 17 Jun 2017 06:10:48 +0000 (23:10 -0700)]
Rollup merge of #42660 - steveklabnik:gh42632, r=frewsxcv

update book with redirect fixes

Fixes #42632

7 years agoAuto merge of #42650 - nrc:save-slim, r=eddyb
bors [Sat, 17 Jun 2017 04:36:02 +0000 (04:36 +0000)]
Auto merge of #42650 - nrc:save-slim, r=eddyb

save-analysis: remove a lot of stuff

This commits us to the JSON format and the more general def/ref style of output, rather than also supporting different data formats for different data structures. This does not affect the RLS at all, but will break any clients of the CSV form - AFAIK there are none (beyond a few of my own toy projects) - DXR stopped working long ago.

r? @eddyb

7 years agoAuto merge of #42613 - stepancheg:lossy, r=alexcrichton
bors [Sat, 17 Jun 2017 02:21:38 +0000 (02:21 +0000)]
Auto merge of #42613 - stepancheg:lossy, r=alexcrichton

Avoid allocations in Display for OsStr and Path

#38879

7 years agoAuto merge of #42604 - stepancheg:timedwait, r=alexcrichton
bors [Sat, 17 Jun 2017 00:05:50 +0000 (00:05 +0000)]
Auto merge of #42604 - stepancheg:timedwait, r=alexcrichton

Fix condvar.wait(distant future) return immediately on OSX

Fixes issue #37440: `pthread_cond_timedwait` on macOS Sierra seems
to overflow `ts_sec` parameter and returns immediately. To work
around this problem patch rounds timeout down to year 3000.

Patch also fixes overflow when converting `u64` to `time_t`.

7 years agoAdd target to use LLVM wasm backend
Thomas Lively [Fri, 16 Jun 2017 22:43:43 +0000 (15:43 -0700)]
Add target to use LLVM wasm backend

The new target is wasm32-experimental-emscripten. Adds a new
configuration option to opt in to building experimental LLVM backends
such as the WebAssembly backend. The target name was chosen to be
similar to the existing wasm32-unknown-emscripten target so that the
build and tests would work with minimal other code changes. When/if the
new target replaces the old target, simply renaming it should just work.

7 years agoAuto merge of #42598 - cramertj:track-more-metadata, r=nikomatsakis
bors [Fri, 16 Jun 2017 21:42:17 +0000 (21:42 +0000)]
Auto merge of #42598 - cramertj:track-more-metadata, r=nikomatsakis

Track more crate metadata

Part of https://github.com/rust-lang/rust/issues/41417
r? @nikomatsakis

7 years agoReview comments
Esteban Küber [Fri, 16 Jun 2017 17:34:17 +0000 (10:34 -0700)]
Review comments

- exhaustive match
- rename method to `check_expr_meets_expectation_or_error`
- formatting
- add `delay_span_bug`
- add test

7 years agoIntroduce tidy lint to check for inconsistent tracking issues
est31 [Fri, 16 Jun 2017 17:58:37 +0000 (19:58 +0200)]
Introduce tidy lint to check for inconsistent tracking issues

This commit
    * Refactors the collect_lib_features function to work in a
      non-checking mode (no bad pointer needed, and list of
      lang features).
    * Introduces checking whether unstable/stable tags for a
      given feature have inconsistent tracking issues.
    * Fixes such inconsistencies throughout the codebase.

7 years agoAuto merge of #42430 - nagisa:core-float, r=alexcrichton
bors [Fri, 16 Jun 2017 17:52:11 +0000 (17:52 +0000)]
Auto merge of #42430 - nagisa:core-float, r=alexcrichton

Re-implement float min/max in rust

This also adds the relevant implementations into libcore.

See #42423

7 years agoAuto merge of #42612 - est31:master, r=nagisa
bors [Fri, 16 Jun 2017 14:41:15 +0000 (14:41 +0000)]
Auto merge of #42612 - est31:master, r=nagisa

Autogenerate stubs and SUMMARY.md in the unstable book

Removes a speed bump in compiler development by autogenerating stubs for features in the unstable book. See #42454 for discussion.

The PR contains three commits, separated in order to make review easy:

* The first commit converts the tidy tool from a binary crate to a crate that contains both a library and a binary. In the second commit, we'll use the tidy library
* The second and main commit introduces autogeneration of SUMMARY.md and feature stub files
* The third commit turns off the tidy lint that checks for features without a stub, and removes the stub files. A separate commit due to the large number of files touched

Members of the doc team who wish to document some features can either do this (where `$rustsrc` is the root of the rust repo git checkout):

1. cd to `$rustsrc/src/tools/unstable-book-gen` and then do `cargo run $rustsrc/src $rustsrc/src/doc/unstable-book` to put the stubs into the unstable book
2. cd to `$rustsrc` and run `git ls-files --others --exclude-standard` to list the newly added stubs
3. choose a file to edit, then `git add` it and `git commit`
4. afterwards, remove all changes by the tool by doing `git --reset hard` and `git clean -f`

Or they can do this:

1. remove the comment marker in `src/tools/tidy/src/unstable_book.rs` line 122
2. run `./x.py test src/tools/tidy` to list the unstable features which only have stubs
3. revert the change in 1
3. document one of the chosen unstable features

The changes done by this PR also allow for further development:

* tidy obtains information about tracking issues. We can now forbid differing tracking issues between differing `#![unstable]` annotations. I haven't done this but plan to in a future PR
* we now have a general framework for generating stuff for the unstable book at build time. Further changes can autogenerate a list of the API a given library feature exposes.

The old way to simply click through the documentation after it has been uploaded to rust-lang.org works as well.

r? @nagisa

Fixes #42454

7 years agoUse custom cargo/rustc paths when parsing flags.
Mark Simulacrum [Fri, 16 Jun 2017 13:44:09 +0000 (07:44 -0600)]
Use custom cargo/rustc paths when parsing flags.

7 years agoFix cross compilation
est31 [Wed, 14 Jun 2017 16:49:41 +0000 (18:49 +0200)]
Fix cross compilation

7 years agoAuto merge of #42410 - nagisa:llvmup, r=sanxiyn
bors [Fri, 16 Jun 2017 12:18:45 +0000 (12:18 +0000)]
Auto merge of #42410 - nagisa:llvmup, r=sanxiyn

Upgrade LLVM

Includes https://github.com/rust-lang/llvm/pull/80

7 years agoAuto merge of #41840 - arielb1:deduplicate-selection-errors, r=nikomatsakis
bors [Fri, 16 Jun 2017 10:07:58 +0000 (10:07 +0000)]
Auto merge of #41840 - arielb1:deduplicate-selection-errors, r=nikomatsakis

Suppress trait errors that are implied by other errors

this is currently a hack and should be cleaned up somewhat. Posting this to get some feedback.

r? @nikomatsakis
cc @estebank

7 years agoAuto merge of #42631 - malbarbo:wasm32, r=alexcrichton
bors [Fri, 16 Jun 2017 07:54:59 +0000 (07:54 +0000)]
Auto merge of #42631 - malbarbo:wasm32, r=alexcrichton

Add a travis builder for wasm32-unknown-emscripten

This commits add an entry to travis matrix that will execute wasm32-unknown-emscripten tests suites.

- Emscripten for asmjs was updated to sdk-1.37.13-64bit
- The tests are run with node 8.0.0 (it can execute wasm)
- A wrapper script is used to run each test from the directory where it is (workaround for https://github.com/kripken/emscripten/issues/4542)
- Some tests are ignore, see #42629 and #42630

7 years agoAuto merge of #42690 - frewsxcv:rollup, r=frewsxcv
bors [Fri, 16 Jun 2017 05:43:38 +0000 (05:43 +0000)]
Auto merge of #42690 - frewsxcv:rollup, r=frewsxcv

Rollup of 5 pull requests

- Successful merges: #42616, #42651, #42654, #42656, #42685
- Failed merges:

7 years agoDivide up metadata into separate DepNodes
Taylor Cramer [Fri, 16 Jun 2017 05:25:41 +0000 (22:25 -0700)]
Divide up metadata into separate DepNodes

7 years agoRollup merge of #42685 - Havvy:doc-remove-sometimes, r=steveklabnik
Corey Farwell [Fri, 16 Jun 2017 04:32:46 +0000 (00:32 -0400)]
Rollup merge of #42685 - Havvy:doc-remove-sometimes, r=steveklabnik

Remove sometimes in std::io::Read doc

We use it immediately in the next sentence, and the word is filler.

A different conversation to make is whether we want to call them Readers in the documentation at all. And whether it's actually called "Readers" elsewhere.

7 years agoRollup merge of #42656 - VBChunguk:struct-field-attributes, r=nikomatsakis
Corey Farwell [Fri, 16 Jun 2017 04:32:45 +0000 (00:32 -0400)]
Rollup merge of #42656 - VBChunguk:struct-field-attributes, r=nikomatsakis

Remove struct_field_attributes feature gate

Part of #41681. ~This PR only removes the feature gate; this *does not* update any documentations.~ This PR removes the feature gate and the corresponding chapter of the Unstable Book.

I'm not very sure about the changes I made though... Just followed the stabilization guideline.

r? @nikomatsakis

7 years agoRollup merge of #42654 - GuillaumeGomez:error-codes-new, r=QuietMisdreavus
Corey Farwell [Fri, 16 Jun 2017 04:32:44 +0000 (00:32 -0400)]
Rollup merge of #42654 - GuillaumeGomez:error-codes-new, r=QuietMisdreavus

Error codes new

Part of #42229.

cc @Susurrus @frewsxcv @QuietMisdreavus

7 years agoRollup merge of #42651 - infinity0:master, r=alexcrichton
Corey Farwell [Fri, 16 Jun 2017 04:32:43 +0000 (00:32 -0400)]
Rollup merge of #42651 - infinity0:master, r=alexcrichton

Only run check-linkchecker when actually building docs

Otherwise the build fails, when running tests but not building docs, e.g.:
https://buildd.debian.org/status/fetch.php?pkg=rustc&arch=ppc64el&ver=1.17.0%2Bdfsg2-3&stamp=1497403375&raw=0

7 years agoRollup merge of #42616 - estebank:span-fix, r=nikomatsakis
Corey Farwell [Fri, 16 Jun 2017 04:32:42 +0000 (00:32 -0400)]
Rollup merge of #42616 - estebank:span-fix, r=nikomatsakis

Position span label correctly when it isn't last

Fix #42595.

Before:

```
15 |     map.entry("e").or_insert(0) += 1;
   |     ---------------------------^^^^^ot use `+=` on type `&mut {integer}`
```

After:

```
15 |     map.entry("e").or_insert(0) += 1;
   |     ---------------------------^^^^^
   |     |
   |     cannot use `+=` on type `&mut {integer}`
```

7 years agoAuto merge of #42578 - estebank:recover-binop, r=nikomatsakis
bors [Fri, 16 Jun 2017 03:31:09 +0000 (03:31 +0000)]
Auto merge of #42578 - estebank:recover-binop, r=nikomatsakis

Learn to parse `a as usize < b`

Parsing `a as usize > b` always works, but `a as usize < b` was a
parsing error because the parser would think the `<` started a generic
type argument for `usize`. The parser now attempts to parse as before,
and if a DiagnosticError is returned, try to parse again as a type with
no generic arguments. If this fails, return the original
`DiagnosticError`.

Fix #22644.

7 years agoRemove intermediate forms and some other refactoring
Nick Cameron [Thu, 8 Jun 2017 02:45:15 +0000 (14:45 +1200)]
Remove intermediate forms and some other refactoring

7 years agoAuto merge of #42568 - GuillaumeGomez:E0608, r=QuietMisdreavus
bors [Fri, 16 Jun 2017 00:40:05 +0000 (00:40 +0000)]
Auto merge of #42568 - GuillaumeGomez:E0608, r=QuietMisdreavus

E0608

Part of #42229.

cc @Susurrus

7 years agoimplement Error trait for error structs added in allocator API.
Felix S. Klock II [Tue, 13 Jun 2017 19:57:49 +0000 (21:57 +0200)]
implement Error trait for error structs added in allocator API.

7 years agoplaceholder for documentation of `allocator_api` library feature.
Felix S. Klock II [Tue, 30 May 2017 15:22:24 +0000 (17:22 +0200)]
placeholder for documentation of `allocator_api` library feature.

Alpha-renamed `Allocator` to `Alloc`.

7 years agoAllocator integration in `RawVec`.
Felix S. Klock II [Wed, 24 May 2017 16:06:11 +0000 (18:06 +0200)]
Allocator integration in `RawVec`.

Includes methods exposing underlying allocator and the dellocation
routine.

Includes test illustrating a tiny `Alloc` that just bounds the total
bytes allocated.

Alpha-renamed `Allocator` to `Alloc` (and `HeapAllocator` to `HeapAlloc`).

7 years agoAdd impl of `Alloc` for the global rust heap.
Felix S. Klock II [Tue, 23 May 2017 12:47:41 +0000 (14:47 +0200)]
Add impl of `Alloc` for the global rust heap.

Alpha-renamed `HeapAllocator` to `HeapAlloc`.

`<HeapAlloc as Alloc>::alloc_zeroed` is hooked up to `heap::allocate_zeroed`.

`HeapAlloc::realloc` falls back on alloc+copy+realloc on align mismatch.

7 years agoChanged `Layout::from_size_align` to return `Option`.
Felix S. Klock II [Thu, 15 Jun 2017 20:44:56 +0000 (22:44 +0200)]
Changed `Layout::from_size_align` to return `Option`.

Added `unwrap` calls in all the places where I can infer that the
conditions are met to avoid panic (or when the calling method itself
says it will panic in such a case).

7 years agoAdd API for `Alloc` trait.
Felix S. Klock II [Tue, 23 May 2017 12:47:09 +0000 (14:47 +0200)]
Add API for `Alloc` trait.

Includes `alloc_zeroed` method that `RawVec` has come to depend on.

Exposed private `Layout::from_size_align` ctor to be `pub`, and added
explicit conditions for when it will panic (namely, when `align` is
not power-of-two, or if rounding up `size` to a multiple of `align`
overflows). Normalized all `Layout` construction to go through
`Layout::from_size_align`.

Addressed review feedback regarding `struct Layout` and zero-sized
layouts.

Restrict specification for `dealloc`, adding additional constraint
that the given alignment has to match that used to allocate the block.
(This is a maximally conservative constraint on the alignment. An open
question to resolve (before stabilization) is whether we can return to
a looser constraint such as the one previously specified.)

Split `fn realloc_in_place` into separate `fn grow_in_place` and `fn
shrink_in_place` methods, which have default impls that check against
usable_size for reuse. Make `realloc` default impl try `grow_in_place`
or `shrink_in_place` as appropriate before fallback on
alloc+copy+dealloc.

Drive-by: When reviewing calls to `padding_needed_for`, discovered
what I think was an over-conservative choice for its argument
alignment.  Namely, in `fn extend`, we automatically realign the whole
resulting layout to satisfy both old (self) and new alignments. When
the old alignment exceeds the new, this means we would insert
unnecessary padding. So I changed the code to pass in `next.align`
instead of `new_align` to `padding_needed_for`.

Replaced ref to `realloc_in_place` with `grow_in_place`/`shrink_in_place`.

Revised docs replacing my idiosyncratic style of `fn foo` with just
`foo` when referring to the function or method `foo`.

(Alpha-renamed `Allocator` to `Alloc`.)

Post-rebased, added `Debug` derive for `allocator::Excess` to satisfy
`missing_debug_implementations`.

7 years agoFix condvar.wait(distant future) return immediately on OSX
Stepan Koltsov [Mon, 12 Jun 2017 14:19:40 +0000 (17:19 +0300)]
Fix condvar.wait(distant future) return immediately on OSX

Fixes issue #37440: `pthread_cond_timedwait` on macOS Sierra seems
to overflow `ts_sec` parameter and returns immediately. To work
around this problem patch rounds timeout down to approximately 1000
years.

Patch also fixes overflow when converting `u64` to `time_t`.

7 years agoAvoid allocations in Debug for os_str
Stepan Koltsov [Mon, 12 Jun 2017 19:21:53 +0000 (22:21 +0300)]
Avoid allocations in Debug for os_str

Fixes #38879

7 years agoUtf8Lossy type with chunks iterator and impl Display and Debug
Stepan Koltsov [Mon, 12 Jun 2017 17:07:54 +0000 (20:07 +0300)]
Utf8Lossy type with chunks iterator and impl Display and Debug

7 years agoPosition span label correctly when it isn't last
Esteban Küber [Mon, 12 Jun 2017 22:54:04 +0000 (15:54 -0700)]
Position span label correctly when it isn't last

7 years agoAdd a no-system-llvm compilecheck header
Simonas Kazlauskas [Thu, 8 Jun 2017 14:18:05 +0000 (17:18 +0300)]
Add a no-system-llvm compilecheck header

7 years agoReview comments
Esteban Küber [Thu, 15 Jun 2017 03:42:24 +0000 (20:42 -0700)]
Review comments

- generate error instead of warning
- remove `RewindPoint` and just keep a copy of `Parser` to rewind state.
- `dont_parse_generics: bool` -> `parse_generics: bool`
- remove `eat_lt`
- move error handling code to separate method

7 years agoAuto merge of #42648 - murarth:merge-alloc-collections, r=alexcrichton
bors [Thu, 15 Jun 2017 12:37:54 +0000 (12:37 +0000)]
Auto merge of #42648 - murarth:merge-alloc-collections, r=alexcrichton

Merge crate `collections` into `alloc`

This is a necessary step in order to merge #42565

7 years agoAdd E0618
Guillaume Gomez [Wed, 14 Jun 2017 16:15:13 +0000 (18:15 +0200)]
Add E0618

7 years agoOnly run check-linkchecker when actually building docs
Ximin Luo [Thu, 15 Jun 2017 11:25:15 +0000 (13:25 +0200)]
Only run check-linkchecker when actually building docs

Otherwise the build fails, when running tests but not building docs, e.g.:
https://buildd.debian.org/status/fetch.php?pkg=rustc&arch=ppc64el&ver=1.17.0%2Bdfsg2-3&stamp=1497403375&raw=0

7 years agoEnsure that disable-doc builds don't depend on doc targets
Ximin Luo [Thu, 15 Jun 2017 11:24:08 +0000 (13:24 +0200)]
Ensure that disable-doc builds don't depend on doc targets

7 years agoAuto merge of #42623 - VBChunguk:fix-older-urls, r=steveklabnik
bors [Thu, 15 Jun 2017 09:52:11 +0000 (09:52 +0000)]
Auto merge of #42623 - VBChunguk:fix-older-urls, r=steveklabnik

Update older URLs pointing to the first edition of the Book

Fixes #42589.

7 years agoUse new macro instead
Guillaume Gomez [Mon, 12 Jun 2017 17:02:09 +0000 (19:02 +0200)]
Use new macro instead

7 years agoAuto merge of #42625 - michaelwoerister:dep-node-debug, r=nikomatsakis
bors [Thu, 15 Jun 2017 06:52:42 +0000 (06:52 +0000)]
Auto merge of #42625 - michaelwoerister:dep-node-debug, r=nikomatsakis

incr.comp.: Make DepNode's std::fmt::Debug implementation useful again.

With #42537 a regular `DepNode` only contains an opaque hash as its identifier. In most cases, this hash is actually a `DefPathHash` and we can reconstruct the `DefId` it came from via a table lookup --- and then use that to print something intelligible for debug outputs. For cases where we cannot reconstruct information from the DepNode's hash, this PR will cache a string representation of the `DepNode` in a side-table. This string is later used for debug outputs.

r? @nikomatsakis

7 years agoSwitch CrateNum queries to DefId
Taylor Cramer [Thu, 15 Jun 2017 05:49:07 +0000 (22:49 -0700)]
Switch CrateNum queries to DefId

7 years agoReport error for assignment in `if` condition
Esteban Küber [Tue, 13 Jun 2017 23:26:20 +0000 (16:26 -0700)]
Report error for assignment in `if` condition

For code like `if x = 3 {}`, output:

```
error[E0308]: mismatched types
  --> $DIR/issue-17283.rs:25:8
   |
25 |     if x = x {
   |        ^^^^^
   |        |
   |        help: did you mean to compare equality? `x == x`
   |        expected bool, found ()
   |
   = note: expected type `bool`
              found type `()`
```

7 years agoAuto merge of #42665 - aidanhs:aphs-simplify-init-repos, r=Mark-Simulacrum
bors [Thu, 15 Jun 2017 02:17:07 +0000 (02:17 +0000)]
Auto merge of #42665 - aidanhs:aphs-simplify-init-repos, r=Mark-Simulacrum

Use --depth to speed up pristine submodule cloning

In addition, remove all the unused cache stuff

r? @Mark-Simulacrum

7 years agoRemove struct_field_attributes from the Unstable Book
Wonwoo Choi [Thu, 15 Jun 2017 02:16:54 +0000 (11:16 +0900)]
Remove struct_field_attributes from the Unstable Book

7 years agoUse --depth to speed up pristine submodule cloning
Aidan Hobson Sayers [Wed, 14 Jun 2017 23:19:21 +0000 (00:19 +0100)]
Use --depth to speed up pristine submodule cloning

In addition, remove all the unused cache stuff

7 years agoRemove some more stubs
est31 [Wed, 14 Jun 2017 22:19:42 +0000 (00:19 +0200)]
Remove some more stubs

7 years agoCorrect note as to location of section.
Mark Simulacrum [Wed, 14 Jun 2017 20:38:51 +0000 (14:38 -0600)]
Correct note as to location of section.

7 years agosuppress trait errors that are implied by other errors
Ariel Ben-Yehuda [Mon, 8 May 2017 16:45:27 +0000 (19:45 +0300)]
suppress trait errors that are implied by other errors

Instead of suppressing only trait errors that are "exact duplicates",
display only the "most high-level" error when there are multiple trait
errors with the same span that imply each-other.

e.g. when there are both `[closure]: Fn` and `[closure]: FnOnce`, omit
displaying the `[closure]: FnOnce` bound.

7 years agoupdate book with redirect fixes
steveklabnik [Wed, 14 Jun 2017 19:48:43 +0000 (15:48 -0400)]
update book with redirect fixes

Fixes #42632