]> git.lizzy.rs Git - rust.git/log
rust.git
8 years agoAdd Random state doc
ggomez [Fri, 22 Jul 2016 12:57:52 +0000 (14:57 +0200)]
Add Random state doc

8 years agoAuto merge of #34873 - alexcrichton:down-with-compiler-rt-for-good, r=brson
bors [Thu, 21 Jul 2016 02:02:00 +0000 (19:02 -0700)]
Auto merge of #34873 - alexcrichton:down-with-compiler-rt-for-good, r=brson

mk: Stop using cmake for compiler-rt

The compiler-rt build system has been a never ending cause of pain for Rust
unfortunately:

* The build system is very difficult to invoke and configure to only build
  compiler-rt, especially across platforms.
* The standard build system doesn't actually do what we want, not working for
  some of our platforms and requiring a significant number of patches on our end
  which are difficult to apply when updating compiler-rt.
* Compiling compiler-rt requires LLVM to be compiled, which... is a big
  dependency! This also means that over time compiler-rt is not guaranteed to
  build against older versions of LLVM (or newer versions), and we often want to
  work with multiple versions of LLVM simultaneously.

The makefiles and rustbuild already know how to compile C code, the code here is
far from the *only* C code we're compiling. This patch jettisons all logic to
work with compiler-rt's build system and just goes straight to the source. We
just list all files manually (copied from compiler-rt's
lib/builtins/CMakeLists.txt) and compile them into an archive.

It's likely that this means we'll fail to pick up new files when we upgrade
compiler-rt, but that seems like a much less significant cost to pay than what
we're currently paying.

cc #34400, first steps towards that

8 years agomk: Stop using cmake for compiler-rt
Alex Crichton [Sat, 16 Jul 2016 22:08:25 +0000 (15:08 -0700)]
mk: Stop using cmake for compiler-rt

The compiler-rt build system has been a never ending cause of pain for Rust
unfortunately:

* The build system is very difficult to invoke and configure to only build
  compiler-rt, especially across platforms.
* The standard build system doesn't actually do what we want, not working for
  some of our platforms and requiring a significant number of patches on our end
  which are difficult to apply when updating compiler-rt.
* Compiling compiler-rt requires LLVM to be compiled, which... is a big
  dependency! This also means that over time compiler-rt is not guaranteed to
  build against older versions of LLVM (or newer versions), and we often want to
  work with multiple versions of LLVM simultaneously.

The makefiles and rustbuild already know how to compile C code, the code here is
far from the *only* C code we're compiling. This patch jettisons all logic to
work with compiler-rt's build system and just goes straight to the source. We
just list all files manually (copied from compiler-rt's
lib/builtins/CMakeLists.txt) and compile them into an archive.

It's likely that this means we'll fail to pick up new files when we upgrade
compiler-rt, but that seems like a much less significant cost to pay than what
we're currently paying.

cc #34400, first steps towards that

8 years agoAuto merge of #34113 - srinivasreddy:deriving_rustfmt, r=brson
bors [Wed, 20 Jul 2016 18:24:12 +0000 (11:24 -0700)]
Auto merge of #34113 - srinivasreddy:deriving_rustfmt, r=brson

run rustfmt on libsyntax_ext/deriving folder

8 years agoAuto merge of #34694 - mathphreak:master, r=alexcrichton
bors [Wed, 20 Jul 2016 14:10:09 +0000 (07:10 -0700)]
Auto merge of #34694 - mathphreak:master, r=alexcrichton

Add IpAddr common methods

Per https://github.com/rust-lang/rfcs/pull/1668#issuecomment-230867962 no RFC is needed here.

The generated documentation for these methods is being weird. It shows a deprecation message referencing #27709 for each of them even though two of the referenced methods were stabilized as part of that issue. I don't know how best to address that.

8 years agoAuto merge of #33526 - steveklabnik:gh21889, r=alexcrichton
bors [Wed, 20 Jul 2016 07:48:21 +0000 (00:48 -0700)]
Auto merge of #33526 - steveklabnik:gh21889, r=alexcrichton

Add some warnings to std::env::current_exe

/cc #21889 @rust-lang/libs @semarie

I started writing this up. I'm not sure if we want to go into other things and in what depth; we don't currently have a lot of security-specific documentation to model after.

Thoughts?

8 years agoAuto merge of #34885 - GuillaumeGomez:btree_map_debug, r=alexcrichton
bors [Tue, 19 Jul 2016 19:50:15 +0000 (12:50 -0700)]
Auto merge of #34885 - GuillaumeGomez:btree_map_debug, r=alexcrichton

Add debug for btree_map::{Entry, VacantEntry, OccupiedEntry}

8 years agoRun rustfmt on libsyntax_ext/deriving folder
Srinivas Reddy Thatiparthy [Tue, 19 Jul 2016 17:32:06 +0000 (23:02 +0530)]
Run rustfmt on libsyntax_ext/deriving folder

8 years agore-work example
Steve Klabnik [Tue, 19 Jul 2016 16:32:56 +0000 (12:32 -0400)]
re-work example

