Commit Graph

65129 Commits

Author SHA1 Message Date
Mark Simulacrum
a56fef8d2c Rollup merge of #42799 - leodasvacas:impl-clone-for-default-hasher, r=sfackler
Impl Clone for DefaultHasher

It's useful for a hasher to be `Clone`. It's also strange for any type to not be `Clone`. `DefaultHasher` is not meant to be used directly, but being in std it can be useful as a placeholder. I don't see any forward compatibility hazard if the hasher is changed since it's very rare for something to not be `Clone`.
2017-06-22 06:30:09 -06:00
bors
03c8b92dc1 Auto merge of #42803 - michaelwoerister:msdia-workaround, r=vadimcn
debuginfo: Work around crash-bug in MSDIA library

Fixes https://github.com/rust-lang/rust/issues/40477 (which also contains a description of the issue being fixed).

r? @vadimcn
2017-06-22 08:10:27 +00:00
Michael Woerister
8261413591 debuginfo: Work around crash-bug in MSDIA library 2017-06-22 09:49:44 +02:00
bors
efdf55d048 Auto merge of #42785 - Mark-Simulacrum:fix-verbose-bootstrap, r=alexcrichton
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.

Fixes https://github.com/rust-lang/rust/issues/42543.

r? @alexcrichton

cc @infinity0 @kyrias
2017-06-22 05:50:58 +00:00
bors
80271e8edf Auto merge of #42682 - alexcrichton:jobserver, r=michaelwoerister
Integrate jobserver support to parallel codegen

This commit integrates the `jobserver` crate into the compiler. The crate was
previously integrated in to Cargo as part of rust-lang/cargo#4110. The purpose
here is to two-fold:

* Primarily the compiler can cooperate with Cargo on parallelism. When you run
  `cargo build -j4` then this'll make sure that the entire build process between
  Cargo/rustc won't use more than 4 cores, whereas today you'd get 4 rustc
  instances which may all try to spawn lots of threads.

* Secondarily rustc/Cargo can now integrate with a foreign GNU `make` jobserver.
  This means that if you call cargo/rustc from `make` or another
  jobserver-compatible implementation it'll use foreign parallelism settings
  instead of creating new ones locally.

As the number of parallel codegen instances in the compiler continues to grow
over time with the advent of incremental compilation it's expected that this'll
become more of a problem, so this is intended to nip concurrent concerns in the
bud by having all the tools to cooperate!

Note that while rustc has support for itself creating a jobserver it's far more
likely that rustc will always use the jobserver configured by Cargo. Cargo today
will now set a jobserver unconditionally for rustc to use.
2017-06-22 00:32:42 +00:00
bors
6de26f42de Auto merge of #42771 - arielb1:no-inline-unwind, r=nagisa
mark calls in the unwind path as !noinline

The unwind path is always cold, so that should not have bad performance
implications.  This avoids catastrophic exponential inlining, and also
decreases the size of librustc.so by 1.5% (OTOH, the size of `libstd.so`
increased by 0.5% for some reason).

Fixes #41696.

r? @nagisa
2017-06-21 21:29:45 +00:00
bors
622e7e6487 Auto merge of #42802 - frewsxcv:rollup, r=frewsxcv
Rollup of 4 pull requests

- Successful merges: #42397, #42620, #42762, #42766
- Failed merges:
2017-06-21 15:26:55 +00:00
Corey Farwell
80e14a0fe3 Rollup merge of #42766 - nrc:versions, r=nagisa
Update rls-data version

And update the RLS submod
2017-06-21 10:40:17 -04:00
Corey Farwell
30a7bfcaae Rollup merge of #42762 - jackpot51:patch-1, r=sfackler
Disable repr(simd) in mem::swap on Redox

This addresses https://github.com/rust-lang/rust/issues/42761
2017-06-21 10:40:16 -04:00
Corey Farwell
d33e2c5181 Rollup merge of #42620 - wesleywiser:compile_error, r=brson
Add compile_error!

Related to #40872
2017-06-21 10:40:15 -04:00
Corey Farwell
292fcc880f Rollup merge of #42397 - sfackler:syncsender-sync, r=alexcrichton
Implement Sync for SyncSender

r? @alexcrichton
2017-06-21 10:40:14 -04:00
Alex Crichton
201f06988f Integrate jobserver support to parallel codegen
This commit integrates the `jobserver` crate into the compiler. The crate was
previously integrated in to Cargo as part of rust-lang/cargo#4110. The purpose
here is to two-fold:

