Граф коммитов

126 Коммитов

Автор SHA1 Сообщение Дата
Markus Westerlind 9cdb63b644 chore: Update tokio_uds to 0.2 2018-08-31 06:05:42 -04:00
Markus Westerlind 2b47bfa1b6 chore: Update tempfile to 3 2018-08-31 06:05:42 -04:00
Markus Westerlind 019fa2e89c refactor: Remove the direct hyper-tls dependency by using reqwest 2018-08-31 06:05:42 -04:00
Markus Westerlind 017da014d0 chore: Update regex to 1 2018-08-31 06:05:42 -04:00
Markus Westerlind d1a4273a41 chore: Update filetime to 0.2 2018-08-31 06:05:42 -04:00
Markus Westerlind 8a7973342c chore: Update crossbeam-utils to 0.5 2018-08-31 06:05:42 -04:00
Markus Westerlind fb3332ed99 chore: Update directories to 1.0 2018-08-31 06:05:42 -04:00
Markus Westerlind fbb5dee7de chore: Update log to 0.4 and env_logger to 0.5 2018-08-31 06:05:42 -04:00
Markus Westerlind 0bed973778 Update chrono to 0.4 2018-08-31 06:05:42 -04:00
Markus Westerlind 5570c3e0a1 chore: Update predicates and assert_cmd 2018-08-31 06:05:42 -04:00
Markus Westerlind 8bb8a9070d Use redis-0.9 for async requests 2018-08-30 13:58:25 -04:00
Aidan Hobson Sayers 34ea7a2a2f Implement scheduler auth for clients and servers, add job tokens 2018-08-30 08:22:39 -04:00
Aidan Hobson Sayers bf1ec382d7 Use a trait to represent compiler packagers 2018-08-24 14:33:54 -04:00
Aidan Hobson Sayers 34ceea3e57 Move all into single crate 2018-08-14 12:40:45 -04:00
Aidan Hobson Sayers 3f68a9b0c9 Review comment forward-ports 2018-08-14 12:40:45 -04:00
Aidan Hobson Sayers 71a217096c Feature flag toggle for distributed compilation, cleanups 2018-08-14 12:40:45 -04:00
Aidan Hobson Sayers 6677d008b0 Split out sccache-dist binary 2018-08-14 12:40:45 -04:00
Aidan Hobson Sayers 08c8e2d00a Add overlay builder (with bubblewrap), serde tweaks 2018-08-14 12:40:45 -04:00
Aidan Hobson Sayers 17c56c8d0d Rework sccache to use http rather than tcp 2018-08-14 12:40:45 -04:00
Aidan Hobson Sayers 92c2912db3 Try harder to parallelise 2018-08-14 12:40:45 -04:00
Aidan Hobson Sayers 85acb04a46 Bits and pieces for distributed Rust 2018-08-14 12:40:45 -04:00
Ted Mielczarek 13701e3903 Refactor system tests to use assert_cmd 2018-07-30 06:40:11 -04:00
Ted Mielczarek 8e21796623 Switch from assert_cli to assert_cmd 2018-07-26 16:12:14 -04:00
Ted Mielczarek 3bd7e1fa0c Update assert_cli and tweak some of the tests using it. Also silence a lint warning from error-chain. 2018-07-26 10:16:55 -04:00
Aidan Hobson Sayers 62575e8396 Allow configuration of caches with a config file 2018-07-24 10:55:25 -04:00
Ted Mielczarek 4bf26513f4 (cargo-release) start next development iteration 0.2.8-alpha.0 2018-07-12 07:33:52 -04:00
Ted Mielczarek d19163acd8 (cargo-release) version 0.2.7 2018-07-12 07:32:26 -04:00
Ted Mielczarek 61cd1c6ae3 Silence some warnings 2018-07-12 06:46:33 -04:00
Ted Mielczarek e3eb932fe4 Revert "Update to futures 0.1.19 and fix breakage from Option-related changes"
futures 0.1.19 was yanked because of the breaking API changes it made.

This reverts commit 7079ab8783.
2018-07-12 06:31:09 -04:00
Ted Mielczarek 7079ab8783 Update to futures 0.1.19 and fix breakage from Option-related changes 2018-03-27 08:48:24 -04:00
Ted Mielczarek c13e04d507 Replace `app_dirs` crate with `directories`. Fixes #233.
The `app_dirs` crate has become unmaintained and is broken on macOS with
Rust 1.25. The `directories` crate provides the same functionality and
is maintained, so switch to using that instead.
2018-03-21 08:52:55 -04:00
Ted Mielczarek 13fa450eee update jobserver to 0.1.11 to pick up a fix for shutting down the worker thread 2018-03-16 13:39:18 -04:00
Ted Mielczarek ef67ff018a (cargo-release) start next development iteration 0.2.7-alpha.0 2018-03-12 15:57:20 -04:00
Ted Mielczarek dfdfce28e0 (cargo-release) version 0.2.6 2018-03-12 15:55:59 -04:00
Felix Bruns a90c4496a7 Update to schannel version 0.1.11 2018-03-05 13:13:41 -05:00
dylan_DPC 71183806da =updated uuid to 0.6 2018-02-28 16:08:44 -05:00
Ted Mielczarek 583fd1fe6b Always request color output from rustc. Fixes #99
This change makes sccache run rustc with `--color=always`, removing any other
--color option from the compiler options so that it's not included in the
cache key.

