rust icon indicating copy to clipboard operation
rust copied to clipboard

Make `missing_fragment_specifier` an unconditional error

Open tgross35 opened this issue 1 year ago • 43 comments

This was attempted in 1 then reverted in 2 because of fallout. Recently, this was made an edition-dependent error in 3.

Make missing fragment specifiers an unconditional error again, across all editions.

More context: https://github.com/rust-lang/rust/pull/128006 Most recent crater: https://github.com/rust-lang/rust/pull/128425#issuecomment-2686949847 Fixes: https://github.com/rust-lang/rust/issues/40107

r? @petrochenkov

tgross35 avatar Jul 31 '24 03:07 tgross35

The job x86_64-gnu-llvm-17 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
------
 > importing cache manifest from ghcr.io/rust-lang/rust-ci-cache:3aacb9c90579defe09351ac5e8ee504359f8054da6326ff19038f1b7c90e3cb2aafe33685c6d9b76ee8d2ccbd187ca80c46ab5380485abdd8c0ce7d69cd8d8fd:
------
##[endgroup]
Setting extra environment values for docker:  --env ENABLE_GCC_CODEGEN=1 --env GCC_EXEC_PREFIX=/usr/lib/gcc/
[CI_JOB_NAME=x86_64-gnu-llvm-17]
---
sccache: Starting the server...
##[group]Configure the build
configure: processing command line
configure: 
configure: build.configure-args := ['--build=x86_64-unknown-linux-gnu', '--llvm-root=/usr/lib/llvm-17', '--enable-llvm-link-shared', '--set', 'rust.thin-lto-import-instr-limit=10', '--set', 'change-id=99999999', '--enable-verbose-configure', '--enable-sccache', '--disable-manage-submodules', '--enable-locked-deps', '--enable-cargo-native-static', '--set', 'rust.codegen-units-std=1', '--set', 'dist.compression-profile=balanced', '--dist-compression-formats=xz', '--set', 'rust.lld=false', '--disable-dist-src', '--release-channel=nightly', '--enable-debug-assertions', '--enable-overflow-checks', '--enable-llvm-assertions', '--set', 'rust.verify-llvm-ir', '--set', 'rust.codegen-backends=llvm,cranelift,gcc', '--set', 'llvm.static-libstdcpp', '--enable-new-symbol-mangling']
configure: target.x86_64-unknown-linux-gnu.llvm-config := /usr/lib/llvm-17/bin/llvm-config
configure: llvm.link-shared     := True
configure: rust.thin-lto-import-instr-limit := 10
configure: change-id            := 99999999
---
  Downloaded boml v0.3.1
   Compiling boml v0.3.1
   Compiling y v0.1.0 (/checkout/compiler/rustc_codegen_gcc/build_system)
    Finished `release` profile [optimized] target(s) in 3.82s
     Running `/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-codegen/x86_64-unknown-linux-gnu/release/y test --use-system-gcc --use-backend gcc --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/cg_gcc --release --mini-tests --std-tests`
Using system GCC
[BUILD] example
[AOT] mini_core_hello_world
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/cg_gcc/mini_core_hello_world
abc
---
---- [rustdoc] tests/rustdoc/macro-generated-macro.rs stdout ----

error: rustdoc failed!
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/macro-generated-macro/auxiliary" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/rustdoc/macro-generated-macro" "--deny" "warnings" "/checkout/tests/rustdoc/macro-generated-macro.rs" "-A" "internal_features"
--- stderr -------------------------------
error: missing fragment specifier
##[error]  --> /checkout/tests/rustdoc/macro-generated-macro.rs:28:48
   |
   |
28 |     "space between most kinds of tokens": 1 $x + @ :: >>= 'static
   |
   = note: fragment specifiers must be specified in the 2024 edition
   = note: fragment specifiers must be specified in the 2024 edition
   = help: valid fragment specifiers are `ident`, `block`, `stmt`, `expr`, `expr_2021`, `pat`, `ty`, `lifetime`, `literal`, `path`, `meta`, `tt`, `item` and `vis`
help: try adding a specifier here
   |
28 |     "space between most kinds of tokens": 1 $x +:spec @ :: >>= 'static

error: aborting due to 1 previous error
------------------------------------------

rust-log-analyzer avatar Jul 31 '24 04:07 rust-log-analyzer

This is just to test the diagnostics, none of the possible code cleanup is included.

@petrochenkov please take a look when you get the chance and start crater if the change seems correct.

@bors try

tgross35 avatar Jul 31 '24 07:07 tgross35

:hourglass: Trying commit c2492ec0df5fb7804bf6bb47481bbc52df052200 with merge 063c08dd8db6ff113bb809c130456f1781abe72c...

