about summary refs log tree commit diff
path: root/src/tools
diff options
context:
space:
mode:
authorMartin Nordholts <martin.nordholts@codetale.se>2024-04-28 18:02:21 +0200
committerMartin Nordholts <martin.nordholts@codetale.se>2024-05-02 19:48:29 +0200
commitcde0cde151f30e07170d0f3caa721c92bebd7afe (patch)
treef065e316178196507ba419727c37562cdf7f828e /src/tools
parente27af2917b80487e9c0de00118fdcb9ccb1177f9 (diff)
Change `SIGPIPE` ui from `#[unix_sigpipe = "..."]` to `-Zon-broken-pipe=...`
In the stabilization attempt of `#[unix_sigpipe = "sig_dfl"]`, a concern
was raised related to using a language attribute for the feature: Long
term, we want `fn lang_start()` to be definable by any crate, not just
libstd. Having a special language attribute in that case becomes
awkward.

So as a first step towards towards the next stabilization attempt, this
PR changes the `#[unix_sigpipe = "..."]` attribute to a compiler flag
`-Zon-broken-pipe=...` to remove that concern, since now the language
is not "contaminated" by this feature.

Another point was also raised, namely that the ui should not leak
**how** it does things, but rather what the **end effect** is. The new
flag uses the proposed naming. This is of course something that can be
iterated on further before stabilization.
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/miri/src/eval.rs2
-rw-r--r--src/tools/rust-analyzer/crates/hir-def/src/attr/builtin.rs1
-rw-r--r--src/tools/rustdoc/main.rs3
3 files changed, 1 insertions, 5 deletions
diff --git a/src/tools/miri/src/eval.rs b/src/tools/miri/src/eval.rs
index 2242768a568..97c5e9a0eac 100644
--- a/src/tools/miri/src/eval.rs
+++ b/src/tools/miri/src/eval.rs
@@ -387,7 +387,7 @@ pub fn create_ecx<'mir, 'tcx: 'mir>(
             let main_ptr = ecx.fn_ptr(FnVal::Instance(entry_instance));
 
             // Always using DEFAULT is okay since we don't support signals in Miri anyway.
-            // (This means we are effectively ignoring `#[unix_sigpipe]`.)
+            // (This means we are effectively ignoring `-Zon-broken-pipe`.)
             let sigpipe = rustc_session::config::sigpipe::DEFAULT;
 
             ecx.call_function(
diff --git a/src/tools/rust-analyzer/crates/hir-def/src/attr/builtin.rs b/src/tools/rust-analyzer/crates/hir-def/src/attr/builtin.rs
index 55b9a1dfdcb..1fba2e2e4d3 100644
--- a/src/tools/rust-analyzer/crates/hir-def/src/attr/builtin.rs
+++ b/src/tools/rust-analyzer/crates/hir-def/src/attr/builtin.rs
@@ -207,7 +207,6 @@ pub const INERT_ATTRIBUTES: &[BuiltinAttribute] = &[
     ),
 
     // Entry point:
-    gated!(unix_sigpipe, Normal, template!(Word, NameValueStr: "inherit|sig_ign|sig_dfl"), ErrorFollowing, experimental!(unix_sigpipe)),
     ungated!(start, Normal, template!(Word), WarnFollowing),
     ungated!(no_start, CrateLevel, template!(Word), WarnFollowing),
     ungated!(no_main, CrateLevel, template!(Word), WarnFollowing),
diff --git a/src/tools/rustdoc/main.rs b/src/tools/rustdoc/main.rs
index b81f46d1211..5b499a1fa1f 100644
--- a/src/tools/rustdoc/main.rs
+++ b/src/tools/rustdoc/main.rs
@@ -1,6 +1,3 @@
-#![feature(unix_sigpipe)]
-
-#[unix_sigpipe = "sig_dfl"]
 fn main() {
     rustdoc::main()
 }