From 3b17fa374e4cb05b1b096cf60268ba9854ff9017 Mon Sep 17 00:00:00 2001 From: Merkel Tranjes <140164174+rnkrtt@users.noreply.github.com> Date: Wed, 5 Nov 2025 22:43:26 +0100 Subject: [PATCH 1/2] perf(vm_exception): replace fold with join for error reference formatting --- vm/src/vm/errors/vm_exception.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/vm/src/vm/errors/vm_exception.rs b/vm/src/vm/errors/vm_exception.rs index 140537f8f7..87f52e31d1 100644 --- a/vm/src/vm/errors/vm_exception.rs +++ b/vm/src/vm/errors/vm_exception.rs @@ -154,11 +154,13 @@ fn substitute_error_message_references( } if !invalid_references.is_empty() { // Add the invalid references (if any) to the error_msg + let references = invalid_references + .iter() + .map(|arg| format!("'{arg}'")) + .collect::>() + .join(", "); error_msg.push_str(&format!( - " (Cannot evaluate ap-based or complex references: [{}])", - invalid_references - .iter() - .fold(String::new(), |acc, arg| acc + &format!("'{arg}'")) + " (Cannot evaluate ap-based or complex references: [{references}])" )); } } From efee9595a0b2bc8793421935c5055575f7220b20 Mon Sep 17 00:00:00 2001 From: Merkel Tranjes <140164174+rnkrtt@users.noreply.github.com> Date: Wed, 5 Nov 2025 22:43:43 +0100 Subject: [PATCH 2/2] perf(cairo_pie): optimize hex serialization with pre-allocated buffer --- vm/src/vm/runners/cairo_pie.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/vm/src/vm/runners/cairo_pie.rs b/vm/src/vm/runners/cairo_pie.rs index a545ef2237..4143458f7d 100644 --- a/vm/src/vm/runners/cairo_pie.rs +++ b/vm/src/vm/runners/cairo_pie.rs @@ -619,9 +619,14 @@ pub(super) mod serde_impl { }; } - let string = res - .iter() - .fold(String::new(), |string, b| string + &format!("{:02x}", b)); + let string = res.iter().fold( + String::with_capacity(res.len() * 2), + |mut string, b| { + use core::fmt::Write; + write!(&mut string, "{:02x}", b).unwrap(); + string + }, + ); serializer.serialize_str(&string) }