Commit Graph

65239 Commits

Author SHA1 Message Date
bors
b40be00a0c 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
2017-06-16 14:41:15 +00:00
Mark Simulacrum
73267374d4 Use custom cargo/rustc paths when parsing flags. 2017-06-16 07:44:09 -06:00
est31
b34ac5dbda Fix cross compilation 2017-06-16 15:07:55 +02:00
bors
ebbc9ea914 Auto merge of #42410 - nagisa:llvmup, r=sanxiyn
Upgrade LLVM

Includes https://github.com/rust-lang/llvm/pull/80
2017-06-16 12:18:45 +00:00
bors
787d9da125 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
2017-06-16 10:07:58 +00:00
bors
c3627e25ee 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
2017-06-16 07:54:59 +00:00
Giles Cope
0a07803532 Fixed cargo bench test for assert_eq multi-line message 2017-06-16 07:34:37 +01:00
bors
4581e89a49 Auto merge of #42690 - frewsxcv:rollup, r=frewsxcv
Rollup of 5 pull requests

- Successful merges: #42616, #42651, #42654, #42656, #42685
- Failed merges:
2017-06-16 05:43:38 +00:00
Taylor Cramer
e6dd869260 Divide up metadata into separate DepNodes 2017-06-15 22:25:41 -07:00
Corey Farwell
f5f74a22c9 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.
2017-06-16 00:32:46 -04:00
Corey Farwell
999f3ad60d 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
2017-06-16 00:32:45 -04:00
Corey Farwell
f05afa09a8 Rollup merge of #42654 - GuillaumeGomez:error-codes-new, r=QuietMisdreavus
Error codes new

Part of #42229.

cc @Susurrus @frewsxcv @QuietMisdreavus
2017-06-16 00:32:44 -04:00
Corey Farwell
a5926115b4 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
2017-06-16 00:32:43 -04:00
Corey Farwell
f784e5f136 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}`
```
2017-06-16 00:32:42 -04:00
bors
44eeb2109b 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.
2017-06-16 03:31:09 +00:00
Nick Cameron
8a2857e644 Remove intermediate forms and some other refactoring 2017-06-16 12:52:37 +12:00
bors
a3114961a1 Auto merge of #42568 - GuillaumeGomez:E0608, r=QuietMisdreavus
E0608

Part of #42229.

cc @Susurrus
2017-06-16 00:40:05 +00:00
Felix S. Klock II
12d4d12fef implement Error trait for error structs added in allocator API. 2017-06-15 23:48:31 +02:00
Felix S. Klock II
57ab9e7e7c placeholder for documentation of allocator_api library feature.
Alpha-renamed `Allocator` to `Alloc`.
2017-06-15 23:48:31 +02:00
Felix S. Klock II
23ab50455f 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`).
2017-06-15 23:48:30 +02:00
Felix S. Klock II
65d02b26c5 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.
2017-06-15 23:48:30 +02:00
Felix S. Klock II
1d3bc4e90f 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).
2017-06-15 23:48:30 +02:00
Felix S. Klock II
066fafe206 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`.
2017-06-15 23:48:12 +02:00
Stepan Koltsov
0c26b5998d 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`.
2017-06-15 21:20:02 +01:00
Niko Matsakis
09bc09201c remove trailing whitespace 2017-06-15 15:45:37 -04:00
Stepan Koltsov
ac96fd7787 Avoid allocations in Debug for os_str
Fixes #38879
2017-06-15 20:42:37 +01:00
Stepan Koltsov
ea149b8571 Utf8Lossy type with chunks iterator and impl Display and Debug 2017-06-15 20:42:35 +01:00
Esteban Küber
8074a88787 Position span label correctly when it isn't last 2017-06-15 11:21:19 -07:00
Niko Matsakis
f11cf60944 Create for-loop-unconstrained-element-type-i32-fallback.rs 2017-06-15 12:31:45 -04:00
Niko Matsakis
e4baa26d2a document purpose of test 2017-06-15 12:28:07 -04:00
Niko Matsakis
d5fd8fef67 explain purpose of test 2017-06-15 12:27:15 -04:00
Simonas Kazlauskas
406eddf5e1 Add a no-system-llvm compilecheck header 2017-06-15 19:11:55 +03:00
Esteban Küber
ad260ffc88 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
2017-06-15 08:45:24 -07:00
Alex Ozdemir
a82890e67b Clearer Error Message for Duplicate Definition
Clearer use of the error message and span labels to communicate
duplicaiton defitions/imports.

New error format:

```
error[E0428]: the name `Foo` is defined twice
 --> example.rs:2:1
  |
1 | trait Foo { }
  | ------------- previous definition of the trait `Foo` here
2 | struct Foo { }
  | ^^^^^^^^^^^^^^ `Foo` redefined here
  = note: `Foo` must be defined only once in the type namespace of this module

error: aborting due to previous error
```
2017-06-15 08:21:17 -07:00
bors
258ae6dd9b 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
2017-06-15 12:37:54 +00:00
Guillaume Gomez
f720e972cf Add E0618 2017-06-15 14:00:58 +02:00
Ximin Luo
13b1a80505 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
2017-06-15 13:25:15 +02:00
Ximin Luo
62c245281c Ensure that disable-doc builds don't depend on doc targets 2017-06-15 13:24:08 +02:00
bors
16c27bf713 Auto merge of #42623 - VBChunguk:fix-older-urls, r=steveklabnik
Update older URLs pointing to the first edition of the Book

Fixes #42589.
2017-06-15 09:52:11 +00:00
Guillaume Gomez
b6e9ed1e40 Use new macro instead 2017-06-15 10:33:46 +02:00
Guillaume Gomez
ee600642db Add E0616 2017-06-15 10:30:26 +02:00
Guillaume Gomez
5bb58bf2e6 Add E0615 2017-06-15 10:29:47 +02:00
Guillaume Gomez
a80db25802 Add E0614 2017-06-15 10:29:20 +02:00
Guillaume Gomez
e8cbb53309 Add E0613 2017-06-15 10:14:29 +02:00
Guillaume Gomez
a42f8160ed Add E0612 2017-06-15 10:14:29 +02:00
Guillaume Gomez
302f99693f Add E0611 2017-06-15 10:13:55 +02:00
bors
119066ff2b 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
2017-06-15 06:52:42 +00:00
Taylor Cramer
c98ca953b0 Switch CrateNum queries to DefId 2017-06-14 22:49:07 -07:00
Esteban Küber
028b5f94e3 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 `()`
```
2017-06-14 22:09:32 -07:00
bors
0189cec5d4 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
2017-06-15 02:17:07 +00:00