* Primarily the compiler can cooperate with Cargo on parallelism. When you run
  `cargo build -j4` then this'll make sure that the entire build process between
  Cargo/rustc won't use more than 4 cores, whereas today you'd get 4 rustc
  instances which may all try to spawn lots of threads.

* Secondarily rustc/Cargo can now integrate with a foreign GNU `make` jobserver.
  This means that if you call cargo/rustc from `make` or another
  jobserver-compatible implementation it'll use foreign parallelism settings
  instead of creating new ones locally.

As the number of parallel codegen instances in the compiler continues to grow
over time with the advent of incremental compilation it's expected that this'll
become more of a problem, so this is intended to nip concurrent concerns in the
bud by having all the tools to cooperate!

Note that while rustc has support for itself creating a jobserver it's far more
likely that rustc will always use the jobserver configured by Cargo. Cargo today
will now set a jobserver unconditionally for rustc to use.
2017-06-21 07:16:43 -07:00
Leonardo Yvens
6e628bee95 Impl Clone for DefaultHasher 2017-06-21 10:47:29 -03:00
bors
39220a9d9f Auto merge of #42751 - arielb1:fast-representable, r=eddyb
Memoize types in `is_representable` to avoid exponential worst-case

I could have made representability a cached query, but that would have
been added complexity for not much benefit - outside of the exponential
worst-case, this pass is fast enough already.

Fixes #42747.

r? @eddyb
2017-06-21 12:28:48 +00:00
bors
03198da2ad Auto merge of #42750 - arielb1:unwind-stack, r=eddyb
Update LLVM to pick StackColoring improvement

Fixes #40883.

r? @eddyb
2017-06-21 10:06:13 +00:00
bors
37a991abc0 Auto merge of #42664 - alexcrichton:moar-crates, r=eddyb
Remove in-tree flate/getopts crates

Remove `src/libflate` in favor of `flate2` on crates.io and `src/libgetopts` in favor of `getopts` on crates.io. The replacements have slightly different APIs and the usage in the compiler has been updated to reflect this.

This uncovered an unfortunate limitation of the compiler today to deal with linking everything correctly, and the workaround can be found documented in `src/librustc/Cargo.toml`.
2017-06-21 06:27:36 +00:00
bors
6ccfe68076 Auto merge of #42002 - sfackler:trusted-read, r=alexcrichton
Add a Read::initializer method

This is an API that allows types to indicate that they can be passed
buffers of uninitialized memory which can improve performance.

cc @SimonSapin

r? @alexcrichton
2017-06-21 04:14:46 +00:00
Steven Fackler
ecbb896b9e Add Read::initializer.
This is an API that allows types to indicate that they can be passed
buffers of uninitialized memory which can improve performance.
2017-06-20 20:26:22 -07:00
bors
bb143890a4 Auto merge of #42076 - alex-ozdemir:master, r=nrc
Clearer Error Message for Duplicate Definition

Clearer use of the error message and span labels to communicate duplication definitions/imports.

fixes #42061
2017-06-21 00:06:02 +00:00
Mark Simulacrum
4caa0b020f 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.
2017-06-20 18:05:34 -06:00
bors
445077963c Auto merge of #42780 - frewsxcv:rollup, r=frewsxcv
Rollup of 6 pull requests

- Successful merges: #42271, #42717, #42728, #42749, #42756, #42772
- Failed merges:
2017-06-20 21:08:28 +00:00
Corey Farwell
58425ef71d Rollup merge of #42772 - MaloJaffre:libc, r=alexcrichton
Update libc to 0.2.24

Fixes  #42427.
2017-06-20 16:28:32 -04:00
Corey Farwell
f9edbcccc5 Rollup merge of #42756 - sanxiyn:name-for-must-use, r=estebank
Show type name for unused_must_use lint

Fix #42688.
2017-06-20 16:28:31 -04:00
Corey Farwell
d3e116a945 Rollup merge of #42749 - frewsxcv:frewsxcxv/doc-examples, r=QuietMisdreavus
Additions/improvements for doc examples.

None
2017-06-20 16:28:30 -04:00
Corey Farwell
d92edacf8e Rollup merge of #42728 - jseyfried:fix_resolve_perf, r=nrc
resolve: fix perf bug

