mirror of
https://github.com/esp-rs/esp-hal.git
synced 2025-09-26 20:00:32 +00:00
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:
parent
583be70559
commit
c6df02190b
6
.github/workflows/ci.yml
vendored
6
.github/workflows/ci.yml
vendored
@ -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
|
||||
|
2
.github/workflows/documentation.yml
vendored
2
.github/workflows/documentation.yml
vendored
@ -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
|
||||
|
2
.github/workflows/hil.yml
vendored
2
.github/workflows/hil.yml
vendored
@ -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 }}
|
||||
|
@ -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:?}")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
||||
|
@ -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"]
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
[](https://crates.io/crates/esp-hal-embassy)
|
||||
[](https://docs.espressif.com/projects/rust/esp-hal-embassy/latest/)
|
||||

|
||||

|
||||

|
||||
[](https://matrix.to/#/#esp-rs:matrix.org)
|
||||
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
[](https://crates.io/crates/esp-hal-procmacros)
|
||||
[](https://docs.espressif.com/projects/rust/esp-hal-procmacros/latest/)
|
||||

|
||||

|
||||

|
||||
[](https://matrix.to/#/#esp-rs:matrix.org)
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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"]
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
[](https://crates.io/crates/esp-hal)
|
||||
[](https://docs.espressif.com/projects/rust/esp-hal/latest/)
|
||||

|
||||

|
||||

|
||||
[](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.
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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"]
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
[](https://crates.io/crates/esp-ieee802154)
|
||||
[](https://docs.espressif.com/projects/rust/esp-ieee802154/latest/)
|
||||

|
||||

|
||||

|
||||
[](https://matrix.to/#/#esp-rs:matrix.org)
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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"]
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
[](https://crates.io/crates/esp-wifi)
|
||||
[](https://docs.espressif.com/projects/rust/esp-wifi/latest/)
|
||||

|
||||

|
||||

|
||||
[](https://matrix.to/#/#esp-rs:matrix.org)
|
||||
|
||||
|
@ -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() {
|
||||
|
@ -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 }
|
||||
|
@ -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.",
|
||||
|
@ -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) {
|
||||
|
@ -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
|
||||
|
||||
|
@ -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"
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
[](https://crates.io/crates/xtensa-lx-rt)
|
||||
[](https://docs.espressif.com/projects/rust/xtensa-lx-rt/latest/)
|
||||

|
||||

|
||||

|
||||
[](https://matrix.to/#/#esp-rs:matrix.org)
|
||||
|
||||
|
@ -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}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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::{
|
||||
|
Loading…
x
Reference in New Issue
Block a user