{
  "id": 18136800,
  "title": "Updating Rustup 1.29.3 while keeping the compiler fixed",
  "url": "https://urgent.news/2026/11/04/updating-rustup-1-29-3-while-keeping-the-compiler-fixed",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-11-04T15:17:11.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/panditshivam/updating-rustup-1293-while-keeping-the-compiler-fixed-3p5n"
  },
  "original_language": "en",
  "account": "Rustup, the toolchain manager for the Rust programming language, received an update to version 1.29.3 while maintaining the same compiler version. The change was made by updating the isolated Rustup installation from 1.29.2 to 1.29.3, preserving the linked compiler at 1.99.1. This update was then tested by compiling and running a small program through the same toolchain. The Rustup team reported two regression fixes in 1.29.3: an illegal-instruction failure on certain x86_64 CPUs lacking SSE4.1, and an unsupported-lock error on Solaris. These issues are upstream claims and were not reproduced in this walkthrough.\n\nTo update Rustup itself, users should run rustup self update, which differs from rustup update, a command that updates installed toolchains. When updating Rustup, it is essential to check both the Rustup version and the active toolchain using rustup --version and rustup show active-toolchain, respectively. The Rustup configuration directories can be customized via CARGO_HOME and RUSTUP_HOME environment variables. In this trial, separate CARGO_HOME and RUSTUP_HOME directories were used, while the shell startup files remained unchanged.\n\nTo verify the version selection, the user ran rustup --version, rustup show active-toolchain, and rustc --version. The active toolchain was identified as pinned-local (default). It's important to note that the rustc and cargo commands are proxies that pass the invocation to the selected toolchain. Updating the manager does not request a different compiler. The shell must be able to reach these proxies; otherwise, the intended toolchain may not be used.\n\nA practical step is to ensure the shell reaches the desired proxies, as a rustc supplied by another installation might produce a valid version line while bypassing the intended Rustup selection. To double-check the compiler and Cargo in a fresh shell, follow Mayur Kumbhar's environment setup walkthrough. After the update, compile a small program (demo.rs) through the linked toolchain using rustup run pinned-local rustc demo.rs -o demo and run the executable to confirm the output (sum=10). This narrow update check focuses on the manager version, compiler selection, compilation, and program output. It does not test all Cargo dependencies or guarantee the project will build on every target. To ensure a real project builds correctly across all targets, keep the project's selected compiler visible alongside the manager version.",
  "summary": "The toolchain manager and the compiler have separate version numbers. I updated an isolated Rustup installation from 1.29.2 to 1.29.3 , kept its linked compiler at 1.99.1 , then compiled and ran a small program through that same toolchain. That gives me a useful way to handle this patch: update the manager that selects the tools, then check which compiler a project actually uses. Recorded…",
  "key_points": [
    "Rustup updated to version 1.29.3",
    "Compiler version fixed at 1.99.1",
    "Two regression fixes in 1.29.3"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}