8 years agoAuto merge of #34898 - sanxiyn:rollup, r=sanxiyn
bors [Tue, 19 Jul 2016 12:12:51 +0000 (05:12 -0700)]
Auto merge of #34898 - sanxiyn:rollup, r=sanxiyn

Rollup of 5 pull requests

- Successful merges: #34807, #34853, #34875, #34884, #34889
- Failed merges:

8 years agoAdd debug for btree_map::{Entry, VacantEntry, OccupiedEntry}
Guillaume Gomez [Sun, 17 Jul 2016 15:28:00 +0000 (17:28 +0200)]
Add debug for btree_map::{Entry, VacantEntry, OccupiedEntry}

8 years agoAuto merge of #33974 - habnabit:eintr-retry-for-read-iterators, r=alexcrichton
bors [Tue, 19 Jul 2016 08:20:50 +0000 (01:20 -0700)]
Auto merge of #33974 - habnabit:eintr-retry-for-read-iterators, r=alexcrichton

Retry on EINTR in Bytes and Chars.

>Since Bytes and Chars called directly into Read::read, they didn't use any of the retrying wrappers. This allows both iterator types to retry.

8 years agomk: Remove -Wall -Werror everywhere
Alex Crichton [Sat, 16 Jul 2016 22:07:35 +0000 (15:07 -0700)]
mk: Remove -Wall -Werror everywhere

We're not writing C code, so there's not really much of a reason for us to get
warnings and errors from code we haven't written!

8 years agoAuto merge of #34879 - petrochenkov:fnptr, r=alexcrichton
bors [Tue, 19 Jul 2016 01:09:25 +0000 (18:09 -0700)]
Auto merge of #34879 - petrochenkov:fnptr, r=alexcrichton

Implement traits for variadic function pointers

Closes https://github.com/rust-lang/rust/issues/34874
cc https://github.com/rust-lang/rust/pull/28268

r? @alexcrichton

8 years agoAuto merge of #34357 - tbu-:pr_exact_size_is_empty, r=brson
bors [Mon, 18 Jul 2016 21:26:22 +0000 (14:26 -0700)]
Auto merge of #34357 - tbu-:pr_exact_size_is_empty, r=brson

Add `is_empty` function to `ExactSizeIterator`

All other types implementing a `len` functions have `is_empty` already.

8 years agoAuto merge of #34899 - michaelwoerister:always_internalize_symbols, r=eddyb
bors [Mon, 18 Jul 2016 18:29:25 +0000 (11:29 -0700)]
Auto merge of #34899 - michaelwoerister:always_internalize_symbols, r=eddyb

Run base::internalize_symbols() even for single-codegen-unit crates.

The initial linkage-assignment (especially for closures) is a conservative one that makes some symbols more visible than they need to be. While this is not a correctness problem, it does force the LLVM inliner to be more conservative too, which results in poor performance. Once translation is based solely on MIR, it will be easier to also make the initial linkage assignment a better fitting one. Until then `internalize_symbols()` does a good job of preventing most performance regressions.

This should solve the regressions reported in https://github.com/rust-lang/rust/issues/34891 and maybe also those in https://github.com/rust-lang/rust/issues/34831.

As a side-effect, this will also solve most of the problematic cases described in https://github.com/rust-lang/rust/issues/34793. Not reliably so, however. For that, we still need a solution like the one implement in https://github.com/rust-lang/rust/pull/34830.

cc @rust-lang/compiler

8 years agoFix doctest of `ExactSizeIterator::is_empty`
Tobias Bucher [Mon, 18 Jul 2016 10:08:37 +0000 (12:08 +0200)]
Fix doctest of `ExactSizeIterator::is_empty`

8 years agoRun base::internalize_symbols() even for single-codegen-unit crates.
Michael Woerister [Mon, 18 Jul 2016 14:16:19 +0000 (10:16 -0400)]
Run base::internalize_symbols() even for single-codegen-unit crates.

The initial linkage-assignment (especially for closures) is a conservative one that makes some symbols more visible than they need to be. While this is not a correctness problem, it does force the LLVM inliner to be more conservative too, which results in poor performance. Once translation is based solely on MIR, it will be easier to also make the initial linkage assignment a better fitting one. Until then `internalize_symbols()` does a good job of preventing most performance regressions.

8 years agoRollup merge of #34889 - infinity0:master, r=sanxiyn
Seo Sanghyeon [Mon, 18 Jul 2016 13:44:57 +0000 (22:44 +0900)]
Rollup merge of #34889 - infinity0:master, r=sanxiyn

Test fixes for ARM64