bors avatar Jul 31 '24 07:07 bors

:sunny: Try build successful - checks-actions Build commit: 063c08dd8db6ff113bb809c130456f1781abe72c (063c08dd8db6ff113bb809c130456f1781abe72c)

bors avatar Jul 31 '24 09:07 bors

@craterbot check

petrochenkov avatar Jul 31 '24 12:07 petrochenkov

:ok_hand: Experiment pr-128425 created and queued. :robot: Automatically detected try build 063c08dd8db6ff113bb809c130456f1781abe72c :mag: You can check out the queue and this experiment's details.

:information_source: Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

craterbot avatar Jul 31 '24 12:07 craterbot

:construction: Experiment pr-128425 is now running

:information_source: Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

craterbot avatar Aug 09 '24 12:08 craterbot

:tada: Experiment pr-128425 is completed! :bar_chart: 156 regressed and 2 fixed (487733 total) :newspaper: Open the full report.

:warning: If you notice any spurious failure please add them to the blacklist! :information_source: Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

craterbot avatar Aug 11 '24 15:08 craterbot

rg 'missing fragment specifier' -l --stats in the logs reports 373 matches. The previous attempt in 2020 had 475 regressions per https://github.com/rust-lang/rust/issues/76605, so that is slight improvement but not much.

Like the previous run, almost all of these (361) come from clap <= 2.20, based on a crude rg 'missing fragment specifier.*\n.*clap' -l --stats -U. Remaining 12:

build-fail/reg/sem/0.1.0/master#83dcdb3a5dad0ed1e3e1fadc848d3f7727b41aa5.txt-[INFO] [stdout]    --> src/macros.rs:121:17
build-fail/reg/sem/0.1.0/master#83dcdb3a5dad0ed1e3e1fadc848d3f7727b41aa5.txt-[INFO] [stdout]    --> src/macros.rs:136:17
build-fail/reg/sem/0.1.0/master#83dcdb3a5dad0ed1e3e1fadc848d3f7727b41aa5.txt-[INFO] [stdout]    --> src/macros.rs:121:17
build-fail/reg/sem/0.1.0/master#83dcdb3a5dad0ed1e3e1fadc848d3f7727b41aa5.txt-[INFO] [stdout]    --> src/macros.rs:136:17
build-fail/reg/sem/0.1.0/try#063c08dd8db6ff113bb809c130456f1781abe72c.txt-[INFO] [stdout]    --> src/macros.rs:121:17
build-fail/reg/sem/0.1.0/try#063c08dd8db6ff113bb809c130456f1781abe72c.txt-[INFO] [stdout]    --> src/macros.rs:136:17
build-fail/reg/sem/0.1.0/try#063c08dd8db6ff113bb809c130456f1781abe72c.txt-[INFO] [stdout]    --> src/macros.rs:121:17
build-fail/reg/sem/0.1.0/try#063c08dd8db6ff113bb809c130456f1781abe72c.txt-[INFO] [stdout]    --> src/macros.rs:136:17
build-fail/reg/sem/0.1.0/try#063c08dd8db6ff113bb809c130456f1781abe72c.txt-[INFO] [stdout]    --> src/macros.rs:121:17
build-fail/reg/sem/0.1.0/try#063c08dd8db6ff113bb809c130456f1781abe72c.txt-[INFO] [stdout]    --> src/macros.rs:121:17
build-fail/reg/sem/0.1.0/try#063c08dd8db6ff113bb809c130456f1781abe72c.txt-[INFO] [stdout]    --> src/macros.rs:136:17
build-fail/reg/sem/0.1.0/try#063c08dd8db6ff113bb809c130456f1781abe72c.txt-[INFO] [stdout]    --> src/macros.rs:136:17