Fixes #42544.
r? @nrc
2017-06-20 16:28:27 -04:00
Corey Farwell
dbe16e067f Rollup merge of #42717 - ollie27:into_to_from2, r=sfackler
Convert `Into<Box<[T]>> for Vec<T>` into `From<Vec<T>> for Box<[T]>`

As the `collections` crate has been merged into `alloc` in #42648 this impl is now possible. This is the final part of #42129 missing from #42227.
2017-06-20 16:28:26 -04:00
Corey Farwell
4c43bc32b7 Rollup merge of #42271 - tinaun:charfromstr, r=alexcrichton
add `FromStr` Impl for `char`

fixes #24939.

is it possible to use pub(restricted) instead of using a stability attribute for the internal error representation? is it needed at all?
2017-06-20 16:28:25 -04:00
Alex Crichton
5c3d0e6de3 Switch to the crates.io getopts crate
This commit deletes the in-tree `getopts` crate in favor of the crates.io-based
`getopts` crate. The main difference here is with a new builder-style API, but
otherwise everything else remains relatively standard.
2017-06-20 12:43:12 -07:00
Ariel Ben-Yehuda
0b93798959 mark calls in the unwind path as !noinline
The unwind path is always cold, so that should not have bad performance
implications.  This avoids catastrophic exponential inlining, and also
decreases the size of librustc.so by 1.5% (OTOH, the size of `libstd.so`
increased by 0.5% for some reason).

Fixes #41696.
2017-06-20 22:02:49 +03:00
Corey Farwell
58bbe1d68c Add a couple doc additional examples for env::join_paths. 2017-06-20 13:49:42 -04:00
Corey Farwell
93abc2f877 Add doc example for CString::from_raw. 2017-06-20 13:49:42 -04:00
Corey Farwell
d3c26fe7e3 Add doc example for FromBytesWithNulError. 2017-06-20 13:49:42 -04:00
Corey Farwell
4797d8446c Add doc example for NulError. 2017-06-20 13:49:42 -04:00
Corey Farwell
e52d2f2ad0 Add doc example for CStr::to_str. 2017-06-20 13:49:42 -04:00
Corey Farwell
0962394b84 Add doc example for CString::as_c_str. 2017-06-20 13:49:42 -04:00
Corey Farwell
65793b30d3 Add doc example for Box<CStr>::into_c_string. 2017-06-20 13:49:27 -04:00
Corey Farwell
db97145150 Add doc example for CString::into_boxed_c_str. 2017-06-20 13:49:27 -04:00
Corey Farwell
82ba871c70 Add doc example for CStr::to_string_lossy. 2017-06-20 13:49:27 -04:00
Corey Farwell
5d71e8cd7e Add error scenario doc examples for CStr::from_bytes_with_nul. 2017-06-20 13:49:27 -04:00
Corey Farwell
7f687f8602 Add doc example for CStr::to_bytes_with_nul. 2017-06-20 13:49:27 -04:00
Corey Farwell
0fad2e038a Add doc example for CStr::to_bytes. 2017-06-20 13:49:10 -04:00
Alex Crichton
a4024c58e1 Remove the in-tree flate crate
A long time coming this commit removes the `flate` crate in favor of the
`flate2` crate on crates.io. The functionality in `flate2` originally flowered
out of `flate` itself and is additionally the namesake for the crate. This will
leave a gap in the naming (there's not `flate` crate), which will likely cause a
particle collapse of some form somewhere.
2017-06-20 07:11:29 -07:00
bors
29bce6e220 Auto merge of #42716 - alexbool:cstr-inlines, r=BurntSushi
Mark smaller CStr and CString functions as #[inline]
2017-06-20 13:25:21 +00:00
Malo Jaffré
174a7fc4e8 Update libc to 0.2.24
Fixes  #42427.
2017-06-20 13:42:52 +02:00
bors
380100c568 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.
2017-06-20 09:44:40 +00:00
tinaun
fd9d7aa2cf added FromStr Impl for char 2017-06-20 04:38:02 -04:00
Alexander Bulaev
bcb5b13b85 Mark smaller CStr and CString functions as #[inline] 2017-06-20 11:18:52 +03:00
bors
753fee4ab6 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.
2017-06-20 07:22:38 +00:00
Nick Cameron
f2340a0146 Update RLS submod 2017-06-20 18:55:14 +12:00
Nick Cameron
7a18a77e1b Update rls-data dep 2017-06-20 18:55:14 +12:00