From fe979f26c568adca9bc121c1c15625ee8238c737 Mon Sep 17 00:00:00 2001 From: daimond113 Date: Sun, 19 Jan 2025 21:48:55 +0100 Subject: [PATCH] refactor: remove unnecessary asyncness from download_and_link Additionally fixes stack overflows by building the `miniz_oxide` crate with release level optimizations. Signed-off-by: daimond113 --- Cargo.toml | 3 +++ src/download_and_link.rs | 18 +++++++----------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 6214662..c7b9968 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -99,6 +99,9 @@ members = ["registry"] [profile.dev.package.full_moon] opt-level = 3 +[profile.dev.package.miniz_oxide] +opt-level = 3 + [profile.release] opt-level = "s" lto = true diff --git a/src/download_and_link.rs b/src/download_and_link.rs index c3dca18..6b0a6e9 100644 --- a/src/download_and_link.rs +++ b/src/download_and_link.rs @@ -426,13 +426,13 @@ impl Project { } } - async fn index_entry( + fn index_entry( entry: fs::DirEntry, packages_index_dir: &Path, tasks: &mut JoinSet>, used_paths: &Arc>, #[cfg(feature = "wally-compat")] used_wally_paths: &Arc>, - ) -> std::io::Result<()> { + ) { let path = entry.path(); let path_relative = path.strip_prefix(packages_index_dir).unwrap().to_path_buf(); @@ -455,7 +455,7 @@ impl Project { ); } - return Ok(()); + return (); } let used_paths = used_paths.clone(); @@ -481,15 +481,13 @@ impl Project { remove_empty_dir(&path).await }); - - Ok(()) } - async fn packages_entry( + fn packages_entry( entry: fs::DirEntry, tasks: &mut JoinSet>, expected_aliases: &Arc>, - ) -> std::io::Result<()> { + ) { let expected_aliases = expected_aliases.clone(); tasks.spawn(async move { if !entry.file_type().await?.is_file() { @@ -517,8 +515,6 @@ impl Project { Ok(()) }); - - Ok(()) } let used_paths = graph @@ -590,14 +586,14 @@ impl Project { &used_paths, #[cfg(feature = "wally-compat")] &used_wally_paths, - ).await?; + ); } Some(entry) = packages_entries.next_entry().map(Result::transpose) => { packages_entry( entry?, &mut tasks, &expected_aliases, - ).await?; + ); } else => break, }