Commit graph

65129 commits

Author SHA1 Message Date
bors 6f01c84fc8 Auto merge of #42798 - stepancheg:args-debug, r=sfackler
Better Debug for Args and ArgsOs

Display actual args instead of two dots.
2017-06-22 10:34:21 +00: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
Stepan Koltsov 275f9a04af Better Debug for Args and ArgsOs
Display actual args instead of two dots.
2017-06-21 15:40:45 +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