2025 All Hands Topics

Performance Roadmap

Discuss https://hackmd.io/-jpsOWYoRACRNF3G80Hkuw?edit

Other teams:

  • T-compiler
  • T-rustdoc

Doctests

Other teams:

  • T-rustdoc
  • T-compiler? / T-lang?

e.g. how should doctests be compiled?

  • Currently, cargo tells rustdoc to compile and run them
  • (T-cargo) Should cargo use rustdoc to scrape them and then compile and run them?
  • (T-compiler, T-lang) Should we consider making these a part of the language and having rustc parse doc comments, extract doctests, and turn them into #[test] fn's
    • Pulls at least a subset of markdown into Rust Language
    • Locks in markdown even further
    • More focused on unit tests than integration tests (could we inject the library name to at least avoid crate::)

Consolidated Doctests and MSRV

Now that the core behavior is stabilized, can we allow an insta-stable opt-in for old editions so foundation crates can benefit without an MSRV bump?

I suspect there is a strong inverse relationship between doc tests and MSRV (large number of doctests likely means a low MSRV). Take for instance winnow, jiff, clap, etc.

Cargo Lints

  • The rustc (as part of build) vs clippy (explicit operation) split apply to cargo?
    • Should we use the same workflow (cargo check vs cargo clippy)
    • Or do users need to know of a separate workflow they need to opt-in to for these lints (a config, a flag, a new command)
  • What namespaces should we use for cargo lints
    • Some lints mirror existing common namespace (deprecated, etc)
    • Some will behave clippy-like
    • Some will be unique to cargo but rustc-like
    • Currently, warnings applies to all existing namespaces (common, clippy)
  • Should RUSTFLAGS=-Awarnings apply to Cargo's linting?
    • No, RUSTFLAGS is for Rust source code (except target.*.dependencies)
    • Yes to all
    • Only to those namespaces already affected by RUSTFLAGS (common, clippy)
  • If Cargo uses the common namespace, how much of the metadata should be determined at runtime vs build time (ie calling rustc just to get flag state)

See also https://rust-lang.zulipchat.com/#narrow/channel/246057-t-cargo/topic/Sharing.20of.20lints/near/475872847

XDG Paths

Discuss https://internals.rust-lang.org/t/pre-rfc-split-cargo-home/19747/56

Other teams:

  • T-rustup

Codegen Settings

Other teams:

  • T-compiler

https://internals.rust-lang.org/t/the-burden-of-creating-new-compiler-options-and-exposing-them-in-cargo/22101

Include in the design of rustc flags if the Cargo implications have been determined

Involved in evaluating exposing of rustc flags in cargo since some have details we can't tell (e.g. ABI implications?).

Inter-project dependencies

Other teams:

  • T-infra or T-release

At several points, the topic has come up of using code from other parts of the project. Challenges we see

  • We are published and so that would require that other part to be published as well
  • Ensuring we release with the right versions of dependencies as we merge submodules and bubble up through the release process
Select a repo