When these changes are applied, rustc 1.10.0 tests pass successfully on [asachi.debian.org](https://db.debian.org/machines.cgi?host=asachi).

8 years agoRollup merge of #34884 - shepmaster:from_raw_parts_doc, r=@nagisa
Seo Sanghyeon [Mon, 18 Jul 2016 13:44:56 +0000 (22:44 +0900)]
Rollup merge of #34884 - shepmaster:from_raw_parts_doc, r=@nagisa

Improve {String,Vec}::from_raw_parts documentation

8 years agoRollup merge of #34875 - frewsxcv:std-slice-struct, r=GuillaumeGomez
Seo Sanghyeon [Mon, 18 Jul 2016 13:44:56 +0000 (22:44 +0900)]
Rollup merge of #34875 - frewsxcv:std-slice-struct, r=GuillaumeGomez

Indicate where `std::slice` structs originate from.

None

8 years agoRollup merge of #34853 - frewsxcv:vec-truncate, r=GuillaumeGomez
Seo Sanghyeon [Mon, 18 Jul 2016 13:44:56 +0000 (22:44 +0900)]
Rollup merge of #34853 - frewsxcv:vec-truncate, r=GuillaumeGomez

Partial rewrite/expansion of `Vec::truncate` documentation.

None

8 years agoRollup merge of #34807 - sanxiyn:dump-mir, r=nagisa
Seo Sanghyeon [Mon, 18 Jul 2016 13:44:56 +0000 (22:44 +0900)]
Rollup merge of #34807 - sanxiyn:dump-mir, r=nagisa

Remove extra newlines in MIR dump

8 years agoAuto merge of #34886 - jseyfried:improve_stmt_matchers, r=eddyb
bors [Mon, 18 Jul 2016 08:40:23 +0000 (01:40 -0700)]
Auto merge of #34886 - jseyfried:improve_stmt_matchers, r=eddyb

macros: fix bug in `stmt` matchers

Today, `stmt` matchers stop too early when parsing expression statements that begin with non-braced macro invocations. For example,
```rust
fn main() {
    macro_rules! m { ($s:stmt;) => { $s } }
    id!(vec![].push(0););
    //^ Before this PR, the `stmt` matcher only consumes "vec![]", so this is an error.
    //| After this PR, the `stmt` matcher consumes "vec![].push(0)", so this compiles.
}
```
This change is backwards compatible due to the follow set for `stmt`.

r? @eddyb

8 years agoAuto merge of #34860 - jseyfried:encapsulate_hygiene, r=nrc
bors [Mon, 18 Jul 2016 05:12:59 +0000 (22:12 -0700)]
Auto merge of #34860 - jseyfried:encapsulate_hygiene, r=nrc

Clean up and encapsulate `syntax::ext::mtwt`, rename `mtwt` to `hygiene`

r? @nrc

8 years agoRemove extraneous words
Jake Goulding [Sun, 17 Jul 2016 14:55:00 +0000 (10:55 -0400)]
Remove extraneous words

8 years agoDocument from_raw_parts involves ownership transfer
Jake Goulding [Sun, 17 Jul 2016 14:52:59 +0000 (10:52 -0400)]
Document from_raw_parts involves ownership transfer

8 years agoAuto merge of #34876 - frewsxcv:vec-as-mut-slice, r=alexcrichton
bors [Sun, 17 Jul 2016 19:04:51 +0000 (12:04 -0700)]
Auto merge of #34876 - frewsxcv:vec-as-mut-slice, r=alexcrichton

Remove unnecessary indexing and deref in `Vec::as_mut_slice`.

None

8 years agodoc/book: fix tests for non-x86 architectures, such as aarch64
Ximin Luo [Sun, 17 Jul 2016 19:00:24 +0000 (21:00 +0200)]
doc/book: fix tests for non-x86 architectures, such as aarch64

`rustdoc --test` gets confused when "main" exists for some architectures but not others.

8 years agotest: disable more stdcall tests for ARM arches. temp workaround for #24958
Ximin Luo [Sun, 17 Jul 2016 18:57:54 +0000 (20:57 +0200)]
test: disable more stdcall tests for ARM arches. temp workaround for #24958

8 years agoRemove some unit tests and that are redundant with `run-pass/hygiene.rs`
Jeffrey Seyfried [Sat, 16 Jul 2016 19:26:16 +0000 (19:26 +0000)]
Remove some unit tests and that are redundant with `run-pass/hygiene.rs`
and that would be painful to rewrite.

8 years agoRename `mtwt` to `hygiene`
Jeffrey Seyfried [Sat, 16 Jul 2016 19:11:28 +0000 (19:11 +0000)]
Rename `mtwt` to `hygiene`

8 years agoClean up and encapsulate `syntax::ext::mtwt`
Jeffrey Seyfried [Wed, 22 Jun 2016 08:03:42 +0000 (08:03 +0000)]
Clean up and encapsulate `syntax::ext::mtwt`

8 years agoAdd regression test
Jeffrey Seyfried [Sun, 17 Jul 2016 15:46:21 +0000 (15:46 +0000)]
Add regression test

8 years agoAuto merge of #34871 - petrochenkov:inherent, r=jseyfried
bors [Sun, 17 Jul 2016 16:07:50 +0000 (09:07 -0700)]
Auto merge of #34871 - petrochenkov:inherent, r=jseyfried

Do not resolve inherent static methods from other crates prematurely

Under some specific circumstances paths like `Type::method` can be resolved early in rustc_resolve instead of type checker. `Type` must be defined in another crate, it should be an enum or a trait object (i.e. a type that acts as a "module" in resolve), and `method` should be an inherent static method.
As a result, such paths don't go through `resolve_ufcs`, may be resolved incorrectly and break some invariants in type checker. This patch removes special treatment of such methods.

The removed code was introduced in https://github.com/rust-lang/rust/commit/2bd46e767c0fe5b6188df61cb9daf8f2e65a3ed0 to fix a problem that no longer exists.

r? @jseyfried

8 years agomacros: Fix bug in statement matchers
Jeffrey Seyfried [Sat, 16 Jul 2016 20:41:43 +0000 (20:41 +0000)]
macros: Fix bug in statement matchers

8 years agoIndicate where `std::slice` structs originate from.
Corey Farwell [Sun, 17 Jul 2016 01:42:11 +0000 (21:42 -0400)]
Indicate where `std::slice` structs originate from.

8 years agoAuto merge of #34829 - cgswords:tstream, r=nrc
bors [Sun, 17 Jul 2016 10:05:08 +0000 (03:05 -0700)]
Auto merge of #34829 - cgswords:tstream, r=nrc

Added tokenstream parser procedure

A tiny PR that simply adds a procedure for parsing `TokenStream`s to the parser in `src/libsyntax`. This is to ease using `TokenStream`s with the current (old) procedural macro system.

8 years agoImplement traits for variadic function pointers
Vadim Petrochenkov [Sat, 16 Jul 2016 21:15:15 +0000 (00:15 +0300)]
Implement traits for variadic function pointers

8 years agoAuto merge of #34789 - jonathandturner:simplify_liberror, r=alexcrichton
bors [Sun, 17 Jul 2016 07:06:29 +0000 (00:06 -0700)]
Auto merge of #34789 - jonathandturner:simplify_liberror, r=alexcrichton

Simplify librustc_errors

This is part 2 of the error crate refactor, starting with #34403.

In this refactor, I focused on slimming down the error crate to fewer moving parts.  As such, I've removed quite a few parts and replaced the with simpler, straight-line code.  Specifically, this PR:

* Removes BasicEmitter
* Remove emit from emitter, leaving emit_struct
* Renames emit_struct to emit
* Removes CoreEmitter and focuses on a single Emitter
* Implements the latest changes to error format RFC (#1644)
* Removes (now-unused) code in emitter.rs and snippet.rs
* Moves more tests to the UI tester, removing some duplicate tests in the process

There is probably more that could be done with some additional refactoring, but this felt like it was getting to a good state.

r? @alexcrichton   cc: @Manishearth (as there may be breaking changes in stuff I removed/changed)

8 years agoAuto merge of #34606 - mathstuf:llvm-with-ninja, r=alexcrichton
bors [Sun, 17 Jul 2016 04:09:15 +0000 (21:09 -0700)]
Auto merge of #34606 - mathstuf:llvm-with-ninja, r=alexcrichton

llvm, rt: build using the Ninja generator if available

The Ninja generator generally builds much faster than make. It may also
be used on Windows to have a vast speed improvement over the Visual
Studio generators.

Currently hidden behind an `--enable-ninja` flag because it does not
obey the top-level `-j` or `-l` flags given to `make`.

8 years agoRemove unnecessary indexing and deref in `Vec::as_mut_slice`.
Corey Farwell [Sun, 17 Jul 2016 02:09:55 +0000 (22:09 -0400)]
Remove unnecessary indexing and deref in `Vec::as_mut_slice`.

8 years agoAuto merge of #34852 - GuillaumeGomez:rollup, r=GuillaumeGomez
bors [Sun, 17 Jul 2016 00:40:28 +0000 (17:40 -0700)]
Auto merge of #34852 - GuillaumeGomez:rollup, r=GuillaumeGomez

Rollup of 7 pull requests

- Successful merges: #33362, #34768, #34837, #34838, #34847, #34848, #34849
- Failed merges: #33951, #34850

8 years agoDo not resolve inherent static methods from other crates prematurely
Vadim Petrochenkov [Sat, 16 Jul 2016 21:15:15 +0000 (00:15 +0300)]
Do not resolve inherent static methods from other crates prematurely

8 years agoAuto merge of #34846 - jonas-schievink:issue34839, r=eddyb
bors [Sat, 16 Jul 2016 20:38:51 +0000 (13:38 -0700)]
Auto merge of #34846 - jonas-schievink:issue34839, r=eddyb

Variant Size Differences: Erase regions before computing type layout

Fixes #34839

8 years agoMerge pull request #34862 from TimNN/revert-34836-panic-counter
Alex Crichton [Sat, 16 Jul 2016 20:38:06 +0000 (13:38 -0700)]
Merge pull request #34862 from TimNN/revert-34836-panic-counter

Revert #34836 "Refactored code to access TLS only in case of panic"

8 years agoRevert "Refactored code to access TLS only in case of panic"
Tim Neumann [Sat, 16 Jul 2016 20:19:43 +0000 (22:19 +0200)]
Revert "Refactored code to access TLS only in case of panic"

8 years agoMerge pull request #34836 from cynicaldevil/panic-counter
Alex Crichton [Sat, 16 Jul 2016 17:10:17 +0000 (10:10 -0700)]
Merge pull request #34836 from cynicaldevil/panic-counter

Refactored code to access TLS only in case of panic

8 years agoPartial rewrite/expansion of `Vec::truncate` documentation.
Corey Farwell [Sat, 16 Jul 2016 15:20:17 +0000 (11:20 -0400)]
Partial rewrite/expansion of `Vec::truncate` documentation.

8 years agoRollup merge of #34849 - tshepang:patch-2, r=apasel422
Guillaume Gomez [Sat, 16 Jul 2016 14:55:59 +0000 (16:55 +0200)]
Rollup merge of #34849 - tshepang:patch-2, r=apasel422

doc: remove extraneous word

8 years agoRollup merge of #34848 - tshepang:patch-1, r=apasel422
Guillaume Gomez [Sat, 16 Jul 2016 14:55:59 +0000 (16:55 +0200)]
Rollup merge of #34848 - tshepang:patch-1, r=apasel422

doc: remove stray comma

8 years agoRollup merge of #34847 - baskerville:unwanted-tag, r=apasel422
Guillaume Gomez [Sat, 16 Jul 2016 14:55:59 +0000 (16:55 +0200)]
Rollup merge of #34847 - baskerville:unwanted-tag, r=apasel422

Add missing inline code delimiters around Vec<T>

r? @steveklabnik

8 years agoRollup merge of #34838 - steveklabnik:gh33677, r=alexcrichton
Guillaume Gomez [Sat, 16 Jul 2016 14:55:59 +0000 (16:55 +0200)]
Rollup merge of #34838 - steveklabnik:gh33677, r=alexcrichton

Fix up documentation around no_std

1. Fix the sections in the book to have the correct signatures. I've
   also marked them as `ignore`; there's no way to set the `no_std`
   feature for libc, so it pulls in the stdlib, so this wasn't even
   testing the actual thing it was testing. Better to just ignore.
2. Correcting libcore's docs for factual inaccuracy, and add a note
   about language items.

Fixes #33677

r? @alexcrichton

8 years agoRollup merge of #34837 - GuillaumeGomez:better_example, r=nagisa
Guillaume Gomez [Sat, 16 Jul 2016 14:55:59 +0000 (16:55 +0200)]
Rollup merge of #34837 - GuillaumeGomez:better_example, r=nagisa

Improve float number example

r? @nagisa

8 years agoRollup merge of #34768 - alexcrichton:issue-audit, r=aturon
Guillaume Gomez [Sat, 16 Jul 2016 14:55:58 +0000 (16:55 +0200)]
Rollup merge of #34768 - alexcrichton:issue-audit, r=aturon

std: Correct tracking issue for SipHash{13,24}

The referenced tracking issue was closed and was actually about changing the
algorithm.

cc #34767

8 years agoRollup merge of #33362 - andradei:master, r=Manishearth
Guillaume Gomez [Sat, 16 Jul 2016 14:55:57 +0000 (16:55 +0200)]
Rollup merge of #33362 - andradei:master, r=Manishearth

Add mention to RFC 940 in the Rust Reference.

This PR adds a mention to hyphens in Cargo package names being replaced by underscores when used as a crate, as per [RFC 940](https://github.com/rust-lang/rfcs/blob/master/text/0940-hyphens-considered-harmful.md)

It also formats the RFCs consistently as RFC XXX instead of RFCXXX.

8 years agoAuto merge of #34816 - jseyfried:fix_include_path, r=nrc
bors [Sat, 16 Jul 2016 13:34:01 +0000 (06:34 -0700)]
Auto merge of #34816 - jseyfried:fix_include_path, r=nrc

Fix `include!()`s inside `asm!()` invocations

Fixes #34812, a regression caused by #33749 that was not fixed in #34450.
r? @nrc

8 years agodoc: remove extraneous word
Tshepang Lekhonkhobe [Sat, 16 Jul 2016 09:13:29 +0000 (11:13 +0200)]
doc: remove extraneous word

8 years agodoc: remove stray comma
Tshepang Lekhonkhobe [Sat, 16 Jul 2016 09:10:05 +0000 (11:10 +0200)]
doc: remove stray comma

8 years agoAdd missing inline code delimiters around Vec<T>
Bastien Dejean [Sat, 16 Jul 2016 08:50:19 +0000 (10:50 +0200)]
Add missing inline code delimiters around Vec<T>

8 years agoErase regions before computing type layout
Jonas Schievink [Sat, 16 Jul 2016 08:45:13 +0000 (10:45 +0200)]
Erase regions before computing type layout

Fixes #34839

8 years agoAuto merge of #34779 - infinity0:master, r=alexcrichton
bors [Sat, 16 Jul 2016 08:19:16 +0000 (01:19 -0700)]
Auto merge of #34779 - infinity0:master, r=alexcrichton

If local-rust is the same as the current version, then force a local-rebuild

In Debian, we would like the option to build/rebuild the current release from
*either* the current or previous stable release. So we use enable-local-rust
instead of enable-local-rebuild, and read the bootstrap key dynamically from
whatever is installed locally.

In general, it does not make much sense to allow enable-local-rust without also
setting the bootstrap key, since the build would fail otherwise.

(The way I detect "the bootstrap key of [the local] rustc installation" is a bit hacky, suggestions welcome.)

8 years agoAuto merge of #34676 - aravind-pg:inner-attr, r=brson
bors [Sat, 16 Jul 2016 05:21:40 +0000 (22:21 -0700)]
Auto merge of #34676 - aravind-pg:inner-attr, r=brson

Better error message for inner attribute following doc comment

Before it was always just "an inner attribute is not permitted in this context", whereas now we add a special case for when an inner attr follows an outer attr. If the outer attr is a doc comment, then the error is "an inner attr is not permitted following a doc comment", and otherwise it's "an inner attr is not permitted following an outer attribute". In all other cases it's still  "an inner attribute is not permitted in this context".

Note that the public API and behaviour of `parse_attribute` is unchanged. Also, all new names are very open to bikeshedding -- they're arguably clunky.

Fixes #34516. cc @brson

8 years agosyntax: Better error message for inner attr following doc comment
Aravind Gollakota [Wed, 6 Jul 2016 04:35:12 +0000 (21:35 -0700)]
syntax: Better error message for inner attr following doc comment

8 years agoAuto merge of #34841 - alexcrichton:no-mips-soft-float, r=brson
bors [Sat, 16 Jul 2016 00:36:22 +0000 (17:36 -0700)]
Auto merge of #34841 - alexcrichton:no-mips-soft-float, r=brson

mk: Don't pass -msoft-float on mips-gnu

Soon the LLVM upgrade (#34743) will require an updated CMake installation, and
the easiest way to do this was to upgrade the Ubuntu version of the bots to
16.04. This in turn brings in a new MIPS compiler on the linux-cross builder,
which is now from the "official" ubuntu repositories. Unfortunately these
new compilers don't support compiling with the `-msoft-float` flag like we're
currently passing, causing compiles to fail.

This commit removes these flags as it's not clear *why* they're being passed, as
the mipsel targets also don't have it. At least if it's not supported by a
debian default compiler, perhaps it's not too relevant to support?

8 years agoAdded tokenstream parser procedure
cgswords [Thu, 14 Jul 2016 16:52:43 +0000 (09:52 -0700)]
Added tokenstream parser procedure

8 years agomk: Don't pass -msoft-float on mips-gnu
Alex Crichton [Fri, 15 Jul 2016 04:48:41 +0000 (21:48 -0700)]
mk: Don't pass -msoft-float on mips-gnu

Soon the LLVM upgrade (#34743) will require an updated CMake installation, and
the easiest way to do this was to upgrade the Ubuntu version of the bots to
16.04. This in turn brings in a new MIPS compiler on the linux-cross builder,
which is now from the "official" ubuntu repositories. Unfortunately these
new compilers don't support compiling with the `-msoft-float` flag like we're
currently passing, causing compiles to fail.

This commit removes these flags as it's not clear *why* they're being passed, as
the mipsel targets also don't have it. At least if it's not supported by a
debian default compiler, perhaps it's not too relevant to support?

8 years agoFix up documentation around no_std
Steve Klabnik [Fri, 15 Jul 2016 17:17:35 +0000 (13:17 -0400)]
Fix up documentation around no_std

1. Fix the sections in the book to have the correct signatures. I've
   also marked them as `ignore`; there's no way to set the `no_std`
   feature for libc, so it pulls in the stdlib, so this wasn't even
   testing the actual thing it was testing. Better to just ignore.
2. Correcting libcore's docs for factual inaccuracy, and add a note
   about language items.

Fixes #33677

8 years agoRefactored code to access TLS only in case of panic
Nikhil Shagrithaya [Fri, 15 Jul 2016 15:17:45 +0000 (20:47 +0530)]
Refactored code to access TLS only in case of panic

8 years agorustbuild: If local-rust is the same as the current version, then force a local-rebuild
Ximin Luo [Thu, 14 Jul 2016 17:39:55 +0000 (19:39 +0200)]
rustbuild: If local-rust is the same as the current version, then force a local-rebuild

8 years agomk: If local-rust is the same as the current version, then force a local-rebuild
Ximin Luo [Thu, 14 Jul 2016 17:32:53 +0000 (19:32 +0200)]
mk: If local-rust is the same as the current version, then force a local-rebuild

8 years agoImprove float number example
Guillaume Gomez [Fri, 15 Jul 2016 15:51:27 +0000 (17:51 +0200)]
Improve float number example

8 years agoAuto merge of #34570 - jseyfried:no_rename, r=nrc
bors [Fri, 15 Jul 2016 15:48:41 +0000 (08:48 -0700)]
Auto merge of #34570 - jseyfried:no_rename, r=nrc

Simplify the macro hygiene algorithm

This PR removes renaming from the hygiene algorithm and treats differently marked identifiers as unequal.

This change makes the scope of identifiers in `macro_rules!` items empty. That is, identifiers in `macro_rules!` definitions do not inherit any semantics from the `macro_rules!`'s scope.

Since `macro_rules!` macros are items, the scope of their identifiers "should" be the same as that of other items; in particular, the scope should contain only items. Since all items are unhygienic today, this would mean the scope should be empty.

However, the scope of an identifier in a `macro_rules!` statement today is the scope that the identifier would have if it replaced the `macro_rules!` (excluding anything unhygienic, i.e. locals only).

To continue to support this, this PR tracks the scope of each `macro_rules!` and uses it in `resolve` to ensure that an identifier expanded from a `macro_rules!` gets a chance to resolve to the locals in the `macro_rules!`'s scope.

This PR is a pure refactoring. After this PR,
 - `syntax::ext::expand` is much simpler.
 - We can expand macros in any order without causing problems for hygiene (needed for macro modularization).
 - We can deprecate or remove today's `macro_rules!` scope easily.
 - Expansion performance improves by 25%, post-expansion memory usage decreases by ~5%.
 - Expanding a block is no longer quadratic in the number of `let` statements (fixes #10607).

r? @nrc

8 years agoRemove unused import
Jonathan Turner [Fri, 15 Jul 2016 12:47:12 +0000 (08:47 -0400)]
Remove unused import

8 years agoNudge travis by commenting a little
Jonathan Turner [Fri, 15 Jul 2016 10:52:19 +0000 (06:52 -0400)]
Nudge travis by commenting a little

8 years agoAuto merge of #34819 - GuillaumeGomez:rollup, r=GuillaumeGomez
bors [Fri, 15 Jul 2016 10:06:58 +0000 (03:06 -0700)]
Auto merge of #34819 - GuillaumeGomez:rollup, r=GuillaumeGomez

Rollup of 7 pull requests

- Successful merges: #34456, #34733, #34777, #34794, #34799, #34804, #34818
- Failed merges: #33951

8 years agoRollup merge of #34818 - frewsxcv:vecdoc, r=GuillaumeGomez
Guillaume Gomez [Fri, 15 Jul 2016 08:56:43 +0000 (10:56 +0200)]
Rollup merge of #34818 - frewsxcv:vecdoc, r=GuillaumeGomez

Mention where `std::vec` structs originate from.

None

8 years agoRollup merge of #34804 - GuillaumeGomez:fix_ret, r=steveklabnik
Guillaume Gomez [Fri, 15 Jul 2016 08:56:43 +0000 (10:56 +0200)]
Rollup merge of #34804 - GuillaumeGomez:fix_ret, r=steveklabnik

Add examples for FpCategory

Fixes #29364.

r? @steveklabnik

8 years agoRollup merge of #34799 - wuranbo:patch-3, r=steveklabnik
Guillaume Gomez [Fri, 15 Jul 2016 08:56:43 +0000 (10:56 +0200)]
Rollup merge of #34799 - wuranbo:patch-3, r=steveklabnik

doc: ffi referenced rust-snappy can not compile

r? @steveklabnik

The referenced code https://github.com/thestinger/rust-snappy can not work. Maybe it's the old rust version? I do not know.
So I try to rewrite these test cases. If it is not what you originally meaning, just ignored it.

8 years agoRollup merge of #34794 - frewsxcv:exitstatus-success, r=GuillaumeGomez
Guillaume Gomez [Fri, 15 Jul 2016 08:56:43 +0000 (10:56 +0200)]
Rollup merge of #34794 - frewsxcv:exitstatus-success, r=GuillaumeGomez

Add doc example for `std::process::ExitStatus::success`.

None

8 years agoRollup merge of #34777 - glandium:issue34697, r=GuillaumeGomez
Guillaume Gomez [Fri, 15 Jul 2016 08:56:42 +0000 (10:56 +0200)]
Rollup merge of #34777 - glandium:issue34697, r=GuillaumeGomez

doc: Mention that writeln! and println! always use LF

Fixes #34697

I'm not really satisfied with the wording, but I didn't have a better idea. Suggestions welcome.

8 years agoRollup merge of #34733 - izgzhen:alloc-arc-doc-improve, r=steveklabnik
Guillaume Gomez [Fri, 15 Jul 2016 08:56:42 +0000 (10:56 +0200)]
Rollup merge of #34733 - izgzhen:alloc-arc-doc-improve, r=steveklabnik

Improve arc doc, fixing #32905

As issue #32905 detailed, I moved part of the module doc to the struct doc, and fixed some small places in the `alloc::arc`.

8 years agoRollup merge of #34456 - tbu-:pr_ptr_null, r=aturon
Guillaume Gomez [Fri, 15 Jul 2016 08:56:42 +0000 (10:56 +0200)]
Rollup merge of #34456 - tbu-:pr_ptr_null, r=aturon

Use `ptr::{null, null_mut}` instead of `0 as *{const, mut}`

8 years agoAdd labels hygiene test
Jeffrey Seyfried [Fri, 15 Jul 2016 05:23:55 +0000 (05:23 +0000)]
Add labels hygiene test

8 years agoInclude the `MacroDefinition` rib in the label ribs.
Jeffrey Seyfried [Fri, 15 Jul 2016 05:14:48 +0000 (05:14 +0000)]
Include the `MacroDefinition` rib in the label ribs.

8 years agoAuto merge of #34801 - TimNN:rustbuild-doc-fixes, r=alexcrichton
bors [Fri, 15 Jul 2016 03:29:54 +0000 (20:29 -0700)]
Auto merge of #34801 - TimNN:rustbuild-doc-fixes, r=alexcrichton

rustbuild: doc fixes

This fixes two issues rustbuild currently has when building documentation:

1. It fixes standalone builds of `doc-test` and `doc-rustc`.
2. It actually builds the compiler docs if requested in the config.

Closes #34275.

8 years agoMention where `std::vec` structs originate from.
Corey Farwell [Thu, 14 Jul 2016 13:34:43 +0000 (09:34 -0400)]
Mention where `std::vec` structs originate from.

8 years agoAuto merge of #34599 - cuviper:unicode-9.0, r=alexcrichton
bors [Fri, 15 Jul 2016 00:29:16 +0000 (17:29 -0700)]
Auto merge of #34599 - cuviper:unicode-9.0, r=alexcrichton

Update Unicode tables to 9.0

I just updated `unicode.py`'s generated copyright year, then ran it.

8 years agoFix compile-fail test for `ExactSizeIterator::is_empty`
Tobias Bucher [Tue, 12 Jul 2016 08:43:37 +0000 (10:43 +0200)]
Fix compile-fail test for `ExactSizeIterator::is_empty`

8 years agoAuto merge of #34797 - doomrobo:fix-import-trait-method, r=jseyfried
bors [Thu, 14 Jul 2016 21:33:17 +0000 (14:33 -0700)]
Auto merge of #34797 - doomrobo:fix-import-trait-method, r=jseyfried

Fixed issue where importing a trait method directly and then calling the method causes a compiler panic

The code below triggers the panic, and is included in a new regression test.

```rust
trait Foo {
    fn foo();
}

use Foo::foo;

fn main() {
    foo();
}
```
The bug is caused by `librustc_resolve` allowing the illegal binding to be imported even after displaying the error message above.

The fix amounts to importing a dummy binding (`rustc::hir::def::Def::Err`) instead of the actual trait method.

8 years agoFix up more tests that I missed
Jonathan Turner [Thu, 14 Jul 2016 19:43:53 +0000 (15:43 -0400)]
Fix up more tests that I missed

8 years agoAuto merge of #34824 - alexcrichton:fix-nightlies, r=brson
bors [Thu, 14 Jul 2016 18:40:14 +0000 (11:40 -0700)]
Auto merge of #34824 - alexcrichton:fix-nightlies, r=brson

test: Remove NOTE assertions from trace_macros-gate

If no NOTE assertions are present I believe they aren't asserted at all, and it
looks like the number of NOTEs differs on distcheck vs `make check`, so let's
just remove them all.

Closes #18154

8 years agotest: Remove NOTE assertions from trace_macros-gate
Alex Crichton [Thu, 14 Jul 2016 17:27:56 +0000 (10:27 -0700)]
test: Remove NOTE assertions from trace_macros-gate

If no NOTE assertions are present I believe they aren't asserted at all, and it
looks like the number of NOTEs differs on distcheck vs `make check`, so let's
just remove them all.

Closes #18154

8 years agoRemove more unused imports
Jonathan Turner [Thu, 14 Jul 2016 17:25:06 +0000 (13:25 -0400)]
Remove more unused imports

8 years agomk: Move some definitions after their dependencies, to be visually less confusing
Ximin Luo [Thu, 14 Jul 2016 15:13:13 +0000 (17:13 +0200)]
mk: Move some definitions after their dependencies, to be visually less confusing

8 years agoAdd unicode test to ui tests
Jonathan Turner [Thu, 14 Jul 2016 14:55:09 +0000 (10:55 -0400)]
Add unicode test to ui tests

8 years agoRemove unused imports
Jonathan Turner [Thu, 14 Jul 2016 14:36:23 +0000 (10:36 -0400)]
Remove unused imports

8 years agoAuto merge of #34783 - Dridi:cdylib_usage, r=alexcrichton
bors [Thu, 14 Jul 2016 13:37:30 +0000 (06:37 -0700)]
Auto merge of #34783 - Dridi:cdylib_usage, r=alexcrichton

Mention the crate type cdylib in rustc's usage

Hello,

I just tried to build a `cdylib` with the latest stable release, I've been passively waiting for this for quite some time now. Tested successfully on my machine, although it doesn't appear in `rustc`'s usage it seems to work like a charm so far. :grinning:

Thanks!

8 years agoAdd back in import needed for codemap tests
Jonathan Turner [Thu, 14 Jul 2016 13:02:48 +0000 (09:02 -0400)]
Add back in import needed for codemap tests

8 years agoTeach EmitterWriter about the dangers of quasi-quoting
Jonathan Turner [Thu, 14 Jul 2016 10:50:50 +0000 (06:50 -0400)]
Teach EmitterWriter about the dangers of quasi-quoting