Next MSRV bump

Open
#4,626 13 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Refactor
Clarity
Needs clarification
Activity status
Quiet
Tech stack
rust
Domain
build-system

Research direction

No file or test is named. Start by reviewing the workspace's current MSRV and checking the listed Rust features against the crates that use them. Done means selecting and documenting a justified MSRV increase only where the project needs it, including whether the 2024 edition or later features are required.

Written by the indexing model from the issue text.

Description

Trixie released with rustc 1.85, so I expect a lot of crates will be increasing their MSRV in the next few weeks. I'd like to upgrade only as needed, rough list of what might be nice to have:

Baseline: 1.63

  • 1.64: core::ffi::c_* (definitely need this)
  • 1.64: workspace-level lints (meh)
  • 1.65: cast_mut (this would be nice)

Baseline: 1.65

  • 1.67: varargs for non-C extern ABIs (no known applications)
  • 1.69: derive on packed structs that don't implement Copy (not overly useful for us, everything is copy)
  • 1.75: byte_add (this would be nice)
  • 1.75: const_maybe_uninit_zeroed (this would be nice)
  • 1.77: offset_of (just lets us remove a polyfill)
  • 1.77: C string literals (nothing we can't work around, not sure we even use this now)
  • 1.78: cfg(target_abi = "...") https://github.com/rust-lang/libc/pull/5065#issuecomment-4861400142
  • 1.80: size_of, align_of in prelude (nice to have but we have our own prelude)
  • 1.80: variadics without a named parameter (no known applications)
  • 1.81: #[expect(...)] (want this, but it's not pressing)
  • 1.82: unsafe extern blocks (neutral)
  • 1.82: &raw (few small applications, addr_of! works fine)
  • 1.82: nested access in offset_of! (no uses)
  • 1.84: ptr::without_provenance (some 0x1234 as *const T casts)
  • 1.85: ptr::fn_addr_eq (we don't really need this as it is just for trait impls)
  • 1.85: 2024 edition
  • 1.92: &raw [mut|const] to union fields is now safe
Dominant language
Rust
Stars
2.6k
Forks
1.3k
Avg merge
2d 13h
Merged PRs (30d)
27

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from rust-lang/libc

All issues in rust-lang/libc

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.