Sunset RLS
This commit is contained in:
@@ -24,6 +24,7 @@ features = [
|
||||
"errhandlingapi",
|
||||
"evntrace",
|
||||
"fibersapi",
|
||||
"handleapi",
|
||||
"in6addr",
|
||||
"inaddr",
|
||||
"ioapiset",
|
||||
@@ -72,11 +73,8 @@ features = [
|
||||
|
||||
[dependencies]
|
||||
bstr = { version = "0.2.17", features = ["default"] }
|
||||
byteorder = { version = "1", features = ['default', 'std'] }
|
||||
clap = { version = "3.1.1", features = ["derive", "clap_derive"]}
|
||||
curl-sys = { version = "0.4.13", features = ["http2", "libnghttp2-sys"], optional = true }
|
||||
crossbeam-utils = { version = "0.8.0", features = ["nightly"] }
|
||||
libc = { version = "0.2.79", features = ["align"] }
|
||||
# Ensure default features of libz-sys, which are disabled in some scenarios.
|
||||
libz-sys = { version = "1.1.2" }
|
||||
# The only user of memchr's deprecated `use_std` feature is `combine`, so this can be
|
||||
@@ -84,13 +82,8 @@ libz-sys = { version = "1.1.2" }
|
||||
memchr = { version = "2.5", features = ["std", "use_std"] }
|
||||
# Ensure default features of regex, which are disabled in some scenarios.
|
||||
regex = { version = "1.5.6" }
|
||||
proc-macro2 = { version = "1", features = ["default"] }
|
||||
quote = { version = "1", features = ["default"] }
|
||||
rand_core_0_5 = { package = "rand_core", version = "0.5.1", features = ["getrandom", "alloc", "std"] }
|
||||
serde = { version = "1.0.82", features = ['derive'] }
|
||||
serde_json = { version = "1.0.31", features = ["raw_value", "unbounded_depth"] }
|
||||
smallvec = { version = "1.8.1", features = ['union', 'may_dangle'] }
|
||||
syn = { version = "1", features = ['fold', 'full', 'extra-traits', 'visit', 'visit-mut'] }
|
||||
syn = { version = "1", features = ['full', 'visit'] }
|
||||
url = { version = "2.0", features = ['serde'] }
|
||||
|
||||
[target.'cfg(not(windows))'.dependencies]
|
||||
|
||||
@@ -2,18 +2,18 @@
|
||||
|
||||
This crate is a bit of a hack to make workspaces in rustc work a bit better.
|
||||
The rationale for this existence is a bit subtle, but the general idea is that
|
||||
we want commands like `./x.py build src/tools/{rls,clippy,cargo}` to share as
|
||||
we want commands like `./x.py build src/tools/{clippy,cargo}` to share as
|
||||
many dependencies as possible.
|
||||
|
||||
Each invocation is a different invocation of Cargo, however. Each time Cargo
|
||||
runs a build it will re-resolve the dependency graph, notably selecting
|
||||
different features sometimes for each build.
|
||||
|
||||
For example, let's say there's a very deep dependency like `num-traits` in each
|
||||
of these builds. For Cargo the `num-traits`'s `default` feature is turned off.
|
||||
In RLS, however, the `default` feature is turned. This means that building Cargo
|
||||
and then the RLS will actually build Cargo twice (as a transitive dependency
|
||||
changed). This is bad!
|
||||
For example, let's say there's a very deep dependency like `winapi` in each of
|
||||
these builds. For Cargo, `winapi` has 33 features enabled. In Clippy, however,
|
||||
`winapi` has 22 features enabled. This means that building Cargo and then the
|
||||
Clippy will actually build winapi twice, which in turn will build duplicates
|
||||
of everything that depends on `winapi`. This is bad!
|
||||
|
||||
The goal of this crate is to solve this problem and ensure that the resolved
|
||||
dependency graph for all of these tools is the same in the various subsets of
|
||||
|
||||
Reference in New Issue
Block a user