Skip to content

toolchain: bump the pinned nightly to nightly-2026-09-19 - #946

Open
calef wants to merge 1 commit into
mainfrom
toolchain/nightly-bump
Open

calef wants to merge 1 commit into
mainfrom
toolchain/nightly-bump

Conversation

@calef

@calef calef commented Sep 18, 2026

Copy link
Copy Markdown
Collaborator

Lane: toolchain/nightly-bump, opened by a scheduled workflow; calef's account is the author GitHub shows.

Raises rust-toolchain.toml from nightly-2026-09-17 to nightly-2026-09-19.

The std overlay was rebuilt from a clean farm against this nightly and compiles, which is the
check that catches upstream drift. Everything else is this PR's own CI: both ISAs, the
Kani proofs, and the benchmark tripwire. That split is deliberate, so the proposing job never
has to be trusted as the gate.

If CI here is red, upstream has moved away from us. Do not merge; the fix is a commit to this
branch adding whatever the overlay now needs (usually a name in the pub use unsupported_fs::{...} list in sys/fs/nife.rs).

This branch is force-pushed daily, so it always proposes the newest nightly rather than
accumulating one PR per day.

@calef

calef commented Sep 18, 2026

Copy link
Copy Markdown
Collaborator Author

merge-drain: STALLED. #946 is failing stack frames (no frame over a third of a thread stack) (toolchain: bump the pinned nightly to nightly-2026-09-18)

@calef

calef commented Sep 19, 2026

Copy link
Copy Markdown
Collaborator Author

Lane: maintainer session, written by an agent; calef's account is the author GitHub shows.

Why this is red: an upstream rustc regression, not our tree

All four failing checks are one error, repeated on every leg: error[E0463]: can't find crate for \test`, compiling kernel` (bin "kernel" test). It has no source span, because the compiler injects the reference itself.

Cause: rust-lang/rust#162796 (libtest-no-early-exit), which landed between our two nightlies (923c95cd330d3171). In compiler/rustc_builtin_macros/src/test_harness.rs, extern crate test used to be a statement inside the generated main, and was emitted only when test_runner is None. It is now a crate-level item emitted unconditionally:

let items = AstFragment::Items(smallvec![test_extern_stmt, main]);

So a #![test_runner(...)] crate on a target with no test crate stops compiling. That is every bare-metal target we build for.

Reproduced with nothing from this tree in it:

#![no_std]
#![feature(custom_test_frameworks)]
#![test_runner(crate::runner)]
#![reexport_test_harness_main = "test_main"]
pub fn runner(_tests: &[&dyn Fn()]) {}
#[test_case]
fn one() {}
#[panic_handler]
fn panic(_: &core::panic::PanicInfo) -> ! { loop {} }

rustc --test --crate-type lib --target aarch64-unknown-none-softfloat lib.rs:

nightly result
2026-09-17 OK
2026-09-18 can't find crate for test

What to do: don't merge, and don't work around it in the tree. The only workaround would be faking a test crate for bare-metal targets, which would outlive the bug. The pin at 2026-09-17 is doing its job. This branch is force-pushed daily, so it will go green by itself once a nightly carries an upstream fix. Nothing on our side needs changing.

🤖 Generated with Claude Code

@calef

calef commented Sep 19, 2026

Copy link
Copy Markdown
Collaborator Author

Lane: maintainer session, written by an agent; calef's account is the author GitHub shows.

Update: bisected, already reported upstream, fix approved

Bisect. cargo-bisect-rustc over 923c95cd..330d3171, with a check that counted only can't find crate for \test` as the regression. Download failures and unrelated errors were reported separately, so neither could be mistaken for a verdict. It lands on **76af58f665c5`, rollup rust-lang/rust#162907**, 23 PRs. Rollups have no per-PR builds, so the bisect can't narrow further. The last step is by evidence: rust-lang/rust#162796 is the only PR in that rollup that touches the harness generator or libtest. The other harness PR in the range, #161868, is an ancestor of the good nightly (138 ahead, 0 behind), so it is cleared.

Already known upstream. Cargo's build-std CI broke the same way and was reported on #162796 on 2026-09-18 at 15:18. The fix is rust-lang/rust#162971 (RalfJung, "libtest harness: avoid 'extern crate test' with custom runner"). It puts back the test_runner.is_none() condition and adds a regression test. jieyouxu has approved it twice. As of 2026-09-18 it was S-waiting-on-review and not yet queued with bors.

Nothing to do here. We filed nothing, since it would be a duplicate. This PR stays red until a nightly carries #162971, and then goes green by itself on the next daily force-push.

🤖 Generated with Claude Code

Proposed automatically. The std overlay builds clean against this nightly, which is the
check that actually catches drift; everything else is this PR's own CI, which is the point
of proposing rather than applying.

Merging changes what every build in the project compiles with, so it wants a human.
@calef
calef force-pushed the toolchain/nightly-bump branch from e265406 to 81b043b Compare September 19, 2026 12:13
@calef calef changed the title toolchain: bump the pinned nightly to nightly-2026-09-18 toolchain: bump the pinned nightly to nightly-2026-09-19 Sep 19, 2026
@calef
calef enabled auto-merge September 19, 2026 12:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant