Upgrade all dependencies (incl. egui)

This commit is contained in:
2025-11-18 22:21:46 -07:00
parent b2dcecc5d8
commit 827f4a42bd
12 changed files with 787 additions and 764 deletions

1468
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -75,6 +75,7 @@ ignore = [
#{ crate = "a-crate-that-is-yanked@0.1.1", reason = "you can specify why you are ignoring the yanked crate" }, #{ crate = "a-crate-that-is-yanked@0.1.1", reason = "you can specify why you are ignoring the yanked crate" },
{ id = "RUSTSEC-2024-0436", reason = "Unmaintained paste crate is an indirect dependency" }, { id = "RUSTSEC-2024-0436", reason = "Unmaintained paste crate is an indirect dependency" },
{ id = "RUSTSEC-2025-0052", reason = "Unmaintained async-std crate is an indirect dependency" }, { id = "RUSTSEC-2025-0052", reason = "Unmaintained async-std crate is an indirect dependency" },
{ id = "RUSTSEC-2025-0119", reason = "Unmaintained number_prefix crate is an indirect dependency" },
] ]
# If this is true, then cargo deny will use the git executable to fetch advisory database. # If this is true, then cargo deny will use the git executable to fetch advisory database.
# If this is false, then it uses a built-in git library. # If this is false, then it uses a built-in git library.

View File

@@ -16,19 +16,19 @@ publish = false
anyhow = "1.0" anyhow = "1.0"
argp = "0.4" argp = "0.4"
crossterm = "0.29" crossterm = "0.29"
enable-ansi-support = "0.2" enable-ansi-support = "0.3"
memmap2 = "0.9" memmap2 = "0.9"
objdiff-core = { path = "../objdiff-core", features = ["all"] } objdiff-core = { path = "../objdiff-core", features = ["all"] }
prost = "0.14" prost = "0.14"
ratatui = "0.29" ratatui = "0.29"
rayon = "1.10" rayon = "1.11"
serde = { version = "1.0", features = ["derive"] } serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0" serde_json = "1.0"
supports-color = "3.0" supports-color = "3.0"
time = { version = "0.3", features = ["formatting", "local-offset"] } time = { version = "0.3", features = ["formatting", "local-offset"] }
tracing = "0.1" tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] } tracing-subscriber = { version = "0.3", features = ["env-filter"] }
typed-path = "0.11" typed-path = "0.12"
[target.'cfg(target_env = "musl")'.dependencies] [target.'cfg(target_env = "musl")'.dependencies]
mimalloc = "0.1" mimalloc = "0.1"

View File

@@ -378,7 +378,6 @@ impl UiView for FunctionDiffUi {
} }
// Reload // Reload
KeyCode::Char('r') => { KeyCode::Char('r') => {
result.redraw = true;
return EventControlFlow::Reload; return EventControlFlow::Reload;
} }
// Scroll right // Scroll right
@@ -400,7 +399,6 @@ impl UiView for FunctionDiffUi {
FunctionRelocDiffs::DataValue => FunctionRelocDiffs::All, FunctionRelocDiffs::DataValue => FunctionRelocDiffs::All,
FunctionRelocDiffs::All => FunctionRelocDiffs::None, FunctionRelocDiffs::All => FunctionRelocDiffs::None,
}; };
result.redraw = true;
return EventControlFlow::Reload; return EventControlFlow::Reload;
} }
// Toggle three-way diff // Toggle three-way diff

View File

@@ -135,10 +135,10 @@ num-traits = { version = "0.2", default-features = false, optional = true }
object = { version = "0.37", default-features = false, features = ["read_core", "elf", "coff"] } object = { version = "0.37", default-features = false, features = ["read_core", "elf", "coff"] }
pbjson = { version = "0.8", default-features = false, optional = true } pbjson = { version = "0.8", default-features = false, optional = true }
prost = { version = "0.14", default-features = false, features = ["derive"], optional = true } prost = { version = "0.14", default-features = false, features = ["derive"], optional = true }
regex = { version = "1.11", default-features = false, features = [], optional = true } regex = { version = "1.12", default-features = false, features = [], optional = true }
serde = { version = "1.0", default-features = false, features = ["derive"], optional = true } serde = { version = "1.0", default-features = false, features = ["derive"], optional = true }
similar = { git = "https://github.com/encounter/similar.git", branch = "no_std", default-features = false, features = ["hashbrown"], optional = true } similar = { git = "https://github.com/encounter/similar.git", branch = "no_std", default-features = false, features = ["hashbrown"], optional = true }
typed-path = { version = "0.11", default-features = false, optional = true } typed-path = { version = "0.12", default-features = false, optional = true }
# config # config
globset = { version = "0.4", default-features = false, optional = true } globset = { version = "0.4", default-features = false, optional = true }
@@ -155,13 +155,13 @@ powerpc = { version = "0.4", optional = true }
rlwinmdec = { version = "1.1", optional = true } rlwinmdec = { version = "1.1", optional = true }
# mips # mips
rabbitizer = { version = "2.0.0-alpha.4", default-features = false, features = ["all_extensions"], optional = true } rabbitizer = { version = "2.0.0-alpha.7", default-features = false, features = ["all_extensions"], optional = true }
# x86 # x86
iced-x86 = { version = "1.21", default-features = false, features = ["decoder", "intel", "gas", "masm", "nasm", "exhaustive_enums", "no_std"], optional = true } iced-x86 = { version = "1.21", default-features = false, features = ["decoder", "intel", "gas", "masm", "nasm", "exhaustive_enums", "no_std"], optional = true }
# arm # arm
unarm = { version = "2.0", optional = true } unarm = { version = "2.1", optional = true }
arm-attr = { version = "0.2", optional = true } arm-attr = { version = "0.2", optional = true }
# arm64 # arm64
@@ -169,15 +169,15 @@ yaxpeax-arch = { version = "0.3", default-features = false, optional = true }
yaxpeax-arm = { version = "0.3", default-features = false, optional = true } yaxpeax-arm = { version = "0.3", default-features = false, optional = true }
# build # build
notify = { version = "8.1.0", optional = true } notify = { version = "8.2.0", optional = true }
notify-debouncer-full = { version = "0.5.0", optional = true } notify-debouncer-full = { version = "0.6.0", optional = true }
shell-escape = { version = "0.1", optional = true } shell-escape = { version = "0.1", optional = true }
tempfile = { version = "3.20", optional = true } tempfile = { version = "3.23", optional = true }
time = { version = "0.3", optional = true } time = { version = "0.3", optional = true }
encoding_rs = { version = "0.8.35", optional = true } encoding_rs = { version = "0.8.35", optional = true }
# demangler # demangler
cpp_demangle = { version = "0.4", optional = true, default-features = false, features = ["alloc"] } cpp_demangle = { version = "0.5", optional = true, default-features = false, features = ["alloc"] }
cwdemangle = { version = "1.0", optional = true } cwdemangle = { version = "1.0", optional = true }
gnuv2_demangle = { version = "0.4", optional = true } gnuv2_demangle = { version = "0.4", optional = true }
msvc-demangler = { version = "0.11", optional = true } msvc-demangler = { version = "0.11", optional = true }

View File

@@ -34,9 +34,7 @@ impl Demangler {
fn demangle_itanium(name: &str) -> Option<String> { fn demangle_itanium(name: &str) -> Option<String> {
let name = name.trim_start_matches('.'); let name = name.trim_start_matches('.');
cpp_demangle::Symbol::new(name) cpp_demangle::Symbol::new(name).ok().and_then(|s| s.demangle().ok())
.ok()
.and_then(|s| s.demangle(&cpp_demangle::DemangleOptions::default()).ok())
} }
fn demangle_gnu_legacy(name: &str) -> Option<String> { fn demangle_gnu_legacy(name: &str) -> Option<String> {

View File

@@ -30,9 +30,9 @@ cfg-if = "1.0"
const_format = "0.2" const_format = "0.2"
cwdemangle = "1.0" cwdemangle = "1.0"
dirs = "6.0" dirs = "6.0"
egui = "0.32" egui = "0.33"
egui_extras = "0.32" egui_extras = "0.33"
egui-notify = "0.20" egui-notify = "0.21"
filetime = "0.2" filetime = "0.2"
float-ord = "0.3" float-ord = "0.3"
font-kit = "0.14" font-kit = "0.14"
@@ -40,21 +40,21 @@ globset = { version = "0.4", features = ["serde1"] }
log = "0.4" log = "0.4"
objdiff-core = { path = "../objdiff-core", features = ["all"] } objdiff-core = { path = "../objdiff-core", features = ["all"] }
open = "5.3" open = "5.3"
png = "0.17" png = "0.18"
pollster = "0.4" pollster = "0.4"
regex = "1.11" regex = "1.12"
rfd = { version = "0.15" } #, default-features = false, features = ['xdg-portal'] rfd = { version = "0.15" } #, default-features = false, features = ['xdg-portal']
rlwinmdec = "1.1" rlwinmdec = "1.1"
ron = "0.10" ron = "0.12"
serde = { version = "1.0", features = ["derive"] } serde = { version = "1.0", features = ["derive"] }
time = { version = "0.3", features = ["formatting", "local-offset"] } time = { version = "0.3", features = ["formatting", "local-offset"] }
typed-path = "0.11" typed-path = "0.12"
winit = { version = "0.30", features = ["default"] } winit = { version = "0.30", features = ["default"] }
tracing-subscriber = { version = "0.3", features = ["env-filter"] } tracing-subscriber = { version = "0.3", features = ["env-filter"] }
# Keep version in sync with egui # Keep version in sync with egui
[dependencies.eframe] [dependencies.eframe]
version = "0.32" version = "0.33"
features = [ features = [
"default_fonts", "default_fonts",
"glow", "glow",
@@ -66,7 +66,7 @@ default-features = false
# Keep version in sync with eframe # Keep version in sync with eframe
[dependencies.wgpu] [dependencies.wgpu]
version = "25.0" version = "27.0"
features = [ features = [
"dx12", "dx12",
"metal", "metal",

View File

@@ -14,6 +14,7 @@ mod views;
use std::{ use std::{
ffi::OsStr, ffi::OsStr,
fmt::Display, fmt::Display,
io::Cursor,
path::PathBuf, path::PathBuf,
process::ExitCode, process::ExitCode,
rc::Rc, rc::Rc,
@@ -21,7 +22,7 @@ use std::{
sync::{Arc, Mutex}, sync::{Arc, Mutex},
}; };
use anyhow::{Result, ensure}; use anyhow::{Context, Result, ensure};
use argp::{FromArgValue, FromArgs}; use argp::{FromArgValue, FromArgs};
use cfg_if::cfg_if; use cfg_if::cfg_if;
use objdiff_core::config::path::check_path_buf; use objdiff_core::config::path::check_path_buf;
@@ -90,9 +91,9 @@ struct TopLevel {
} }
fn load_icon() -> Result<egui::IconData> { fn load_icon() -> Result<egui::IconData> {
let decoder = png::Decoder::new(include_bytes!("../assets/icon_64.png").as_ref()); let decoder = png::Decoder::new(Cursor::new(include_bytes!("../assets/icon_64.png").as_ref()));
let mut reader = decoder.read_info()?; let mut reader = decoder.read_info()?;
let mut buf = vec![0; reader.output_buffer_size()]; let mut buf = vec![0; reader.output_buffer_size().context("Buffer too large")?];
let info = reader.next_frame(&mut buf)?; let info = reader.next_frame(&mut buf)?;
ensure!(info.bit_depth == png::BitDepth::Eight); ensure!(info.bit_depth == png::BitDepth::Eight);
ensure!(info.color_type == png::ColorType::Rgba); ensure!(info.color_type == png::ColorType::Rgba);

View File

@@ -104,7 +104,7 @@ impl FrameHistory {
)); ));
let cpu_usage = to_screen.inverse().transform_pos(pointer_pos).y; let cpu_usage = to_screen.inverse().transform_pos(pointer_pos).y;
let text = format!("{:.1} ms", 1e3 * cpu_usage); let text = format!("{:.1} ms", 1e3 * cpu_usage);
shapes.push(ui.fonts(|f| { shapes.push(ui.fonts_mut(|f| {
Shape::text( Shape::text(
f, f,
pos2(rect.left(), y), pos2(rect.left(), y),

View File

@@ -217,7 +217,7 @@ fn asm_row_ui(
if ins_diff.kind != InstructionDiffKind::None { if ins_diff.kind != InstructionDiffKind::None {
ui.painter().rect_filled(ui.available_rect_before_wrap(), 0.0, ui.visuals().faint_bg_color); ui.painter().rect_filled(ui.available_rect_before_wrap(), 0.0, ui.visuals().faint_bg_color);
} }
let space_width = ui.fonts(|f| f.glyph_width(&appearance.code_font, ' ')); let space_width = ui.fonts_mut(|f| f.glyph_width(&appearance.code_font, ' '));
display_row(obj, symbol_idx, ins_diff, diff_config, |segment| { display_row(obj, symbol_idx, ins_diff, diff_config, |segment| {
if let Some(action) = if let Some(action) =
diff_text_ui(ui, segment, appearance, ins_view_state, column, space_width, &response_cb) diff_text_ui(ui, segment, appearance, ins_view_state, column, space_width, &response_cb)

View File

@@ -22,8 +22,8 @@ std = ["objdiff-core/std"]
[dependencies] [dependencies]
log = { version = "0.4", default-features = false } log = { version = "0.4", default-features = false }
regex = { version = "1.11", default-features = false, features = ["unicode-case"] } regex = { version = "1.12", default-features = false, features = ["unicode-case"] }
wit-bindgen = { version = "0.44", default-features = false, features = ["macros"] } wit-bindgen = { version = "0.48", default-features = false, features = ["macros"] }
xxhash-rust = { version = "0.8", default-features = false, features = ["xxh3"] } xxhash-rust = { version = "0.8", default-features = false, features = ["xxh3"] }
[dependencies.objdiff-core] [dependencies.objdiff-core]

View File

@@ -469,16 +469,17 @@ impl From<obj::SymbolFlagSet> for SymbolFlags {
fn from(flags: obj::SymbolFlagSet) -> SymbolFlags { fn from(flags: obj::SymbolFlagSet) -> SymbolFlags {
let mut out = SymbolFlags::empty(); let mut out = SymbolFlags::empty();
for flag in flags { for flag in flags {
out |= match flag { out = out
obj::SymbolFlag::Global => SymbolFlags::GLOBAL, | match flag {
obj::SymbolFlag::Local => SymbolFlags::LOCAL, obj::SymbolFlag::Global => SymbolFlags::GLOBAL,
obj::SymbolFlag::Weak => SymbolFlags::WEAK, obj::SymbolFlag::Local => SymbolFlags::LOCAL,
obj::SymbolFlag::Common => SymbolFlags::COMMON, obj::SymbolFlag::Weak => SymbolFlags::WEAK,
obj::SymbolFlag::Hidden => SymbolFlags::HIDDEN, obj::SymbolFlag::Common => SymbolFlags::COMMON,
obj::SymbolFlag::HasExtra => SymbolFlags::HAS_EXTRA, obj::SymbolFlag::Hidden => SymbolFlags::HIDDEN,
obj::SymbolFlag::SizeInferred => SymbolFlags::SIZE_INFERRED, obj::SymbolFlag::HasExtra => SymbolFlags::HAS_EXTRA,
obj::SymbolFlag::Ignored => SymbolFlags::IGNORED, obj::SymbolFlag::SizeInferred => SymbolFlags::SIZE_INFERRED,
}; obj::SymbolFlag::Ignored => SymbolFlags::IGNORED,
};
} }
out out
} }