We could let this simmer for a while with the new error in deps level (https://github.com/rust-lang/rust/pull/128122) and/or the edition-dependent lint (https://github.com/rust-lang/rust/pull/128006). I don't really know how to feel about these results because all of the relevant clap versions have been yanked for ~4 years, per https://github.com/clap-rs/clap/issues/2076.

Requesting compiler feedback for how to proceed. Context: this was made an e2024 error in https://github.com/rust-lang/rust/pull/128006, making it an error in all editions is being considered here.

@rustbot label +I-compiler-nominated

tgross35 avatar Aug 14 '24 06:08 tgross35

Discussed briefly in the compiler team triage meeting. Given that nearly all regressions are on very old versions of clap and this has been a compatibility warning since 2017, we think it's reasonable to make this an unconditional error.

wesleywiser avatar Aug 15 '24 14:08 wesleywiser

Thanks for discussing this. I'll wait for the next beta branch so https://github.com/rust-lang/rust/pull/128122 is on stable for at least a cycle, then continue pushing this forward.

tgross35 avatar Aug 18 '24 01:08 tgross35

To reflect my above comment

@rustbot blocked

tgross35 avatar Aug 19 '24 11:08 tgross35

@tgross35 friendly ping in case you still want to pursuit this (I think formally this is not blocked anymore)

@rustbot label -S-blocked

apiraino avatar Oct 31 '24 09:10 apiraino

Thanks for discussing this. I'll wait for the next beta branch so #128122 is on stable for at least a cycle, then continue pushing this forward.

@tgross35 Do you plan to return to this? The mentioned beta branch was released long time ago.

petrochenkov avatar Feb 19 '25 16:02 petrochenkov

Yeah, that came and went. I'll get this rebased soon, should probably rerun crater to see if anything improved.

tgross35 avatar Feb 19 '25 17:02 tgross35

The job x86_64-gnu-llvm-18 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
#21 exporting to docker image format
#21 sending tarball 28.2s done
#21 DONE 35.6s
##[endgroup]
Setting extra environment values for docker:  --env ENABLE_GCC_CODEGEN=1 --env GCC_EXEC_PREFIX=/usr/lib/gcc/
[CI_JOB_NAME=x86_64-gnu-llvm-18]
debug: `DISABLE_CI_RUSTC_IF_INCOMPATIBLE` configured.
---
sccache: Starting the server...
##[group]Configure the build
configure: processing command line
configure: 
configure: build.configure-args := ['--build=x86_64-unknown-linux-gnu', '--llvm-root=/usr/lib/llvm-18', '--enable-llvm-link-shared', '--set', 'rust.randomize-layout=true', '--set', 'rust.thin-lto-import-instr-limit=10', '--enable-verbose-configure', '--enable-sccache', '--disable-manage-submodules', '--enable-locked-deps', '--enable-cargo-native-static', '--set', 'rust.codegen-units-std=1', '--set', 'dist.compression-profile=balanced', '--dist-compression-formats=xz', '--set', 'rust.lld=false', '--disable-dist-src', '--release-channel=nightly', '--enable-debug-assertions', '--enable-overflow-checks', '--enable-llvm-assertions', '--set', 'rust.verify-llvm-ir', '--set', 'rust.codegen-backends=llvm,cranelift,gcc', '--set', 'llvm.static-libstdcpp', '--enable-new-symbol-mangling']
configure: target.x86_64-unknown-linux-gnu.llvm-config := /usr/lib/llvm-18/bin/llvm-config
configure: llvm.link-shared     := True
configure: rust.randomize-layout := True
configure: rust.thin-lto-import-instr-limit := 10
---

17    |        ^
18    |
19    = note: fragment specifiers must be specified in the 2024 edition
-    = help: valid fragment specifiers are `ident`, `block`, `stmt`, `expr`, `expr_2021`, `pat`, `ty`, `lifetime`, `literal`, `path`, `meta`, `tt`, `item` and `vis`
+    = help: valid fragment specifiers are `ident`, `block`, `stmt`, `expr`, `pat`, `ty`, `lifetime`, `literal`, `path`, `meta`, `tt`, `item` and `vis`, along with `expr_2021` and `pat_param` for edition compatibility
21 help: try adding a specifier here
22    |
23 LL |     { $+:spec } => {

The actual stderr differed from the expected stderr.
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args parser/macro/issue-33569.rs`
To only update this specific test, also pass `--test-args parser/macro/issue-33569.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/parser/macro/issue-33569.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "--target=x86_64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/parser/macro/issue-33569" "-A" "unused" "-A" "internal_features" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers"
--- stderr -------------------------------
error: expected identifier, found `+`
##[error]  --> /checkout/tests/ui/parser/macro/issue-33569.rs:2:8
   |
   |
LL |     { $+ } => { //~ ERROR expected identifier, found `+`


error: expected one of: `*`, `+`, or `?`
   |
   |
LL |         $(x)(y) //~ ERROR expected one of: `*`, `+`, or `?`

error: missing fragment specifier
##[error]  --> /checkout/tests/ui/parser/macro/issue-33569.rs:2:8
   |
   |
LL |     { $+ } => { //~ ERROR expected identifier, found `+`
   |
   = note: fragment specifiers must be specified in the 2024 edition
   = note: fragment specifiers must be specified in the 2024 edition
   = help: valid fragment specifiers are `ident`, `block`, `stmt`, `expr`, `pat`, `ty`, `lifetime`, `literal`, `path`, `meta`, `tt`, `item` and `vis`, along with `expr_2021` and `pat_param` for edition compatibility
help: try adding a specifier here
   |
LL |     { $+:spec } => { //~ ERROR expected identifier, found `+`

error: missing fragment specifier
##[error]  --> /checkout/tests/ui/parser/macro/issue-33569.rs:2:8
   |
   |
LL |     { $+ } => { //~ ERROR expected identifier, found `+`

error: aborting due to 4 previous errors
------------------------------------------

rust-log-analyzer avatar Feb 20 '25 07:02 rust-log-analyzer

The job x86_64-gnu-llvm-18 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
#21 exporting to docker image format
#21 sending tarball 28.2s done
#21 DONE 34.3s
##[endgroup]
Setting extra environment values for docker:  --env ENABLE_GCC_CODEGEN=1 --env GCC_EXEC_PREFIX=/usr/lib/gcc/
[CI_JOB_NAME=x86_64-gnu-llvm-18]
debug: `DISABLE_CI_RUSTC_IF_INCOMPATIBLE` configured.
---
sccache: Listening on address 127.0.0.1:4226
##[group]Configure the build
configure: processing command line
configure: 
configure: build.configure-args := ['--build=x86_64-unknown-linux-gnu', '--llvm-root=/usr/lib/llvm-18', '--enable-llvm-link-shared', '--set', 'rust.randomize-layout=true', '--set', 'rust.thin-lto-import-instr-limit=10', '--enable-verbose-configure', '--enable-sccache', '--disable-manage-submodules', '--enable-locked-deps', '--enable-cargo-native-static', '--set', 'rust.codegen-units-std=1', '--set', 'dist.compression-profile=balanced', '--dist-compression-formats=xz', '--set', 'rust.lld=false', '--disable-dist-src', '--release-channel=nightly', '--enable-debug-assertions', '--enable-overflow-checks', '--enable-llvm-assertions', '--set', 'rust.verify-llvm-ir', '--set', 'rust.codegen-backends=llvm,cranelift,gcc', '--set', 'llvm.static-libstdcpp', '--enable-new-symbol-mangling']
configure: target.x86_64-unknown-linux-gnu.llvm-config := /usr/lib/llvm-18/bin/llvm-config
configure: llvm.link-shared     := True
configure: rust.randomize-layout := True
configure: rust.thin-lto-import-instr-limit := 10
---
  Downloaded boml v0.3.1
   Compiling boml v0.3.1
   Compiling y v0.1.0 (/checkout/compiler/rustc_codegen_gcc/build_system)
    Finished `release` profile [optimized] target(s) in 3.89s
     Running `/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-codegen/x86_64-unknown-linux-gnu/release/y test --use-system-gcc --use-backend gcc --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/cg_gcc --release --mini-tests --std-tests`
Using system GCC
warning: target feature `x87` must be enabled to ensure that the ABI of the current target can be implemented correctly
  |
  = note: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
  = note: for more information, see issue #116344 <https://github.com/rust-lang/rust/issues/116344>
---
##[group]Building stage0 tool linkchecker (x86_64-unknown-linux-gnu)
    Finished `release` profile [optimized] target(s) in 0.14s
##[endgroup]
##[group]Testing stage0 Linkcheck (x86_64-unknown-linux-gnu)
edition-guide/print.html:2728: broken link fragment `#missing-fragment-specifier` pointing to `rustc/lints/listing/deny-by-default.html`
edition-guide/print.html:2731: broken link fragment `#missing-fragment-specifier` pointing to `rustc/lints/listing/deny-by-default.html`
edition-guide/print.html:2746: broken link fragment `#missing-fragment-specifier` pointing to `rustc/lints/listing/deny-by-default.html`
edition-guide/rust-2024/missing-macro-fragment-specifiers.html:164: broken link fragment `#missing-fragment-specifier` pointing to `rustc/lints/listing/deny-by-default.html`
edition-guide/rust-2024/missing-macro-fragment-specifiers.html:167: broken link fragment `#missing-fragment-specifier` pointing to `rustc/lints/listing/deny-by-default.html`
edition-guide/rust-2024/missing-macro-fragment-specifiers.html:182: broken link fragment `#missing-fragment-specifier` pointing to `rustc/lints/listing/deny-by-default.html`
number of HTML files scanned: 44244
number of HTML redirects found: 13808
number of links checked: 2447658
number of links ignored due to external: 92482
number of links ignored due to external: 92482
number of links ignored due to exceptions: 24
number of intra doc links ignored: 9
errors found: 6
found some broken links
Command has failed. Rerun with -v to see more details.
  local time: Thu Feb 20 18:33:45 UTC 2025
  network time: Thu, 20 Feb 2025 18:33:45 GMT
##[error]Process completed with exit code 1.
Post job cleanup.

rust-log-analyzer avatar Feb 20 '25 18:02 rust-log-analyzer

@bors try

tgross35 avatar Feb 26 '25 06:02 tgross35

:hourglass: Trying commit d1ce28d0b75f3dab26e75ad7944367177f8a3983 with merge d12484522bcab8d07e325c6570f226a2faace3f7...

bors avatar Feb 26 '25 06:02 bors

The job x86_64-gnu-llvm-18 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
#21 exporting to docker image format
#21 sending tarball 28.1s done
#21 DONE 41.2s
##[endgroup]
Setting extra environment values for docker:  --env ENABLE_GCC_CODEGEN=1 --env GCC_EXEC_PREFIX=/usr/lib/gcc/
[CI_JOB_NAME=x86_64-gnu-llvm-18]
debug: `DISABLE_CI_RUSTC_IF_INCOMPATIBLE` configured.
---
sccache: Listening on address 127.0.0.1:4226
##[group]Configure the build
configure: processing command line
configure: 
configure: build.configure-args := ['--build=x86_64-unknown-linux-gnu', '--llvm-root=/usr/lib/llvm-18', '--enable-llvm-link-shared', '--set', 'rust.randomize-layout=true', '--set', 'rust.thin-lto-import-instr-limit=10', '--enable-verbose-configure', '--enable-sccache', '--disable-manage-submodules', '--enable-locked-deps', '--enable-cargo-native-static', '--set', 'rust.codegen-units-std=1', '--set', 'dist.compression-profile=balanced', '--dist-compression-formats=xz', '--set', 'rust.lld=false', '--disable-dist-src', '--release-channel=nightly', '--enable-debug-assertions', '--enable-overflow-checks', '--enable-llvm-assertions', '--set', 'rust.verify-llvm-ir', '--set', 'rust.codegen-backends=llvm,cranelift,gcc', '--set', 'llvm.static-libstdcpp', '--enable-new-symbol-mangling']
configure: target.x86_64-unknown-linux-gnu.llvm-config := /usr/lib/llvm-18/bin/llvm-config
configure: llvm.link-shared     := True
configure: rust.randomize-layout := True
configure: rust.thin-lto-import-instr-limit := 10
---
  Downloaded boml v0.3.1
   Compiling boml v0.3.1
   Compiling y v0.1.0 (/checkout/compiler/rustc_codegen_gcc/build_system)
    Finished `release` profile [optimized] target(s) in 4.19s
     Running `/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-codegen/x86_64-unknown-linux-gnu/release/y test --use-system-gcc --use-backend gcc --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/cg_gcc --release --mini-tests --std-tests`
Using system GCC
warning: target feature `x87` must be enabled to ensure that the ABI of the current target can be implemented correctly
  |
  = note: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
  = note: for more information, see issue #116344 <https://github.com/rust-lang/rust/issues/116344>
---
failures:

---- broken_fragment_local stdout ----

thread 'broken_fragment_local' panicked at src/tools/linkchecker/tests/checks.rs:17:5:
assertion failed: !status.success()

---- broken_fragment_remote stdout ----


thread 'broken_fragment_remote' panicked at src/tools/linkchecker/tests/checks.rs:17:5:
assertion failed: !status.success()

failures:
    broken_fragment_local
    broken_fragment_remote

rust-log-analyzer avatar Feb 26 '25 06:02 rust-log-analyzer

:sunny: Try build successful - checks-actions Build commit: d12484522bcab8d07e325c6570f226a2faace3f7 (d12484522bcab8d07e325c6570f226a2faace3f7)

bors avatar Feb 26 '25 08:02 bors

The PR CI is just stuck on linkcheck. Cratering again to see if anything has changed since the error upgrades.

@craterbot check

tgross35 avatar Feb 26 '25 08:02 tgross35

:ok_hand: Experiment pr-128425-1 created and queued. :robot: Automatically detected try build d12484522bcab8d07e325c6570f226a2faace3f7 :mag: You can check out the queue and this experiment's details.

:information_source: Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

craterbot avatar Feb 26 '25 08:02 craterbot

:construction: Experiment pr-128425-1 is now running

:information_source: Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

craterbot avatar Feb 26 '25 08:02 craterbot

:tada: Experiment pr-128425-1 is completed! :bar_chart: 140 regressed and 0 fixed (589170 total) :newspaper: Open the full report.

:warning: If you notice any spurious failure please add them to the denylist! :information_source: Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

craterbot avatar Feb 27 '25 05:02 craterbot

Waiting on author to analyze the regressions and fix CI. @rustbot author

petrochenkov avatar Feb 27 '25 17:02 petrochenkov

rg 'missing fragment specifier' -l --stats now reports 350 matches, down from 373 in https://github.com/rust-lang/rust/pull/128425#issuecomment-2287923502. I don't think this indicates any significant change, except now all of the regressions are from yanked versions of clap (I'm assuming sem was removed from crater?).

Worth noting that there are a lot of warnings for unknown lint missing_fragment_specifier, apparently this is denied via attribute/CLI reasonably often.

CI will fail on linkcheck until https://github.com/rust-lang/edition-guide/pull/376 or something similar is merged and the submodule gets synced in.

@rustbot ready

tgross35 avatar Apr 26 '25 07:04 tgross35

Does this need FCP?

tgross35 avatar Apr 26 '25 07:04 tgross35

The job x86_64-gnu-llvm-19 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
#18 exporting to docker image format
#18 sending tarball 21.2s done
#18 DONE 32.5s
##[endgroup]
Setting extra environment values for docker:  --env ENABLE_GCC_CODEGEN=1 --env GCC_EXEC_PREFIX=/usr/lib/gcc/
[CI_JOB_NAME=x86_64-gnu-llvm-19]
[CI_JOB_NAME=x86_64-gnu-llvm-19]
debug: `DISABLE_CI_RUSTC_IF_INCOMPATIBLE` configured.
---
sccache: Listening on address 127.0.0.1:4226
##[group]Configure the build
configure: processing command line
configure: 
configure: build.configure-args := ['--build=x86_64-unknown-linux-gnu', '--llvm-root=/usr/lib/llvm-19', '--enable-llvm-link-shared', '--set', 'rust.randomize-layout=true', '--set', 'rust.thin-lto-import-instr-limit=10', '--set', 'build.print-step-timings', '--enable-verbose-tests', '--set', 'build.metrics', '--enable-verbose-configure', '--enable-sccache', '--disable-manage-submodules', '--enable-locked-deps', '--enable-cargo-native-static', '--set', 'rust.codegen-units-std=1', '--set', 'dist.compression-profile=balanced', '--dist-compression-formats=xz', '--set', 'rust.lld=false', '--disable-dist-src', '--release-channel=nightly', '--enable-debug-assertions', '--enable-overflow-checks', '--enable-llvm-assertions', '--set', 'rust.verify-llvm-ir', '--set', 'rust.codegen-backends=llvm,cranelift,gcc', '--set', 'llvm.static-libstdcpp', '--enable-new-symbol-mangling']
configure: build.build          := x86_64-unknown-linux-gnu
configure: target.x86_64-unknown-linux-gnu.llvm-config := /usr/lib/llvm-19/bin/llvm-config
configure: llvm.link-shared     := True
configure: rust.randomize-layout := True
configure: rust.thin-lto-import-instr-limit := 10
---
  Number of decisions:   4439
  longest path:          1159 (code:    152)
  longest backtrack:       66 (code:    428)
Shared 87642 out of 154040 states by creating 14936 new states, saving 72706
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/expmed.cc: In function ‘rtx_def* extract_bit_field_1(rtx, poly_uint64, poly_uint64, int, rtx, machine_mode, machine_mode, bool, bool, rtx_def**)’:
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/expmed.cc:1864:45: warning: ‘*(unsigned int*)((char*)&imode + offsetof(scalar_int_mode, scalar_int_mode::m_mode))’ may be used uninitialized [-Wmaybe-uninitialized]
 1864 |       rtx sub = extract_bit_field_as_subreg (mode1, op0, imode,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
 1865 |                                              bitsize, bitnum);
      |                                              ~~~~~~~~~~~~~~~~
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/expmed.cc:1824:19: note: ‘*(unsigned int*)((char*)&imode + offsetof(scalar_int_mode, scalar_int_mode::m_mode))’ was declared here
 1824 |   scalar_int_mode imode;
      |                   ^~~~~
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/gimple-range-gori.cc: In member function ‘void range_def_chain::dump(FILE*, basic_block, const char*)’:
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/gimple-range-gori.cc:318:19: warning: format not a string literal and no format arguments [-Wformat-security]
  318 |           fprintf (f, prefix);
      |           ~~~~~~~~^~~~~~~~~~~
---
                 from /checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/analyzer/region-model.h:33,
                 from /checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/analyzer/access-diagram.cc:38:
In constructor ‘ana::byte_range::byte_range(ana::byte_offset_t, ana::byte_size_t)’,
    inlined from ‘virtual text_art::table ana::string_literal_spatial_item::make_table(const ana::bit_to_table_map&, text_art::style_manager&) const’ at /checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/analyzer/access-diagram.cc:1811:18:
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/analyzer/store.h:312:5: warning: ‘size_in_bytes.generic_wide_int<fixed_wide_int_storage<128> >::fixed_wide_int_storage<128>.fixed_wide_int_storage<128>::val[1]’ may be used uninitialized [-Wmaybe-uninitialized]
  312 |     m_size_in_bytes (size_in_bytes)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/analyzer/access-diagram.cc: In member function ‘virtual text_art::table ana::string_literal_spatial_item::make_table(const ana::bit_to_table_map&, text_art::style_manager&) const’:
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/analyzer/access-diagram.cc:1807:28: note: ‘size_in_bytes.generic_wide_int<fixed_wide_int_storage<128> >::fixed_wide_int_storage<128>.fixed_wide_int_storage<128>::val[1]’ was declared here
 1807 |                byte_size_t size_in_bytes
      |                            ^~~~~~~~~~~~~
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/diagnostic.cc: In function ‘void fancy_abort(const char*, int, const char*)’:
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/diagnostic.cc:1729:15: warning: format not a string literal and no format arguments [-Wformat-security]
 1729 |       fnotice (stderr, diagnostic_kind_text[DK_ICE]);
---
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/gcc.cc:7938:9: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
 7938 |   write (fd, "\n\n", 2);
      |   ~~~~~~^~~~~~~~~~~~~~~
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/gcc.cc: In member function ‘void driver::final_actions() const’:
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/gcc.cc:9315:13: warning: ignoring return value of ‘int truncate(const char*, __off_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
 9315 |     truncate(totruncate_file, 0);
      |     ~~~~~~~~^~~~~~~~~~~~~~~~~~~~
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/gengtype-lex.l: In function ‘int yylex(const char**)’:
gengtype-lex.cc:357:15: warning: this statement may fall through [-Wimplicit-fallthrough=]
  357 | #define YY_DO_BEFORE_ACTION \
      |  ~~~~~~~~~~~~~^~~~~~~
---
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/lto/lto-common.cc: In function ‘void lto_resolution_read(splay_tree, FILE*, lto_file*)’:
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/lto/lto-common.cc:2095:10: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
 2095 |   fscanf (resolution, " ");   /* Read white space.  */
      |   ~~~~~~~^~~~~~~~~~~~~~~~~
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/lto/lto-common.cc:2097:9: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
 2097 |   fread (obj_name, sizeof (char), name_len, resolution);
      |   ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/lto/lto-common.cc:2117:10: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
 2117 |   fscanf (resolution, "%u", &num_symbols);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/jit/jit-recording.cc:31:
---
Applying machine_name             to sys/rseq.h
Applying io_quotes_use            to sys/epoll.h
Applying io_quotes_use            to sys/raw.h
Applying io_quotes_use            to misc/cxl.h
Applying io_quotes_use            to misc/xilinx_sdfec.h
Applying io_quotes_use            to misc/mrvl_cn10k_dpi.h
Applying io_quotes_use            to misc/ocxl.h
Applying io_quotes_def            to sudo_plugin.h
Applying io_quotes_use            to sudo_plugin.h
Applying io_quotes_def            to unicode/platform.h
Applying glibc_stdint             to stdint.h
Applying hpux8_bogus_inlines      to math.h
---
Applying io_quotes_use            to scsi/cxlflash_ioctl.h
Applying machine_name             to openssl/e_os2.h
Applying io_quotes_use            to drm/tegra_drm.h
Applying io_quotes_use            to drm/vgem_drm.h
Applying io_quotes_use            to drm/pvr_drm.h
Applying io_quotes_use            to drm/i915_drm.h
Applying io_quotes_use            to drm/exynos_drm.h
Applying io_quotes_use            to drm/vc4_drm.h
Applying io_quotes_use            to drm/nouveau_drm.h
Applying io_quotes_use            to drm/xe_drm.h
Applying io_quotes_use            to drm/amdgpu_drm.h
Applying io_quotes_use            to drm/v3d_drm.h
Applying io_quotes_use            to drm/lima_drm.h
Applying io_quotes_use            to drm/etnaviv_drm.h
Applying io_quotes_use            to drm/qaic_accel.h
Applying io_quotes_use            to drm/radeon_drm.h
Applying io_quotes_use            to drm/msm_drm.h
Applying io_quotes_use            to drm/drm.h
Applying io_quotes_use            to drm/habanalabs_accel.h
Applying io_quotes_use            to drm/omap_drm.h
Applying io_quotes_use            to drm/panfrost_drm.h
Applying io_quotes_use            to linux/dma-heap.h
Applying io_quotes_def            to linux/version.h
Applying io_quotes_use            to linux/omapfb.h
---
Applying io_quotes_use            to linux/ndctl.h
Applying io_quotes_use            to linux/dm-ioctl.h
Applying io_quotes_use            to linux/vfio.h
Applying io_quotes_use            to linux/rfkill.h
Applying io_quotes_use            to linux/tps6594_pfsm.h
Applying io_quotes_use            to linux/genwqe/genwqe_card.h
Applying io_quotes_use            to linux/agpgart.h
Applying io_quotes_use            to linux/i2o-dev.h
Applying io_quotes_use            to linux/pidfd.h
Applying io_quotes_use            to linux/psp-dbc.h
---
[RUSTC-TIMING] proc_macro test:false 5.572
[RUSTC-TIMING] test test:false 9.149
    Finished `release` profile [optimized] target(s) in 1m 19s
##[endgroup]
[TIMING] core::build_steps::compile::Std { target: x86_64-unknown-linux-gnu, compiler: Compiler { stage: 1, host: x86_64-unknown-linux-gnu, forced_compiler: true }, crates: [], force_recompile: false, extra_rust_args: ["-Csymbol-mangling-version=v0", "-Cpanic=abort"], is_for_mir_opt_tests: false } -- 79.556
Testing GCC stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
 Downloading crates ...
  Downloaded boml v0.3.1
   Compiling boml v0.3.1
[RUSTC-TIMING] boml test:false 0.789
   Compiling y v0.1.0 (/checkout/compiler/rustc_codegen_gcc/build_system)
[RUSTC-TIMING] y test:false 2.952
    Finished `release` profile [optimized] target(s) in 4.17s
     Running `/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-codegen/x86_64-unknown-linux-gnu/release/y test --use-backend gcc --gcc-path /checkout/obj/build/x86_64-unknown-linux-gnu/gcc/install/lib --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/cg_gcc --release --mini-tests --std-tests`
`--gcc-path` was provided, ignoring config file. Using `/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/install/lib` as path for libgccjit
[BUILD] mini_core
[RUSTC-TIMING] mini_core test:false 0.209
[BUILD] example
[AOT] mini_core_hello_world
[RUSTC-TIMING] mini_core_hello_world test:false 0.184
---
##[endgroup]
[TIMING] core::build_steps::tool::ToolBuild { compiler: Compiler { stage: 0, host: x86_64-unknown-linux-gnu, forced_compiler: false }, target: x86_64-unknown-linux-gnu, tool: "linkchecker", path: "src/tools/linkchecker", mode: ToolBootstrap, source_type: InTree, extra_features: [], allow_features: "", cargo_args: [], artifact_kind: Binary } -- 0.146
[TIMING] core::build_steps::tool::Linkchecker { compiler: Compiler { stage: 0, host: x86_64-unknown-linux-gnu, forced_compiler: false }, target: x86_64-unknown-linux-gnu } -- 0.000
##[group]Testing stage0 Linkcheck (x86_64-unknown-linux-gnu)
edition-guide/rust-2024/missing-macro-fragment-specifiers.html:167: broken link fragment `#missing-fragment-specifier` pointing to `rustc/lints/listing/deny-by-default.html`
edition-guide/rust-2024/missing-macro-fragment-specifiers.html:170: broken link fragment `#missing-fragment-specifier` pointing to `rustc/lints/listing/deny-by-default.html`
edition-guide/rust-2024/missing-macro-fragment-specifiers.html:182: broken link fragment `#missing-fragment-specifier` pointing to `rustc/lints/listing/deny-by-default.html`
edition-guide/print.html:2720: broken link fragment `#missing-fragment-specifier` pointing to `rustc/lints/listing/deny-by-default.html`
edition-guide/print.html:2723: broken link fragment `#missing-fragment-specifier` pointing to `rustc/lints/listing/deny-by-default.html`
edition-guide/print.html:2735: broken link fragment `#missing-fragment-specifier` pointing to `rustc/lints/listing/deny-by-default.html`
checked links in: 24.8s
number of HTML files scanned: 45807
number of HTML redirects found: 14459
number of links checked: 2514601
number of links ignored due to external: 102609
number of links ignored due to exceptions: 24
number of intra doc links ignored: 9
errors found: 6
found some broken links
Command has failed. Rerun with -v to see more details.
Build completed unsuccessfully in 0:44:59
  local time: Sat Apr 26 08:28:35 UTC 2025
  network time: Sat, 26 Apr 2025 08:28:36 GMT
##[error]Process completed with exit code 1.
Post job cleanup.

rust-log-analyzer avatar Apr 26 '25 08:04 rust-log-analyzer

:umbrella: The latest upstream changes (presumably #140366) made this pull request unmergeable. Please resolve the merge conflicts.

bors avatar Apr 27 '25 20:04 bors