about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2017-06-22 00:32:42 +0000
committerbors <bors@rust-lang.org>2017-06-22 00:32:42 +0000
commit80271e8edfb188cfb9e2f02ac26136b4f58fbef0 (patch)
tree20651315ca8225ff0e2fa7f05c59b938e5e39b52 /src/libstd
parent6de26f42deab53b1a8cbd57e4c696626e6650708 (diff)
parent201f06988fb77c9865b0ddc60a8d7b5701c6dbbe (diff)
downloadrust-80271e8edfb188cfb9e2f02ac26136b4f58fbef0.tar.gz
rust-80271e8edfb188cfb9e2f02ac26136b4f58fbef0.zip
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.
Diffstat (limited to 'src/libstd')
0 files changed, 0 insertions, 0 deletions