Skip to content

build: raise MSRV 1.97.0 -> 1.97.1 (1.97.0 miscompiles gp-core's shape)#71

Merged
maratik123 merged 2 commits into
mainfrom
fix/2026-07-16-msrv-1-97-1
Jul 16, 2026
Merged

build: raise MSRV 1.97.0 -> 1.97.1 (1.97.0 miscompiles gp-core's shape)#71
maratik123 merged 2 commits into
mainfrom
fix/2026-07-16-msrv-1-97-1

Conversation

@maratik123

Copy link
Copy Markdown
Owner

Summary

Raises the workspace MSRV from 1.97.0 to 1.97.1. 1.97.0 miscompiles: under optimizations, Option::map over nested enum/struct types segfaults instead of yielding None (rust#159035) — which is what gp-core is made of. An LLVM optimizer pass emits an unconditional trunc nuw that is poison for a -1 niche tag; the trigger was a rustc change. 1.97.1 ships the LLVM fix plus a revert of that trigger.

Fixed everywhere — stable backport rust#159288 (→ 1.97.1), beta backport rust#159072 (→ 1.98). 1.96.1 unaffected; 1.97.0 is the only released stable that ever carried it.

rust-version is the only lever that refuses the broken compiler. CI pins no stable toolchain (setup-rust-toolchain@v1 defaults to stable, which already resolves 1.97.1), and there is no rust-toolchain.toml — the sole 1.97.0 in ci.yml was a comment. The advisory miri lane pins nightly but was never exposed: Miri interprets MIR and never runs the LLVM optimizer.

The docs just state the MSRV. The rationale lives in the commit message, reachable from git blame Cargo.toml — the bug is fixed everywhere and 1.97.0 is dead, so carrying its history in README.md would be archaeology that rots.

Commits

1db57e0 the MSRV bump — Cargo.toml, plus a ci.yml comment and three live doc claims
ad130de unrelated pre-existing fix: README's cargo test comment said 99, actual is 103

Deliberately untouched

~24 other 1.97.0 references are historical records and stay: ai-docs/plans/done/** (completed-task specs/designs), ai-docs/learnings.md (append-only per AGENTS.md Boundary rule 1), ai-docs/plans/INDEX.md, ai-docs/deferred/_inbox.jsonl. They record what was true when those tasks ran; rewriting them would falsify history.

Tracking

No tracking issue — direct product-owner instruction.

Test plan

  • cargo build --workspace
  • cargo test --workspace103 passed, 0 failed ✅ (on 1.97.1)
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo fmt --check
  • RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --workspace
  • actionlint .github/workflows/ci.yml ✅ (run before git add — AGENTS.md AXIOM; ci.yml changed)
  • cargo metadata — all 5 crates resolve rust-version = 1.97.1 via rust-version.workspace = true

0 new tests — a toolchain floor bump has no new behaviour to cover.

🤖 Generated with Claude Code

rust#159035: under optimizations, `Option::map` over nested enum/struct
types segfaults instead of yielding None -- which is what gp-core is made
of. An LLVM optimizer pass emits an unconditional `trunc nuw` that is
poison for a -1 niche tag; the trigger was a rustc change. 1.97.1 ships
the LLVM fix plus a revert of that trigger (stable backport rust#159288;
beta backport rust#159072 -> 1.98). 1.96.1 unaffected; 1.97.0 is the only
released stable that ever carried it.

rust-version is the only lever that refuses the broken compiler: CI pins
no stable toolchain (setup-rust-toolchain@v1 defaults to stable, which
already resolves 1.97.1); the sole 1.97.0 in ci.yml was a comment. The
advisory miri lane pins nightly but was never exposed -- Miri interprets
MIR and never runs the LLVM optimizer.

The bug is fixed everywhere and 1.97.0 is dead, so the docs just state
the MSRV; this message is the durable home for the why, reachable from
`git blame Cargo.toml`.

Historical 1.97.0 references in ai-docs/plans/done/**, learnings.md,
INDEX.md and _inbox.jsonl are deliberately untouched -- they record what
was true when those tasks ran.

0 new tests; 103 workspace tests green on 1.97.1.
The cargo test comment read '97 gp-core + 2 gp-gen' (= 99). #11 added
gp-render's tessellation smoke test and golden guard, and the workspace
runs 2 doc-tests. Pre-existing staleness, unrelated to the MSRV bump.
@maratik123
maratik123 merged commit c7b415b into main Jul 16, 2026
11 checks passed
@maratik123
maratik123 deleted the fix/2026-07-16-msrv-1-97-1 branch July 19, 2026 00:06
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