]> git.lizzy.rs Git - rust.git/log
rust.git
8 years agoMake vec::Drain and binary_heap::Drain covariant
Thomas Garcia [Thu, 21 Jul 2016 08:03:40 +0000 (01:03 -0700)]
Make vec::Drain and binary_heap::Drain covariant

8 years agoadd mir optimization tests, dump-mir-dir option
Scott A Carr [Thu, 7 Jul 2016 23:40:01 +0000 (16:40 -0700)]
add mir optimization tests, dump-mir-dir option

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 agostd: Fix usage of SOCK_CLOEXEC
Alex Crichton [Thu, 21 Jul 2016 00:26:12 +0000 (17:26 -0700)]
std: Fix usage of SOCK_CLOEXEC

This code path was intended to only get executed on Linux, but unfortunately the
`cfg!` was malformed so it actually never got executed.

8 years agocore: impl From<T> for Option<T>
Sean McArthur [Thu, 14 Jul 2016 19:17:39 +0000 (12:17 -0700)]
core: impl From<T> for Option<T>

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 agotrans: Make base::internalize_symbols() respect explicit linkage directives.
Michael Woerister [Wed, 20 Jul 2016 11:55:45 +0000 (07:55 -0400)]
trans: Make base::internalize_symbols() respect explicit linkage directives.

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 agoAdd doc for btree_map types
ggomez [Tue, 19 Jul 2016 12:40:42 +0000 (14:40 +0200)]
Add doc for btree_map types

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 agoAdd the missing tracking issue field for #34931 to the receiver_try_iter stability...
mitchmindtree [Wed, 20 Jul 2016 04:49:40 +0000 (14:49 +1000)]
Add the missing tracking issue field for #34931 to the receiver_try_iter stability attributes

8 years agoAdd doc examples for `Vec::{as_slice,as_mut_slice}`.
Corey Farwell [Wed, 20 Jul 2016 00:38:35 +0000 (20:38 -0400)]
Add doc examples for `Vec::{as_slice,as_mut_slice}`.

8 years agoIntroduced `NoDelim` and modified the compiler to support it.
cgswords [Tue, 19 Jul 2016 20:00:45 +0000 (13:00 -0700)]
Introduced `NoDelim` and modified the compiler to support it.

8 years agoAdd regression test.
Jeffrey Seyfried [Tue, 19 Jul 2016 20:16:23 +0000 (20:16 +0000)]
Add regression test.

8 years agoSupport nested `macro_rules!`.
Jeffrey Seyfried [Tue, 19 Jul 2016 20:01:54 +0000 (20:01 +0000)]
Support nested `macro_rules!`.

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 agoRewrite/expand doc examples for `Vec::set_len`.
Corey Farwell [Tue, 19 Jul 2016 02:29:05 +0000 (22:29 -0400)]
Rewrite/expand doc examples for `Vec::set_len`.

8 years ago[CSS] Fix unwanted top margin for toggle wrapper
ggomez [Tue, 19 Jul 2016 13:03:32 +0000 (15:03 +0200)]
[CSS] Fix unwanted top margin for toggle wrapper

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 codegen test to make sure that closures are 'internalized' properly.
Michael Woerister [Tue, 19 Jul 2016 10:22:35 +0000 (06:22 -0400)]
Add codegen test to make sure that closures are 'internalized' properly.

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 agoFix wrong condition in base::internalize_symbols().
Michael Woerister [Tue, 19 Jul 2016 09:47:28 +0000 (05:47 -0400)]
Fix wrong condition in base::internalize_symbols().

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 agorustc: Remove soft-float from MIPS targets
Alex Crichton [Mon, 18 Jul 2016 23:25:11 +0000 (16:25 -0700)]
rustc: Remove soft-float from MIPS targets

Right now two MIPS targets in the compiler, `mips-unknown-linux-{gnu,musl}` both
generate object files using the soft-float ABI through LLVM by default. This is
also expressed as the `-C soft-float` codegen option and otherwise isn't used
for any other target in the compiler. This option was added quite some time ago
(back in #9617), and nowadays it's more appropriate to be done through a codegen
option.

This is motivated by #34743 which necessitated an upgrade in the CMake
installation on our bots which necessitated an upgrade in the Ubuntu version
which invalidated the MIPS compilers we were using. The new MIPS compilers
(coming from Debian I believe) all have hard float enabled by default and soft
float support not built in. This meant that we couldn't upgrade the bots
until #34841 landed because otherwise we would fail to compile C code as the
`-msoft-float` option wouldn't work.

Unfortunately, though, this means that once we upgrade the bots the C code we're
compiling will be compiled for hard float and the Rust code will be compiled
for soft float, a bad mismatch! This PR remedies the situation such that Rust
will compile with hard float as well.

If this lands it will likely produce broken nightlies for a day or two while we
get around to upgrading the bots because the current C toolchain only produces
soft-float binaries, and now rust will be hard-float. Hopefully, though, the
upgrade can go smoothly!

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 agouse a new feature name for String AddAssign
Jack O'Connor [Mon, 18 Jul 2016 18:27:17 +0000 (14:27 -0400)]
use a new feature name for String AddAssign

8 years agoupdate the since field to 1.12.0 for String AddAssign
Jack O'Connor [Mon, 18 Jul 2016 18:00:35 +0000 (14:00 -0400)]
update the since field to 1.12.0 for String AddAssign

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 agoAdd `librustc_driver::driver::reset_thread_local_state` and
Jeffrey Seyfried [Sat, 16 Jul 2016 16:12:56 +0000 (16:12 +0000)]
Add `librustc_driver::driver::reset_thread_local_state` and
remove the thread local state reset at the beginning of `phase_1_parse_input`.

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 agoRemove rustdoc reference to `walk_dir`
Mark Buer [Mon, 18 Jul 2016 08:24:15 +0000 (17:54 +0930)]
Remove rustdoc reference to `walk_dir`

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 agoAdd debug for hash_map::{Entry, VacantEntry, OccupiedEntry}
ggomez [Wed, 20 Jul 2016 13:02:33 +0000 (15:02 +0200)]
Add debug for hash_map::{Entry, VacantEntry, OccupiedEntry}

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 agoimplement AddAssign for String
Jack O'Connor [Sun, 17 Jul 2016 15:31:44 +0000 (11:31 -0400)]
implement AddAssign for String

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 agoMake .enumerate() example self-explanatory
Novotnik, Petr [Sun, 17 Jul 2016 10:06:10 +0000 (12:06 +0200)]
Make .enumerate() example self-explanatory

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 agoAdd examples for LinkedList
Guillaume Gomez [Sat, 16 Jul 2016 15:27:55 +0000 (17:27 +0200)]
Add examples for LinkedList

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 agoAdd examples for VecDeque
Guillaume Gomez [Sat, 16 Jul 2016 16:00:05 +0000 (18:00 +0200)]
Add examples for VecDeque

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