Use 1.88 & bump HAL MSRV (#3742)

* Update MSRV to 1.88

* Clean up lints

* Generate new baseline

* Bump MSRV of xtensa-lx-rt

* Do not try to replace in semver baseline, bump dependent msrvs

* Changelog
This commit is contained in:
Dániel Buga 2025-07-03 15:44:27 +02:00 committed by GitHub
parent 583be70559
commit c6df02190b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
36 changed files with 46 additions and 49 deletions

View File

@ -24,7 +24,7 @@ on:
env:
CARGO_TERM_COLOR: always
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
MSRV: "1.86.0"
MSRV: "1.88.0"
DEFMT_LOG: trace
# Cancel any currently running workflows from the same PR, branch, or
@ -71,7 +71,7 @@ jobs:
# Install the Rust toolchain for Xtensa devices:
- uses: esp-rs/xtensa-toolchain@v1.6
with:
version: 1.87.0.0
version: 1.88.0.0
# Install the Rust stable toolchain for RISC-V devices:
- uses: dtolnay/rust-toolchain@v1
@ -133,7 +133,7 @@ jobs:
with:
target: riscv32imc-unknown-none-elf,riscv32imac-unknown-none-elf
toolchain: ${{ env.MSRV }}
components: rust-src
components: rust-src,clippy
- uses: Swatinem/rust-cache@v2
- name: Stable toolchain checks

View File

@ -86,7 +86,7 @@ jobs:
- uses: esp-rs/xtensa-toolchain@v1.6
with:
default: true
version: 1.87.0.0
version: 1.88.0.0
# xtensa-toolchain installs rustup and a basic toolchain, but doesn't install rust-src
- name: rust-src

View File

@ -124,7 +124,7 @@ jobs:
with:
buildtargets: ${{ matrix.target.soc }}
default: true
version: 1.87.0.0
version: 1.88.0.0
- name: Build tests
run: cargo xtask build tests ${{ matrix.target.soc }}

View File

@ -107,7 +107,7 @@ impl Display for ExceptionCause {
"Cp0Disabled (Access to the floating point coprocessor is not allowed. You may want to enable the `float-save-restore` feature of the `xtensa-lx-rt` crate.)"
)
} else {
write!(f, "{:?}", self)
write!(f, "{self:?}")
}
}
}

View File

