Rollup merge of #126856 - onur-ozkan:remove-rls, r=clubby789
remove deprecated tool `rls` This tool has been deprecated for two years and now it only gives warning without doing anything useful. Zulip discussion: https://rust-lang.zulipchat.com/#narrow/stream/241545-t-release/topic/excluding.20rls.20from.20the.20release try-job: x86_64-gnu-distcheck
This commit is contained in:
commit
3b1776dc29
17 changed files with 7 additions and 189 deletions
|
@ -3045,13 +3045,6 @@ dependencies = [
|
|||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rls"
|
||||
version = "2.0.0"
|
||||
dependencies = [
|
||||
"serde_json",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "run_make_support"
|
||||
version = "0.2.0"
|
||||
|
|
|
@ -24,7 +24,6 @@ members = [
|
|||
"src/tools/remote-test-server",
|
||||
"src/tools/rust-installer",
|
||||
"src/tools/rustdoc",
|
||||
"src/tools/rls",
|
||||
"src/tools/rustfmt",
|
||||
"src/tools/miri",
|
||||
"src/tools/miri/cargo-miri",
|
||||
|
|
|
@ -454,7 +454,6 @@ tool_check_step!(Rustdoc { path: "src/tools/rustdoc", alt_path: "src/librustdoc"
|
|||
tool_check_step!(Clippy { path: "src/tools/clippy" });
|
||||
tool_check_step!(Miri { path: "src/tools/miri" });
|
||||
tool_check_step!(CargoMiri { path: "src/tools/miri/cargo-miri" });
|
||||
tool_check_step!(Rls { path: "src/tools/rls" });
|
||||
tool_check_step!(Rustfmt { path: "src/tools/rustfmt" });
|
||||
tool_check_step!(MiroptTestTools { path: "src/tools/miropt-test-tools" });
|
||||
tool_check_step!(TestFloatParse { path: "src/etc/test-float-parse" });
|
||||
|
|
|
@ -346,7 +346,6 @@ lint_any!(
|
|||
OptDist, "src/tools/opt-dist", "opt-dist";
|
||||
RemoteTestClient, "src/tools/remote-test-client", "remote-test-client";
|
||||
RemoteTestServer, "src/tools/remote-test-server", "remote-test-server";
|
||||
Rls, "src/tools/rls", "rls";
|
||||
RustAnalyzer, "src/tools/rust-analyzer", "rust-analyzer";
|
||||
Rustdoc, "src/librustdoc", "clippy";
|
||||
Rustfmt, "src/tools/rustfmt", "rustfmt";
|
||||
|
|
|
@ -1157,48 +1157,6 @@ impl Step for Cargo {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
|
||||
pub struct Rls {
|
||||
pub compiler: Compiler,
|
||||
pub target: TargetSelection,
|
||||
}
|
||||
|
||||
impl Step for Rls {
|
||||
type Output = Option<GeneratedTarball>;
|
||||
const ONLY_HOSTS: bool = true;
|
||||
const DEFAULT: bool = true;
|
||||
|
||||
fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
|
||||
let default = should_build_extended_tool(run.builder, "rls");
|
||||
run.alias("rls").default_condition(default)
|
||||
}
|
||||
|
||||
fn make_run(run: RunConfig<'_>) {
|
||||
run.builder.ensure(Rls {
|
||||
compiler: run.builder.compiler_for(
|
||||
run.builder.top_stage,
|
||||
run.builder.config.build,
|
||||
run.target,
|
||||
),
|
||||
target: run.target,
|
||||
});
|
||||
}
|
||||
|
||||
fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball> {
|
||||
let compiler = self.compiler;
|
||||
let target = self.target;
|
||||
|
||||
let rls = builder.ensure(tool::Rls { compiler, target });
|
||||
|
||||
let mut tarball = Tarball::new(builder, "rls", &target.triple);
|
||||
tarball.set_overlay(OverlayKind::Rls);
|
||||
tarball.is_preview(true);
|
||||
tarball.add_file(rls.tool_path, "bin", 0o755);
|
||||
tarball.add_legal_and_readme_to("share/doc/rls");
|
||||
Some(tarball.generate())
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialOrd, Ord, Clone, Hash, PartialEq, Eq)]
|
||||
pub struct RustAnalyzer {
|
||||
pub compiler: Compiler,
|
||||
|
@ -1528,7 +1486,6 @@ impl Step for Extended {
|
|||
add_component!("rust-json-docs" => JsonDocs { host: target });
|
||||
add_component!("cargo" => Cargo { compiler, target });
|
||||
add_component!("rustfmt" => Rustfmt { compiler, target });
|
||||
add_component!("rls" => Rls { compiler, target });
|
||||
add_component!("rust-analyzer" => RustAnalyzer { compiler, target });
|
||||
add_component!("llvm-components" => LlvmTools { target });
|
||||
add_component!("clippy" => Clippy { compiler, target });
|
||||
|
|
|
@ -85,9 +85,7 @@ impl FromStr for Profile {
|
|||
"lib" | "library" => Ok(Profile::Library),
|
||||
"compiler" => Ok(Profile::Compiler),
|
||||
"maintainer" | "dist" | "user" => Ok(Profile::Dist),
|
||||
"tools" | "tool" | "rustdoc" | "clippy" | "miri" | "rustfmt" | "rls" => {
|
||||
Ok(Profile::Tools)
|
||||
}
|
||||
"tools" | "tool" | "rustdoc" | "clippy" | "miri" | "rustfmt" => Ok(Profile::Tools),
|
||||
"none" => Ok(Profile::None),
|
||||
"llvm" | "codegen" => Err("the \"llvm\" and \"codegen\" profiles have been removed,\
|
||||
use \"compiler\" instead which has the same functionality"
|
||||
|
|
|
@ -228,7 +228,6 @@ pub fn prepare_tool_cargo(
|
|||
let mut features = extra_features.to_vec();
|
||||
if builder.build.config.cargo_native_static {
|
||||
if path.ends_with("cargo")
|
||||
|| path.ends_with("rls")
|
||||
|| path.ends_with("clippy")
|
||||
|| path.ends_with("miri")
|
||||
|| path.ends_with("rustfmt")
|
||||
|
@ -1231,7 +1230,6 @@ tool_extended!(CargoMiri {
|
|||
stable: false,
|
||||
add_bins_to_sysroot: ["cargo-miri"]
|
||||
});
|
||||
tool_extended!(Rls { path: "src/tools/rls", tool_name: "rls", stable: true });
|
||||
tool_extended!(Rustfmt {
|
||||
path: "src/tools/rustfmt",
|
||||
tool_name: "rustfmt",
|
||||
|
|
|
@ -895,7 +895,6 @@ impl<'a> Builder<'a> {
|
|||
tool::RemoteTestClient,
|
||||
tool::RustInstaller,
|
||||
tool::Cargo,
|
||||
tool::Rls,
|
||||
tool::RustAnalyzer,
|
||||
tool::RustAnalyzerProcMacroSrv,
|
||||
tool::Rustdoc,
|
||||
|
@ -938,7 +937,6 @@ impl<'a> Builder<'a> {
|
|||
clippy::OptDist,
|
||||
clippy::RemoteTestClient,
|
||||
clippy::RemoteTestServer,
|
||||
clippy::Rls,
|
||||
clippy::RustAnalyzer,
|
||||
clippy::Rustdoc,
|
||||
clippy::Rustfmt,
|
||||
|
@ -956,7 +954,6 @@ impl<'a> Builder<'a> {
|
|||
check::Miri,
|
||||
check::CargoMiri,
|
||||
check::MiroptTestTools,
|
||||
check::Rls,
|
||||
check::Rustfmt,
|
||||
check::RustAnalyzer,
|
||||
check::TestFloatParse,
|
||||
|
@ -1071,7 +1068,6 @@ impl<'a> Builder<'a> {
|
|||
dist::Analysis,
|
||||
dist::Src,
|
||||
dist::Cargo,
|
||||
dist::Rls,
|
||||
dist::RustAnalyzer,
|
||||
dist::Rustfmt,
|
||||
dist::Clippy,
|
||||
|
|
|
@ -253,7 +253,7 @@ pub enum Mode {
|
|||
/// Build a tool which uses the locally built rustc and the target std,
|
||||
/// placing the output in the "stageN-tools" directory. This is used for
|
||||
/// anything that needs a fully functional rustc, such as rustdoc, clippy,
|
||||
/// cargo, rls, rustfmt, miri, etc.
|
||||
/// cargo, rustfmt, miri, etc.
|
||||
ToolRustc,
|
||||
}
|
||||
|
||||
|
|
|
@ -375,4 +375,9 @@ pub const CONFIG_CHANGE_HISTORY: &[ChangeInfo] = &[
|
|||
severity: ChangeSeverity::Info,
|
||||
summary: "There is now a new `gcc` config section that can be used to download GCC from CI using `gcc.download-ci-gcc = true`",
|
||||
},
|
||||
ChangeInfo {
|
||||
change_id: 126856,
|
||||
severity: ChangeSeverity::Warning,
|
||||
summary: "Removed `src/tools/rls` tool as it was deprecated long time ago.",
|
||||
},
|
||||
];
|
||||
|
|
|
@ -22,7 +22,6 @@ pub(crate) enum OverlayKind {
|
|||
Clippy,
|
||||
Miri,
|
||||
Rustfmt,
|
||||
Rls,
|
||||
RustAnalyzer,
|
||||
RustcCodegenCranelift,
|
||||
LlvmBitcodeLinker,
|
||||
|
@ -56,7 +55,6 @@ impl OverlayKind {
|
|||
"src/tools/rustfmt/LICENSE-APACHE",
|
||||
"src/tools/rustfmt/LICENSE-MIT",
|
||||
],
|
||||
OverlayKind::Rls => &["src/tools/rls/README.md", "LICENSE-APACHE", "LICENSE-MIT"],
|
||||
OverlayKind::RustAnalyzer => &[
|
||||
"src/tools/rust-analyzer/README.md",
|
||||
"src/tools/rust-analyzer/LICENSE-APACHE",
|
||||
|
@ -90,7 +88,6 @@ impl OverlayKind {
|
|||
OverlayKind::Rustfmt => {
|
||||
builder.rustfmt_info.version(builder, &builder.release_num("rustfmt"))
|
||||
}
|
||||
OverlayKind::Rls => builder.release(&builder.release_num("rls")),
|
||||
OverlayKind::RustAnalyzer => builder
|
||||
.rust_analyzer_info
|
||||
.version(builder, &builder.release_num("rust-analyzer/crates/rust-analyzer")),
|
||||
|
|
|
@ -386,7 +386,6 @@ impl Builder {
|
|||
// NOTE: this profile is effectively deprecated; do not add new components to it.
|
||||
let mut complete = default;
|
||||
complete.extend([
|
||||
Rls,
|
||||
RustAnalyzer,
|
||||
RustSrc,
|
||||
LlvmTools,
|
||||
|
@ -475,7 +474,6 @@ impl Builder {
|
|||
// but might be marked as unavailable if they weren't built.
|
||||
PkgType::Clippy
|
||||
| PkgType::Miri
|
||||
| PkgType::Rls
|
||||
| PkgType::RustAnalyzer
|
||||
| PkgType::Rustfmt
|
||||
| PkgType::LlvmTools
|
||||
|
|
|
@ -51,7 +51,6 @@ pkg_type! {
|
|||
Cargo = "cargo",
|
||||
HtmlDocs = "rust-docs",
|
||||
RustAnalysis = "rust-analysis",
|
||||
Rls = "rls"; preview = true,
|
||||
RustAnalyzer = "rust-analyzer"; preview = true,
|
||||
Clippy = "clippy"; preview = true,
|
||||
Rustfmt = "rustfmt"; preview = true,
|
||||
|
@ -77,7 +76,6 @@ impl PkgType {
|
|||
fn should_use_rust_version(&self) -> bool {
|
||||
match self {
|
||||
PkgType::Cargo => false,
|
||||
PkgType::Rls => false,
|
||||
PkgType::RustAnalyzer => false,
|
||||
PkgType::Clippy => false,
|
||||
PkgType::Rustfmt => false,
|
||||
|
@ -118,7 +116,6 @@ impl PkgType {
|
|||
HtmlDocs => HOSTS,
|
||||
JsonDocs => HOSTS,
|
||||
RustSrc => &["*"],
|
||||
Rls => HOSTS,
|
||||
RustAnalyzer => HOSTS,
|
||||
Clippy => HOSTS,
|
||||
Miri => HOSTS,
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
[package]
|
||||
name = "rls"
|
||||
version = "2.0.0"
|
||||
edition = "2021"
|
||||
license = "Apache-2.0/MIT"
|
||||
|
||||
[dependencies]
|
||||
serde_json = "1.0.83"
|
|
@ -1,6 +0,0 @@
|
|||
# RLS Stub
|
||||
|
||||
RLS has been replaced with [rust-analyzer](https://rust-analyzer.github.io/).
|
||||
|
||||
This directory contains a stub which replaces RLS with a simple LSP server
|
||||
which only displays an alert to the user that RLS is no longer available.
|
|
@ -1,102 +0,0 @@
|
|||
//! RLS stub.
|
||||
//!
|
||||
//! This is a small stub that replaces RLS to alert the user that RLS is no
|
||||
//! longer available.
|
||||
|
||||
use std::error::Error;
|
||||
use std::io::{BufRead, Write};
|
||||
|
||||
use serde_json::Value;
|
||||
|
||||
const ALERT_MSG: &str = "\
|
||||
RLS is no longer available as of Rust 1.65.
|
||||
Consider migrating to rust-analyzer instead.
|
||||
See https://rust-analyzer.github.io/ for installation instructions.
|
||||
";
|
||||
|
||||
fn main() {
|
||||
if let Err(e) = run() {
|
||||
eprintln!("error: {e}");
|
||||
std::process::exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
struct Message {
|
||||
method: Option<String>,
|
||||
}
|
||||
|
||||
fn run() -> Result<(), Box<dyn Error>> {
|
||||
let mut stdin = std::io::stdin().lock();
|
||||
let mut stdout = std::io::stdout().lock();
|
||||
|
||||
let init = read_message(&mut stdin)?;
|
||||
if init.method.as_deref() != Some("initialize") {
|
||||
return Err(format!("expected initialize, got {:?}", init.method).into());
|
||||
}
|
||||
// No response, the LSP specification says that `showMessageRequest` may
|
||||
// be posted before during this phase.
|
||||
|
||||
// message_type 1 is "Error"
|
||||
let alert = serde_json::json!({
|
||||
"jsonrpc": "2.0",
|
||||
"id": 1,
|
||||
"method": "window/showMessageRequest",
|
||||
"params": {
|
||||
"message_type": "1",
|
||||
"message": ALERT_MSG
|
||||
}
|
||||
});
|
||||
write_message_raw(&mut stdout, serde_json::to_string(&alert).unwrap())?;
|
||||
|
||||
loop {
|
||||
let message = read_message(&mut stdin)?;
|
||||
if message.method.as_deref() == Some("shutdown") {
|
||||
std::process::exit(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn read_message_raw<R: BufRead>(reader: &mut R) -> Result<String, Box<dyn Error>> {
|
||||
let mut content_length: usize = 0;
|
||||
|
||||
// Read headers.
|
||||
loop {
|
||||
let mut line = String::new();
|
||||
reader.read_line(&mut line)?;
|
||||
if line.is_empty() {
|
||||
return Err("remote disconnected".into());
|
||||
}
|
||||
if line == "\r\n" {
|
||||
break;
|
||||
}
|
||||
if line.to_lowercase().starts_with("content-length:") {
|
||||
let value = &line[15..].trim();
|
||||
content_length = usize::from_str_radix(value, 10)?;
|
||||
}
|
||||
}
|
||||
if content_length == 0 {
|
||||
return Err("no content-length".into());
|
||||
}
|
||||
|
||||
let mut buffer = vec![0; content_length];
|
||||
reader.read_exact(&mut buffer)?;
|
||||
let content = String::from_utf8(buffer)?;
|
||||
|
||||
Ok(content)
|
||||
}
|
||||
|
||||
fn read_message<R: BufRead>(reader: &mut R) -> Result<Message, Box<dyn Error>> {
|
||||
let m = read_message_raw(reader)?;
|
||||
match serde_json::from_str::<Value>(&m) {
|
||||
Ok(message) => Ok(Message {
|
||||
method: message.get("method").and_then(|value| value.as_str().map(String::from)),
|
||||
}),
|
||||
Err(e) => Err(format!("failed to parse message {m}\n{e}").into()),
|
||||
}
|
||||
}
|
||||
|
||||
fn write_message_raw<W: Write>(mut writer: W, output: String) -> Result<(), Box<dyn Error>> {
|
||||
write!(writer, "Content-Length: {}\r\n\r\n{}", output.len(), output)?;
|
||||
writer.flush()?;
|
||||
Ok(())
|
||||
}
|
|
@ -32,8 +32,6 @@ pub fn filter_dirs(path: &Path) -> bool {
|
|||
"src/doc/rustc-dev-guide",
|
||||
"src/doc/reference",
|
||||
"src/gcc",
|
||||
// Filter RLS output directories
|
||||
"target/rls",
|
||||
"src/bootstrap/target",
|
||||
"vendor",
|
||||
];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue