Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

rust: edition 2024 #1586

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
nicholasbishop merged 8 commits into rust-osdev:main from phip1611:edition-2024
May 18, 2025
Merged

rust: edition 2024 #1586

nicholasbishop merged 8 commits into rust-osdev:main from phip1611:edition-2024
May 18, 2025

Conversation

Copy link
Member

@phip1611 phip1611 commented Mar 23, 2025

Closes #1584

Checklist

  • Sensible git history (for example, squash "typo" or "fix" commits). See the Rewriting History guide for help.
  • Update the changelog (if necessary)

Copy link
Member Author

phip1611 commented Mar 23, 2025
edited
Loading

@nicholasbishop I have a never ending back-and-forth between code gen and formatting with these lines and I don't really understand where the root cause is. Using full-text search, I can't find anything. Any idea?

diff --git a/uefi-raw/src/protocol/device_path/device_path_gen.rs b/uefi-raw/src/protocol/device_path/device_path_gen.rs
index 9914779c..825a2792 100644
--- a/uefi-raw/src/protocol/device_path/device_path_gen.rs
+++ b/uefi-raw/src/protocol/device_path/device_path_gen.rs
@@ -10,7 +10,7 @@
 #![allow(missing_debug_implementations)]
 use crate::protocol::device_path;
 use crate::table::boot::MemoryType;
-use crate::{guid, Guid, IpAddress};
+use crate::{Guid, IpAddress, guid};
 use bitflags::bitflags;
 use device_path::DevicePathProtocol as DevicePathHeader;
 #[cfg(doc)]
diff --git a/uefi/src/proto/device_path/device_path_gen.rs b/uefi/src/proto/device_path/device_path_gen.rs
index 915e1ff6..3892524b 100644
--- a/uefi/src/proto/device_path/device_path_gen.rs
+++ b/uefi/src/proto/device_path/device_path_gen.rs
@@ -15,7 +15,7 @@ use crate::proto::device_path::{
 self, DevicePathHeader, DevicePathNode, DeviceSubType, DeviceType, NodeConversionError,
 };
 use crate::proto::network::IpAddress;
-use crate::{guid, Guid};
+use crate::{Guid, guid};
 use bitflags::bitflags;
 use core::mem::{size_of, size_of_val};
 use core::ptr::addr_of;
@@ -3647,10 +3647,10 @@ impl TryFrom<&DevicePathNode> for DevicePathNodeEnum<'_> {
 /// Build device paths from their component nodes.
 pub mod build {
 use super::*;
+ use crate::CStr16;
 use crate::proto::device_path::build::{BuildError, BuildNode};
 use crate::proto::device_path::{DeviceSubType, DeviceType};
- use crate::CStr16;
- use core::mem::{size_of_val, MaybeUninit};
+ use core::mem::{MaybeUninit, size_of_val};
 /// Device path build nodes for [`DeviceType::END`].
 pub mod end {
 use super::*;

Copy link
Member

Interesting. I'm not sure why this is happening, but explicitly passing --style-edition=2024 to the rustfmt command in the code generator fixes it:

diff --git a/xtask/src/device_path/util.rs b/xtask/src/device_path/util.rs
index 59cdc662..e1b9fe4e 100644
--- a/xtask/src/device_path/util.rs
+++ b/xtask/src/device_path/util.rs
@@ -16,6 +16,7 @@ pub fn is_doc_attr(attr: &Attribute) -> bool {
 pub fn rustfmt_string(input: String) -> Result<String> {
 let mut child = Command::new("rustfmt")
 .args([
+ "--style-edition=2024",
 "--config",
 // Convert `#[doc = "..."]` to `///` for readability.
 "normalize_doc_attributes=true",

It seems as though it's ignoring the config file, but I'm not sure why that would be.

Copy link
Member Author

phip1611 commented Mar 24, 2025
edited
Loading

Ahh, got it. I deleted rustfmt.toml again once I set edition = "2024" in Cargo.toml. cargo fmt forwards --edition 2024 to rustfmt but direct invocations of rustfmt are not aware of Cargo.toml#edition of course.

@phip1611 phip1611 changed the title (削除) rust: edition 2024 (削除ここまで) (追記) [BLOCKED until Rust May 15/ Rust 1.87] rust: edition 2024 (追記ここまで) Apr 8, 2025
@phip1611 phip1611 changed the title (削除) [BLOCKED until Rust May 15/ Rust 1.87] rust: edition 2024 (削除ここまで) (追記) [BLOCKED until May 15/ Rust 1.87] rust: edition 2024 (追記ここまで) Apr 8, 2025
@phip1611 phip1611 mentioned this pull request May 5, 2025
10 tasks
@phip1611 phip1611 changed the title (削除) [BLOCKED until May 15/ Rust 1.87] rust: edition 2024 (削除ここまで) (追記) rust: edition 2024 (追記ここまで) May 17, 2025
@phip1611 phip1611 marked this pull request as ready for review May 17, 2025 10:33
Copy link
Member Author

phip1611 commented May 17, 2025
edited
Loading

Are we good to go here, @nicholasbishop?

I'm not sure how to handle the Miri error 🤔

@phip1611 phip1611 force-pushed the edition-2024 branch 2 times, most recently from b8f137d to d9e1f0a Compare May 17, 2025 10:57
Copy link
Member Author

phip1611 commented May 17, 2025
edited
Loading

Oh interesting, miri error might be unrelated to this PR, also happens here: https://github.com/rust-osdev/uefi-rs/actions/runs/15084802709/job/42405995121

Update: context rust-lang/miri#4323

@nicholasbishop nicholasbishop added this pull request to the merge queue May 18, 2025
Merged via the queue into rust-osdev:main with commit 8ecb54d May 18, 2025
27 of 28 checks passed
@phip1611 phip1611 deleted the edition-2024 branch May 19, 2025 04:10
@phip1611 phip1611 mentioned this pull request Aug 25, 2025
2 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Reviewers

@nicholasbishop nicholasbishop nicholasbishop approved these changes

Labels
None yet
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

Plan for edition 2024

AltStyle によって変換されたページ (->オリジナル) /