@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- MSRV is now 1.88.0 (#3742)
### Fixed

View File

@ -2,7 +2,7 @@
name = "esp-hal-embassy"
version = "0.8.1"
edition = "2024"
rust-version = "1.86.0"
rust-version = "1.88.0"
description = "Embassy support for esp-hal"
documentation = "https://docs.espressif.com/projects/rust/esp-hal-embassy/latest/"
keywords = ["async", "embedded", "esp32", "espressif"]

View File

@ -2,7 +2,7 @@
[![Crates.io](https://img.shields.io/crates/v/esp-hal-embassy?labelColor=1C2C2E&color=C96329&logo=Rust&style=flat-square)](https://crates.io/crates/esp-hal-embassy)
[![docs.rs](https://img.shields.io/docsrs/esp-hal-embassy?labelColor=1C2C2E&color=C96329&logo=rust&style=flat-square)](https://docs.espressif.com/projects/rust/esp-hal-embassy/latest/)
![MSRV](https://img.shields.io/badge/MSRV-1.86.0-blue?labelColor=1C2C2E&style=flat-square)
![MSRV](https://img.shields.io/badge/MSRV-1.88.0-blue?labelColor=1C2C2E&style=flat-square)
![Crates.io](https://img.shields.io/crates/l/esp-hal-embassy?labelColor=1C2C2E&style=flat-square)
[![Matrix](https://img.shields.io/matrix/esp-rs:matrix.org?label=join%20matrix&labelColor=1C2C2E&color=BEC5C9&logo=matrix&style=flat-square)](https://matrix.to/#/#esp-rs:matrix.org)

View File

@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- MSRV is now 1.88.0 (#3742)
- The `handler` macro no longer accepts priority as a string (#3643)
### Fixed

View File

@ -2,7 +2,7 @@
name = "esp-hal-procmacros"
version = "0.18.0"
edition = "2024"
rust-version = "1.86.0"
rust-version = "1.88.0"
description = "Procedural macros for esp-hal"
documentation = "https://docs.espressif.com/projects/rust/esp-hal-procmacros/latest/"
repository = "https://github.com/esp-rs/esp-hal"

View File

@ -2,7 +2,7 @@
[![Crates.io](https://img.shields.io/crates/v/esp-hal-procmacros?labelColor=1C2C2E&color=C96329&logo=Rust&style=flat-square)](https://crates.io/crates/esp-hal-procmacros)
[![docs.rs](https://img.shields.io/docsrs/esp-hal-procmacros?labelColor=1C2C2E&color=C96329&logo=rust&style=flat-square)](https://docs.espressif.com/projects/rust/esp-hal-procmacros/latest/)
![MSRV](https://img.shields.io/badge/MSRV-1.86.0-blue?labelColor=1C2C2E&style=flat-square)
![MSRV](https://img.shields.io/badge/MSRV-1.88.0-blue?labelColor=1C2C2E&style=flat-square)
![Crates.io](https://img.shields.io/crates/l/esp-hal-procmacros?labelColor=1C2C2E&style=flat-square)
[![Matrix](https://img.shields.io/matrix/esp-rs:matrix.org?label=join%20matrix&labelColor=1C2C2E&color=BEC5C9&logo=matrix&style=flat-square)](https://matrix.to/#/#esp-rs:matrix.org)

View File

@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- MSRV is now 1.88.0 (#3742)
- `AnyI2c` has been moved from `esp_hal::i2c` to `esp_hal::i2c::master` (#3627)
- `AnySpi` has been moved from `esp_hal::spi` to `esp_hal::spi::master` and `esp_hal::spi::slave` (#3627)
- `DataMode` has been moved from `esp_hal::spi` to `esp_hal::spi::master` (#3627)

View File

@ -2,7 +2,7 @@
name = "esp-hal"
version = "1.0.0-beta.1"
edition = "2024"
rust-version = "1.86.0"
rust-version = "1.88.0"
description = "Bare-metal HAL for Espressif devices"
documentation = "https://docs.espressif.com/projects/rust/esp-hal/latest/"
keywords = ["embedded", "embedded-hal", "esp32", "espressif", "hal"]

View File

@ -2,7 +2,7 @@
[![Crates.io](https://img.shields.io/crates/v/esp-hal?labelColor=1C2C2E&color=C96329&logo=Rust&style=flat-square)](https://crates.io/crates/esp-hal)
[![docs.rs](https://img.shields.io/docsrs/esp-hal?labelColor=1C2C2E&color=C96329&logo=rust&style=flat-square)](https://docs.espressif.com/projects/rust/esp-hal/latest/)
![MSRV](https://img.shields.io/badge/MSRV-1.86.0-blue?labelColor=1C2C2E&style=flat-square)
![MSRV](https://img.shields.io/badge/MSRV-1.88.0-blue?labelColor=1C2C2E&style=flat-square)
![Crates.io](https://img.shields.io/crates/l/esp-hal?labelColor=1C2C2E&style=flat-square)
[![Matrix](https://img.shields.io/matrix/esp-rs:matrix.org?label=join%20matrix&labelColor=1C2C2E&color=BEC5C9&logo=matrix&style=flat-square)](https://matrix.to/#/#esp-rs:matrix.org)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -755,7 +755,7 @@ pub(crate) mod utils {
}
}
#[derive(Debug, Copy, Clone, PartialEq)]
#[derive(Default, Debug, Copy, Clone, PartialEq)]
struct PsramCmd {
cmd: u16, // Command value
cmd_bit_len: u16, // Command byte length
@ -768,22 +768,6 @@ pub(crate) mod utils {
dummy_bit_len: u32,
}
impl Default for PsramCmd {
fn default() -> Self {
Self {
cmd: Default::default(),
cmd_bit_len: Default::default(),
addr: Default::default(),
addr_bit_len: Default::default(),
tx_data: core::ptr::null(),
tx_data_bit_len: Default::default(),
rx_data: core::ptr::null_mut(),
rx_data_bit_len: Default::default(),
dummy_bit_len: Default::default(),
}
}
}
const PSRAM_ENTER_QMODE: u32 = 0x35;
// enter QPI mode

View File

@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- MSRV is now 1.88.0 (#3742)
### Fixed

View File

@ -2,7 +2,7 @@
name = "esp-ieee802154"
version = "0.7.0"
edition = "2024"
rust-version = "1.86.0"
rust-version = "1.88.0"
description = "Low-level IEEE 802.15.4 driver for the ESP32-C6 and ESP32-H2"
documentation = "https://docs.espressif.com/projects/rust/esp-ieee802154/latest/"
keywords = ["embedded", "esp32", "espressif", "ieee802154", "wpan"]

View File

@ -2,7 +2,7 @@
[![Crates.io](https://img.shields.io/crates/v/esp-ieee802154?labelColor=1C2C2E&color=C96329&logo=Rust&style=flat-square)](https://crates.io/crates/esp-ieee802154)
[![docs.rs](https://img.shields.io/docsrs/esp-ieee802154?labelColor=1C2C2E&color=C96329&logo=rust&style=flat-square)](https://docs.espressif.com/projects/rust/esp-ieee802154/latest/)
![MSRV](https://img.shields.io/badge/MSRV-1.86.0-blue?labelColor=1C2C2E&style=flat-square)
![MSRV](https://img.shields.io/badge/MSRV-1.88.0-blue?labelColor=1C2C2E&style=flat-square)
![Crates.io](https://img.shields.io/crates/l/esp-ieee802154?labelColor=1C2C2E&style=flat-square)
[![Matrix](https://img.shields.io/matrix/esp-rs:matrix.org?label=join%20matrix&labelColor=1C2C2E&color=BEC5C9&logo=matrix&style=flat-square)](https://matrix.to/#/#esp-rs:matrix.org)

View File

@ -12,10 +12,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- MSRV is now 1.88.0 (#3742)
- Removed `esp_wifi::deinit_unchecked` and `esp_wifi::EspWifiController::deinit` - you can just drop `EspWifiController` instead (#3553)
- `defmt` and `log-04` can no longer be selected at the same time (#3675)
### Fixed

View File

@ -2,7 +2,7 @@
name = "esp-wifi"
version = "0.14.1"
edition = "2024"
rust-version = "1.86.0"
rust-version = "1.88.0"
description = "A WiFi, Bluetooth and ESP-NOW driver for use with Espressif chips and bare-metal Rust"
documentation = "https://docs.espressif.com/projects/rust/esp-wifi/latest/"
keywords = ["wifi", "bluetooth", "esp-now", "esp32", "no-std"]

View File

@ -2,7 +2,7 @@
[![Crates.io](https://img.shields.io/crates/v/esp-wifi?labelColor=1C2C2E&color=C96329&logo=Rust&style=flat-square)](https://crates.io/crates/esp-wifi)
[![docs.rs](https://img.shields.io/docsrs/esp-wifi?labelColor=1C2C2E&color=C96329&logo=rust&style=flat-square)](https://docs.espressif.com/projects/rust/esp-wifi/latest/)
![MSRV](https://img.shields.io/badge/MSRV-1.86.0-blue?labelColor=1C2C2E&style=flat-square)
![MSRV](https://img.shields.io/badge/MSRV-1.88.0-blue?labelColor=1C2C2E&style=flat-square)
![Crates.io](https://img.shields.io/crates/l/esp-wifi?labelColor=1C2C2E&style=flat-square)
[![Matrix](https://img.shields.io/matrix/esp-rs:matrix.org?label=join%20matrix&labelColor=1C2C2E&color=BEC5C9&logo=matrix&style=flat-square)](https://matrix.to/#/#esp-rs:matrix.org)

View File

@ -100,7 +100,7 @@ impl SchedulerState {
save_task_context(unsafe { &mut *self.current_task }, trap_frame);
if !self.to_delete.is_null() {
let task_to_delete = core::mem::replace(&mut self.to_delete, core::ptr::null_mut());
let task_to_delete = core::mem::take(&mut self.to_delete);
self.delete_task(task_to_delete);
}
@ -209,7 +209,7 @@ fn delete_all_tasks() {
let first_task = SCHEDULER_STATE.with(|state| {
// Remove all tasks from the list. We will drop them outside of the critical
// section.
core::mem::replace(&mut state.current_task, core::ptr::null_mut())
core::mem::take(&mut state.current_task)
});
if first_task.is_null() {

View File

@ -35,7 +35,7 @@ reqwest = { version = "0.12.12", features = [
cargo-semver-checks = { version = "0.41.0", optional = true }
# THIS NEEDS TO MATCH THE rustfmt-json FORMAT - see https://github.com/rust-lang/rustdoc-types/blob/trunk/CHANGELOG.md
rustdoc-types = { version = "0.35.0", optional = true }
rustdoc-types = { version = "0.53.0", optional = true }
flate2 = { version = "1.1.1", optional = true }
temp-file = { version = "0.1.9", optional = true }

View File

@ -1,6 +1,6 @@
use std::path::Path;
use anyhow::{Result, bail};
use anyhow::{Context, Result, bail};
use clap::Args;
use regex::{Captures, Regex};
use strum::IntoEnumIterator;
@ -26,11 +26,10 @@ pub struct BumpMsrvArgs {
/// Bump the MSRV
///
/// This will process
/// - `Cargo.toml` for the packages (adjust (or add if not present) the
/// "rust-version")
/// - `Cargo.toml` for the packages (adjust (or add if not present) the "rust-version")
/// - `README.md` for the packages if it exists (adjusts the MSRV badge)
/// - IF the esp-hal package was touched: .github/workflows/ci.yml (adapts the
/// `MSRV: "<msrv>"` entry)
/// - IF the esp-hal package was touched: .github/workflows/ci.yml (adapts the `MSRV: "<msrv>"`
/// entry)
///
/// Non-published packages are not touched.
///
@ -161,6 +160,8 @@ fn add_dependent_crates(
/// Check files in the package and show if we find the version string in any
/// file. Most probably it will report false positives but maybe not.
fn check_mentions(package_path: &std::path::PathBuf, previous_rust_version: &str) -> Result<()> {
use std::ffi::OsStr;
let disallowed_extensions = [OsStr::new("gz")];
for entry in walkdir::WalkDir::new(package_path)
.into_iter()
.filter_map(|entry| {
@ -170,6 +171,12 @@ fn check_mentions(package_path: &std::path::PathBuf, previous_rust_version: &str
return None;
}
if let Some(ext) = path.extension()
&& disallowed_extensions.contains(&ext)
{
return None;
}
if path.components().any(|c| c.as_os_str() == "target") {
return None;
}
@ -177,7 +184,8 @@ fn check_mentions(package_path: &std::path::PathBuf, previous_rust_version: &str
Some(path)
})
{
let contents = std::fs::read_to_string(&entry)?;
let contents = std::fs::read_to_string(&entry)
.with_context(|| format!("Failed to read {}", entry.as_path().display()))?;
if contents.contains(previous_rust_version) {
println!(
"⚠️ '{previous_rust_version}' found in file {} - might be a false positive, otherwise consider adjusting the xtask.",

View File

@ -261,9 +261,9 @@ pub fn interrupt(args: TokenStream, input: TokenStream) -> TokenStream {
let naked = f.attrs.iter().any(|x| eq(x, "naked"));
let ident_s = if naked {
format!("__naked_level_{}_interrupt", level)
format!("__naked_level_{level}_interrupt")
} else {
format!("__level_{}_interrupt", level)
format!("__level_{level}_interrupt")
};
if naked && !(2..=7).contains(&level) {

View File

@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- MSRV is now 1.88.0 (#3742)
### Fixed

View File

@ -2,7 +2,7 @@
name = "xtensa-lx-rt"
version = "0.19.0"
edition = "2024"
rust-version = "1.86.0"
rust-version = "1.88.0"
description = "Minimal startup/runtime for Xtensa LX CPUs"
documentation = "https://docs.espressif.com/projects/rust/xtensa-lx-rt/latest/"
repository = "https://github.com/esp-rs/esp-hal"

View File

@ -2,7 +2,7 @@
[![Crates.io](https://img.shields.io/crates/v/xtensa-lx-rt?labelColor=1C2C2E&color=C96329&logo=Rust&style=flat-square)](https://crates.io/crates/xtensa-lx-rt)
[![docs.rs](https://img.shields.io/docsrs/xtensa-lx-rt?labelColor=1C2C2E&color=C96329&logo=rust&style=flat-square)](https://docs.espressif.com/projects/rust/xtensa-lx-rt/latest/)
![MSRV](https://img.shields.io/badge/MSRV-1.86.0-blue?labelColor=1C2C2E&style=flat-square)
![MSRV](https://img.shields.io/badge/MSRV-1.88.0-blue?labelColor=1C2C2E&style=flat-square)
![Crates.io](https://img.shields.io/crates/l/xtensa-lx-rt?labelColor=1C2C2E&style=flat-square)
[![Matrix](https://img.shields.io/matrix/esp-rs:matrix.org?label=join%20matrix&labelColor=1C2C2E&color=BEC5C9&logo=matrix&style=flat-square)](https://matrix.to/#/#esp-rs:matrix.org)

View File

@ -217,7 +217,7 @@ fn inject_cpu_cfgs(isa_config: &HashMap<&str, Value>) {
.and_then(|v| v.as_integer())
{
for i in 0..value.count_ones() {
println!("cargo:rustc-cfg=XCHAL_HAVE_SOFTWARE{}", i);
println!("cargo:rustc-cfg=XCHAL_HAVE_SOFTWARE{i}");
}
}
}

View File

@ -4,7 +4,7 @@
#![doc = document_features::document_features!()]
#![doc(html_logo_url = "https://avatars.githubusercontent.com/u/46717278")]
#![allow(asm_sub_register, named_asm_labels)]
#![feature(asm_experimental_arch, naked_functions)]
#![feature(asm_experimental_arch)]
#![no_std]
use core::{