A `color_mode` method is added to the `CompilerHasher` trait, and the value
is sent back to the client in the `CompileFinished` method, so the client can
determine whether specific --color options were passed without having to
do its own commandline parsing.

The client uses the new `strip-ansi-escapes` crate to remove escape codes
from the compiler output in situations where color output is not desired:
* When `--color=never` was passed on the compiler commandline.
* When `--color=auto` is in effect (the default) but the output is not
  a terminal.

The existing cargo tests were lightly modified to run compile once with
`--color=never` and once with `--color=always` to validate that cache hits
are not affected by color options.
2018-02-02 11:49:16 -05:00
Ted Mielczarek 22e588b87c Remove fern-based logging as it was never that useful due to the inability to set per-crate log levels 2018-02-01 11:06:25 -05:00
Ted Mielczarek 79b92a7e3f switch from the gcc crate to its successor, cc, for tests 2018-02-01 10:35:56 -05:00
Ted Mielczarek e234cf8e8e cargo update 2018-02-01 10:29:23 -05:00
Ted Mielczarek db9e282fcb switch to ring version 0.12.1 2018-02-01 06:29:38 -05:00
Ted Mielczarek ffce831b90 (cargo-release) start next development iteration 0.2.6-alpha.0 2018-01-30 11:56:10 -05:00
Ted Mielczarek 46b4ffaba7 Bump lru-disk-cache to 0.2.0 so we can publish it to crates.io because we made an API change 2018-01-30 11:54:20 -05:00
Ted Mielczarek f82c684655 (cargo-release) version 0.2.5 2018-01-30 11:47:40 -05:00
Ted Mielczarek fe768ac640 Fix those TODOs about using lazy_static and remove some (now) extraneous
static lifetimes on consts while I'm there.
2018-01-30 11:14:37 -05:00
David Michael Barr d2c7f925ad Add a Memcached cache variant
This cache module uses a Memcached cluster.
To make sccache use this, set SCCACHE_MEMCACHED
to a list of tcp://<hostname>:<port> addresses,
separated by whitespace.
2018-01-23 09:42:36 -05:00
Alex Crichton adaa4ef190 Add jobserver support to sccache
This commit alters the main sccache server to operate and orchestrate its own
GNU make style jobserver. This is primarily intended for interoperation with
rustc itself.

The Rust compiler currently has a multithreaded mode where it will execute code
generation and optimization on the LLVM side of things in parallel. This
parallelism, however, can overload a machine quickly if not properly accounted
for (e.g. if 10 rustcs all spawn 10 threads...). The usage of a GNU make style
jobserver is intended to arbitrate and rate limit all these rustc instances to
ensure that one build's maximal parallelism never exceeds a particular amount.

Currently for Rust Cargo is the primary driver for setting up a jobserver. Cargo
will create this and manage this per compilation, ensuring that any one `cargo
build` invocation never exceeds a maximal parallelism. When sccache enters the
picture, however, the story gets slightly more odd.

The jobserver implementation on Unix relies on inheritance of file descriptors
in spawned processes. With sccache, however, there's no inheritance as the
actual rustc invocation is spawned by the server, not the client. In this case
the env vars used to configure the jobsever are usually incorrect.

To handle this problem this commit bakes a jobserver directly into sccache
itself. The jobserver then overrides whatever jobserver the client has
configured in its own env vars to ensure correct operation. The settings of each
jobserver may be misconfigured (there's no way to configure sccache's jobserver
right now), but hopefully that's not too much of a problem for the forseeable
future.

The implementation here was to provide a thin wrapper around the `jobserver`
crate with a futures-based interface. This interface was then hooked into the
mock command infrastructure to automatically acquire a jobserver token when
spawning a process and automatically drop the token when the process exits.
Additionally, all spawned processes will now automatically receive a configured
jobserver.

cc rust-lang/rust#42867, the original motivation for this commit
2018-01-18 10:56:56 -05:00
Ted Mielczarek 7cd76d8210 update clap to remove a warning with rust 1.23 2018-01-12 06:38:40 -05:00
Ted Mielczarek 4fe33a6da1 Properly chain error when failing to create temp dir in hash_source_files 2018-01-12 06:35:50 -05:00
Kornel 9c19b7cbce Update other deps 2018-01-08 16:29:24 -05:00