Skip to content

Improve build process#4254

Open
timon-schelling wants to merge 19 commits into
masterfrom
improve-build-process
Open

Improve build process#4254
timon-schelling wants to merge 19 commits into
masterfrom
improve-build-process

Conversation

@timon-schelling

@timon-schelling timon-schelling commented Jun 19, 2026

Copy link
Copy Markdown
Member
  • removes wasm-pack and instead calls all the underlying tools by itself
  • replaces cargo-watch with custom watch command
  • tries to keep commands as readable as possible

Replaces parts of #4228. Closes #2919.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the project's build and development workflow by replacing wasm-pack and cargo-watch with a custom Rust-based build tool (cargo-run) that directly manages wasm-bindgen compilation, process supervision, and file watching. Feedback on these changes highlights several critical issues: a compilation error in the automatic package installation logic, an inverted skip condition for the Rust Wasm Toolchain requirement, and an infinite loop vulnerability in the process supervisor when no children are provided. Additionally, the reviewer noted that output_unchecked incorrectly uses run instead of output, and that build failures are currently ignored due to a lack of error propagation in Sequence::wait and build_wasm.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment on lines +71 to +74
fn output_unchecked(self) -> Result<std::process::Output, Error> {
let e = self.unchecked().stdout_capture().stderr_capture();
duct::Expression::run(&e).map_err(Error::Command)
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

The duct::Expression::run method returns Result<(), std::io::Error>, but output_unchecked expects Result<std::process::Output, Error>. To capture and return the process output, use duct::Expression::output instead.

Suggested change
fn output_unchecked(self) -> Result<std::process::Output, Error> {
let e = self.unchecked().stdout_capture().stderr_capture();
duct::Expression::run(&e).map_err(Error::Command)
}
fn output_unchecked(self) -> Result<std::process::Output, Error> {
let e = self.unchecked().stdout_capture().stderr_capture();
duct::Expression::output(&e).map_err(Error::Command)
}

Comment on lines +216 to +225
match &dep.install {
InstallAction::Command(install_cmd) => {
let parts: Vec<&str> = install_cmd.split_whitespace().collect();
let expr = cmd(parts[0], parts[1..].iter().copied()).unchecked();
match Expression::run(&expr) {
Ok(output) if output.status.success() => successfully_installed.push(i),
Ok(_) => eprintln!("Failed to install {}", dep.name),
Err(e) => return Err(Error::Command(e)),
}
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

The Expression::run method returns Result<(), std::io::Error>, so matching on Ok(output) if output.status.success() will cause a compilation error. Matching on Ok(()) is sufficient as run already checks for a successful exit status.

				match &dep.install {
					InstallAction::Command(install_cmd) => {
						let parts: Vec<&str> = install_cmd.split_whitespace().collect();
						let expr = cmd(parts[0], parts[1..].iter().copied()).unchecked();
						match Expression::run(&expr) {
							Ok(()) => successfully_installed.push(i),
							Err(e) => return Err(Error::Command(e)),
						}
					}

Comment on lines +158 to +223
pub fn sequence<I: IntoIterator<Item = Expression>>(expressions: I) -> Sequence {
let expressions: Vec<Expression> = expressions.into_iter().collect();
let current: Arc<Mutex<Option<Arc<duct::Handle>>>> = Arc::new(Mutex::new(None));
let killed = Arc::new(AtomicBool::new(false));

let worker_current = Arc::clone(&current);
let worker_killed = Arc::clone(&killed);
let worker = std::thread::spawn(move || {
for expr in expressions {
if worker_killed.load(Ordering::SeqCst) {
return;
}
let handle = match expr.start() {
Ok(h) => Arc::new(h),
Err(e) => {
eprintln!("sequence: failed to start step: {e}");
return;
}
};
{
let mut slot = worker_current.lock().unwrap();
if worker_killed.load(Ordering::SeqCst) {
let _ = handle.kill();
return;
}
*slot = Some(Arc::clone(&handle));
}
let result = handle.wait().map(|_| ());
worker_current.lock().unwrap().take();
if worker_killed.load(Ordering::SeqCst) {
return;
}
if let Err(e) = result {
eprintln!("sequence: step failed: {e}");
return;
}
}
});

Sequence {
current,
killed,
worker: Some(worker),
}
}

pub struct Sequence {
current: Arc<Mutex<Option<Arc<duct::Handle>>>>,
killed: Arc<AtomicBool>,
worker: Option<JoinHandle<()>>,
}
impl Sequence {
pub fn kill(&self) {
let slot = self.current.lock().unwrap();
self.killed.store(true, Ordering::SeqCst);
if let Some(handle) = slot.as_ref() {
let _ = handle.kill();
}
}

pub fn wait(&mut self) {
if let Some(w) = self.worker.take() {
let _ = w.join();
}
}
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

Currently, Sequence::wait discards the exit status of the background thread, preventing build failures from being propagated. Updating Sequence to return Result<(), Error> from wait allows caller sites to handle failures properly.

pub fn sequence<I: IntoIterator<Item = Expression>>(expressions: I) -> Sequence {
	let expressions: Vec<Expression> = expressions.into_iter().collect();
	let current: Arc<Mutex<Option<Arc<duct::Handle>>>> = Arc::new(Mutex::new(None));
	let killed = Arc::new(AtomicBool::new(false));

	let worker_current = Arc::clone(&current);
	let worker_killed = Arc::clone(&killed);
	let worker = std::thread::spawn(move || {
		for expr in expressions {
			if worker_killed.load(Ordering::SeqCst) {
				return Ok(());
			}
			let handle = match expr.start() {
				Ok(h) => Arc::new(h),
				Err(e) => {
					eprintln!("sequence: failed to start step: {e}");
					return Err(Error::Command(e));
				}
			};
			{
				let mut slot = worker_current.lock().unwrap();
				if worker_killed.load(Ordering::SeqCst) {
					let _ = handle.kill();
					return Ok(());
				}
				*slot = Some(Arc::clone(&handle));
			}
			let result = handle.wait().map(|_| ());
			worker_current.lock().unwrap().take();
			if worker_killed.load(Ordering::SeqCst) {
				return Ok(());
			}
			if let Err(e) = result {
				eprintln!("sequence: step failed: {e}");
				return Err(Error::Command(e));
			}
		}
		Ok(())
	});

	Sequence {
		current,
		killed,
		worker: Some(worker),
	}
}

pub struct Sequence {
	current: Arc<Mutex<Option<Arc<duct::Handle>>>>,
	killed: Arc<AtomicBool>,
	worker: Option<JoinHandle<Result<(), Error>>>,
}
impl Sequence {
	pub fn kill(&self) {
		let slot = self.current.lock().unwrap();
		self.killed.store(true, Ordering::SeqCst);
		if let Some(handle) = slot.as_ref() {
			let _ = handle.kill();
		}
	}

	pub fn wait(&mut self) -> Result<(), Error> {
		if let Some(w) = self.worker.take() {
			w.join().unwrap_or_else(|_| Err(Error::Command(std::io::Error::other("worker thread panicked"))))
		} else {
			Ok(())
		}
	}
}

Comment on lines +17 to +20
pub fn build_wasm(release: bool, native: bool) -> Result<(), Error> {
sequence(build_wasm_steps(release, native)).wait();
Ok(())
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

Propagate the build result from sequence().wait() so that any compilation failures are correctly reported to the caller instead of silently continuing.

pub fn build_wasm(release: bool, native: bool) -> Result<(), Error> {
	sequence(build_wasm_steps(release, native)).wait()
}

Comment on lines +27 to +35
Requirement {
command: "rustc",
args: &["--print", "target-libdir", "--target", "wasm32-unknown-unknown"],
check: Check::Matches(&|out| std::path::Path::new(out.trim()).is_dir()),
name: "Rust Wasm Toolchain",
install: "rustup target add wasm32-unknown-unknown".into(),
skip: Some(&|task| !matches!(task.target, Target::Cli)),
..Default::default()
},

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The skip condition for the Rust Wasm Toolchain is inverted. It is currently skipped for everything except the CLI target, but it should be skipped only for the CLI target (since only Web and Desktop targets compile to Wasm).

Suggested change
Requirement {
command: "rustc",
args: &["--print", "target-libdir", "--target", "wasm32-unknown-unknown"],
check: Check::Matches(&|out| std::path::Path::new(out.trim()).is_dir()),
name: "Rust Wasm Toolchain",
install: "rustup target add wasm32-unknown-unknown".into(),
skip: Some(&|task| !matches!(task.target, Target::Cli)),
..Default::default()
},
Requirement {
command: "rustc",
args: &["--print", "target-libdir", "--target", "wasm32-unknown-unknown"],
check: Check::Matches(&|out| std::path::Path::new(out.trim()).is_dir()),
name: "Rust Wasm Toolchain",
install: "rustup target add wasm32-unknown-unknown".into(),
skip: Some(&|task| matches!(task.target, Target::Cli)),
..Default::default()
},

Comment thread tools/cargo-run/src/cmd.rs Outdated
Comment on lines +92 to +96
let mut handles: Vec<(String, Arc<duct::ReaderHandle>)> = Vec::new();
for (label, expr) in children {
let handle = expr.stderr_to_stdout().reader().map_err(Error::Command)?;
handles.push((label.into(), Arc::new(handle)));
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

If children is empty, handles will be empty, causing the supervisor loop to run infinitely. Adding an early return when handles is empty prevents this.

	let mut handles: Vec<(String, Arc<duct::ReaderHandle>)> = Vec::new();
	for (label, expr) in children {
		let handle = expr.stderr_to_stdout().reader().map_err(Error::Command)?;
		handles.push((label.into(), Arc::new(handle)));
	}
	if handles.is_empty() {
		return Ok(());
	}

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

9 issues found across 19 files

Confidence score: 2/5

  • In tools/cargo-run/src/requirements.rs, the Rust Wasm Toolchain skip logic is inverted and the confirmation defaults ([y/N] and [Y/n]) are mishandled, so required setup can be skipped and unresolved requirements can be accepted by default; merging as-is risks broken Web/Desktop runs and confusing setup behavior — correct the target match and align Enter/default handling with the prompt text before merging.
  • In tools/cargo-run/src/cmd.rs, supervise can hang with zero children, may report the wrong child outcome, and Sequence::wait drops worker errors, which can mask failing build steps or return misleading success — add an empty-input early return, preserve true earliest exit/failure semantics, and propagate thread results back to callers.
  • In tools/cargo-run/src/frontend.rs and tools/cargo-run/src/watch.rs, build_wasm currently returns Ok(()) even when steps fail and file watching skips non-.rs inputs like manifests, so failed or stale wasm artifacts can look healthy — propagate Sequence::wait errors and include manifest/dependency input changes in rebuild triggers.
  • In .github/workflows/build.yml, downloaded toolchain binaries are executed without integrity checks, creating a CI supply-chain exposure if artifacts are tampered with — verify checksums/signatures (or equivalent trusted provenance) before use.
Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="tools/cargo-run/src/requirements.rs">

<violation number="1" location="tools/cargo-run/src/requirements.rs:211">
P2: `[Y/n]` prompt handling is incorrect: pressing Enter does not take the default yes path. This causes skipped auto-install even when the prompt advertises yes as default.</violation>
</file>

<file name="tools/cargo-run/src/cmd.rs">

<violation number="1" location="tools/cargo-run/src/cmd.rs:114">
P1: `supervise` hangs forever when called with no children. Add an early return before the wait loop for the empty case.</violation>

<violation number="2" location="tools/cargo-run/src/cmd.rs:115">
P2: `supervise` does not reliably select the earliest-exiting child; it selects the first finished handle in vector order at poll time. This can incorrectly return success while another child already failed.</violation>

<violation number="3" location="tools/cargo-run/src/cmd.rs:218">
P1: `Sequence::wait` discards the worker thread's result. If any step in the sequence fails (e.g., `cargo build` or `wasm-bindgen`), the error is printed to stderr but never propagated to the caller. The worker thread should return `Result<(), Error>` and `wait()` should return that result so callers can detect failures.</violation>
</file>

<file name="tools/cargo-run/src/watch.rs">

<violation number="1" location="tools/cargo-run/src/watch.rs:11">
P2: Watcher ignores non-`.rs` Rust build inputs, so manifest changes do not trigger rebuilds. This can leave wasm output stale after dependency/feature changes.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread tools/cargo-run/src/requirements.rs
Comment thread tools/cargo-run/src/frontend.rs
Comment thread .github/workflows/build.yml
Comment thread tools/cargo-run/src/cmd.rs Outdated
}

let mut first: Option<(String, std::process::ExitStatus)> = None;
while first.is_none() {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: supervise hangs forever when called with no children. Add an early return before the wait loop for the empty case.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At tools/cargo-run/src/cmd.rs, line 114:

<comment>`supervise` hangs forever when called with no children. Add an early return before the wait loop for the empty case.</comment>

<file context>
@@ -0,0 +1,256 @@
+	}
+
+	let mut first: Option<(String, std::process::ExitStatus)> = None;
+	while first.is_none() {
+		for (label, handle) in handles.iter() {
+			if let Ok(Some(output)) = handle.try_wait() {
</file context>

}
}

pub fn wait(&mut self) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: Sequence::wait discards the worker thread's result. If any step in the sequence fails (e.g., cargo build or wasm-bindgen), the error is printed to stderr but never propagated to the caller. The worker thread should return Result<(), Error> and wait() should return that result so callers can detect failures.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At tools/cargo-run/src/cmd.rs, line 218:

<comment>`Sequence::wait` discards the worker thread's result. If any step in the sequence fails (e.g., `cargo build` or `wasm-bindgen`), the error is printed to stderr but never propagated to the caller. The worker thread should return `Result<(), Error>` and `wait()` should return that result so callers can detect failures.</comment>

<file context>
@@ -0,0 +1,256 @@
+		}
+	}
+
+	pub fn wait(&mut self) {
+		if let Some(w) = self.worker.take() {
+			let _ = w.join();
</file context>

use std::time::Duration;

const EXCLUDED_DIRECTORIES: &[&str] = &["target", ".git", "frontend/node_modules", "frontend/dist", "frontend/wrapper/pkg"];
const INCLUDED_EXTENSIONS: &[&str] = &["rs"];

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Watcher ignores non-.rs Rust build inputs, so manifest changes do not trigger rebuilds. This can leave wasm output stale after dependency/feature changes.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At tools/cargo-run/src/watch.rs, line 11:

<comment>Watcher ignores non-`.rs` Rust build inputs, so manifest changes do not trigger rebuilds. This can leave wasm output stale after dependency/feature changes.</comment>

<file context>
@@ -0,0 +1,76 @@
+use std::time::Duration;
+
+const EXCLUDED_DIRECTORIES: &[&str] = &["target", ".git", "frontend/node_modules", "frontend/dist", "frontend/wrapper/pkg"];
+const INCLUDED_EXTENSIONS: &[&str] = &["rs"];
+
+const DEBOUNCE: Duration = Duration::from_millis(500);
</file context>

std::io::stdin().read_line(&mut input).map_err(|e| Error::Io(e, "Failed to read from stdin".into()))?;
let input = input.trim();

if input.eq_ignore_ascii_case("y") || input.eq_ignore_ascii_case("yes") {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: [Y/n] prompt handling is incorrect: pressing Enter does not take the default yes path. This causes skipped auto-install even when the prompt advertises yes as default.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At tools/cargo-run/src/requirements.rs, line 211:

<comment>`[Y/n]` prompt handling is incorrect: pressing Enter does not take the default yes path. This causes skipped auto-install even when the prompt advertises yes as default.</comment>

<file context>
@@ -158,43 +180,149 @@ pub fn check(task: &Task) -> Result<(), Error> {
+		std::io::stdin().read_line(&mut input).map_err(|e| Error::Io(e, "Failed to read from stdin".into()))?;
+		let input = input.trim();
+
+		if input.eq_ignore_ascii_case("y") || input.eq_ignore_ascii_case("yes") {
+			let mut successfully_installed = Vec::new();
+
</file context>

Comment thread tools/cargo-run/src/requirements.rs
Comment thread tools/cargo-run/src/cmd.rs Outdated

let mut first: Option<(String, std::process::ExitStatus)> = None;
while first.is_none() {
for (label, handle) in handles.iter() {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: supervise does not reliably select the earliest-exiting child; it selects the first finished handle in vector order at poll time. This can incorrectly return success while another child already failed.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At tools/cargo-run/src/cmd.rs, line 115:

<comment>`supervise` does not reliably select the earliest-exiting child; it selects the first finished handle in vector order at poll time. This can incorrectly return success while another child already failed.</comment>

<file context>
@@ -0,0 +1,256 @@
+
+	let mut first: Option<(String, std::process::ExitStatus)> = None;
+	while first.is_none() {
+		for (label, handle) in handles.iter() {
+			if let Ok(Some(output)) = handle.try_wait() {
+				first = Some((label.clone(), output.status));
</file context>

@github-actions

github-actions Bot commented Jun 19, 2026

Copy link
Copy Markdown
Performance Benchmark Results

🔧 Graph Compilation

compile_demo_art_gungraun::compile_group::compile_to_proto with_setup_0:(load_from_name(isometric-fountain))
Instructions: 32,996,457 (master) → 29,780,657 (HEAD) : $$\color{lime}-9.75\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     4|          4          -3.90%
D1mr                     464,163|    391,000         -15.76%
D1mw                     136,858|    135,990          -0.63%
DLmr                      40,752|     31,590         -22.48%
DLmw                      62,097|     50,451         -18.75%
Dr                     8,064,755|  7,336,698          -9.03%
Dw                     5,607,376|  5,137,948          -8.37%
EstimatedCycles       52,349,150| 46,996,043         -10.23%
I1MissRate                     0|          0          -0.92%
I1mr                      41,227|     36,865         -10.58%
ILmr                         870|        803          -7.70%
Ir                    32,996,457| 29,780,657          -9.75%
L1HitRate                     99|         99          +0.04%
L1hits                46,026,340| 41,691,448          -9.42%
LLHitRate                      1|          1          -1.35%
LLMissRate                     0|          0         -11.78%
LLdMissRate                    1|          1         -12.57%
LLhits                   538,529|    481,011         -10.68%
LLiMissRate                    0|          0          +2.27%
RamHitRate                     0|          0         -11.78%
RamHits                  103,719|     82,844         -20.13%
TotalRW               46,668,588| 42,255,303          -9.46%

compile_demo_art_gungraun::compile_group::compile_to_proto with_setup_1:(load_from_name(painted-dreams))
Instructions: 16,262,721 (master) → 14,757,601 (HEAD) : $$\color{lime}-9.26\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     4|          4          -5.44%
D1mr                     224,975|    186,006         -17.32%
D1mw                      68,538|     68,141          -0.58%
DLmr                         757|        756          -0.13%
DLmw                      19,493|     16,870         -13.46%
Dr                     3,973,862|  3,629,962          -8.65%
Dw                     2,760,433|  2,536,543          -8.11%
EstimatedCycles       24,870,664| 22,554,262          -9.31%
I1MissRate                     0|          0          +1.01%
I1mr                      17,774|     16,292          -8.34%
ILmr                         700|        654          -6.57%
Ir                    16,262,721| 14,757,601          -9.26%
L1HitRate                     99|         99          +0.06%
L1hits                22,685,729| 20,653,667          -8.96%
LLHitRate                      1|          1          -4.55%
LLMissRate                     0|          0          -4.10%
LLdMissRate                    0|          0          -4.94%
LLhits                   290,337|    252,159         -13.15%
LLiMissRate                    0|          0          +2.96%
RamHitRate                     0|          0          -4.10%
RamHits                   20,950|     18,280         -12.74%
TotalRW               22,997,016| 20,924,106          -9.01%

compile_demo_art_gungraun::compile_group::compile_to_proto with_setup_2:(load_from_name(procedural-string-lights))
Instructions: 3,348,000 (master) → 3,207,413 (HEAD) : $$\color{lime}-4.20\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     4|          4          +0.05%
D1mr                      41,029|     38,828          -5.36%
D1mw                      13,363|     13,327          -0.27%
DLmr                          14|         13          -7.14%
DLmw                       2,731|      2,787          +2.05%
Dr                       819,263|    783,095          -4.41%
Dw                       568,518|    546,891          -3.80%
EstimatedCycles        5,073,637|  4,865,377          -4.10%
I1MissRate                     0|          0          -3.62%
I1mr                       4,302|      3,972          -7.67%
ILmr                         691|        649          -6.08%
Ir                     3,348,000|  3,207,413          -4.20%
L1HitRate                     99|         99          +0.00%
L1hits                 4,677,087|  4,481,272          -4.19%
LLHitRate                      1|          1          -0.50%
LLMissRate                     0|          0          +4.77%
LLdMissRate                    0|          0          +6.44%
LLhits                    55,258|     52,678          -4.67%
LLiMissRate                    0|          0          -1.96%
RamHitRate                     0|          0          +4.77%
RamHits                    3,436|      3,449          +0.38%
TotalRW                4,735,781|  4,537,399          -4.19%

compile_demo_art_gungraun::compile_group::compile_to_proto with_setup_3:(load_from_name(parametric-dunescape))
Instructions: 12,173,508 (master) → 11,637,579 (HEAD) : $$\color{lime}-4.40\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     4|          4          +2.53%
D1mr                     157,990|    154,018          -2.51%
D1mw                      55,237|     55,118          -0.22%
DLmr                          33|         35          +6.06%
DLmw                      13,995|     13,254          -5.29%
Dr                     2,969,175|  2,832,202          -4.61%
Dw                     2,079,842|  1,997,844          -3.94%
EstimatedCycles       18,566,517| 17,766,371          -4.31%
I1MissRate                     0|          0          -7.58%
I1mr                      11,441|     10,108         -11.65%
ILmr                         816|        770          -5.64%
Ir                    12,173,508| 11,637,579          -4.40%
L1HitRate                     99|         99          -0.03%
L1hits                16,997,857| 16,248,381          -4.41%
LLHitRate                      1|          1          +2.27%
LLMissRate                     0|          0          -0.95%
LLdMissRate                    0|          0          -0.97%
LLhits                   209,824|    205,185          -2.21%
LLiMissRate                    0|          0          -1.29%
RamHitRate                     0|          0          -0.95%
RamHits                   14,844|     14,059          -5.29%
TotalRW               17,222,525| 16,467,625          -4.38%

compile_demo_art_gungraun::compile_group::compile_to_proto with_setup_4:(load_from_name(red-dress))
Instructions: 35,336,013 (master) → 31,984,565 (HEAD) : $$\color{lime}-9.48\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     5|          4          -5.55%
D1mr                     514,723|    426,403         -17.16%
D1mw                     146,706|    144,867          -1.25%
DLmr                      45,434|     34,909         -23.17%
DLmw                      63,951|     66,916          +4.64%
Dr                     8,642,260|  7,879,171          -8.83%
Dw                     6,018,492|  5,527,758          -8.15%
EstimatedCycles       56,113,555| 50,905,678          -9.28%
I1MissRate                     0|          0          +1.47%
I1mr                      40,901|     37,566          -8.15%
ILmr                         864|        803          -7.06%
Ir                    35,336,013| 31,984,565          -9.48%
L1HitRate                     99|         99          +0.06%
L1hits                49,294,435| 44,782,658          -9.15%
LLHitRate                      1|          1          -5.83%
LLMissRate                     0|          0          +2.53%
LLdMissRate                    1|          1          +1.79%
LLhits                   592,081|    506,208         -14.50%
LLiMissRate                    0|          0          +2.68%
RamHitRate                     0|          0          +2.53%
RamHits                  110,249|    102,628          -6.91%
TotalRW               49,996,765| 45,391,494          -9.21%

compile_demo_art_gungraun::compile_group::compile_to_proto with_setup_5:(load_from_name(valley-of-spires))
Instructions: 25,700,682 (master) → 23,230,041 (HEAD) : $$\color{lime}-9.61\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     4|          4          -6.97%
D1mr                     355,087|    289,711         -18.41%
D1mw                     102,493|     98,908          -3.50%
DLmr                      19,048|     16,483         -13.47%
DLmw                      45,290|     38,275         -15.49%
Dr                     6,311,867|  5,745,717          -8.97%
Dw                     4,373,001|  4,009,036          -8.32%
EstimatedCycles       40,295,046| 36,319,506          -9.87%
I1MissRate                     0|          0          +1.69%
I1mr                      31,244|     28,719          -8.08%
ILmr                         802|        754          -5.99%
Ir                    25,700,682| 23,230,041          -9.61%
L1HitRate                     99|         99          +0.08%
L1hits                35,896,726| 32,567,456          -9.27%
LLHitRate                      1|          1          -5.80%
LLMissRate                     0|          0          -5.99%
LLdMissRate                    1|          1          -6.77%
LLhits                   423,684|    361,826         -14.60%
LLiMissRate                    0|          0          +4.01%
RamHitRate                     0|          0          -5.99%
RamHits                   65,140|     55,512         -14.78%
TotalRW               36,385,550| 32,984,794          -9.35%

🔄 Executor Update

update_executor_gungraun::update_group::update_executor with_setup_0:(setup_update_executor(isometric-fountain))
Instructions: 63,383,802 (master) → 62,283,510 (HEAD) : $$\color{lime}-1.74\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     3|          3          -0.80%
D1mr                     702,577|    683,068          -2.78%
D1mw                     157,120|    156,358          -0.48%
DLmr                      18,008|     18,308          +1.67%
DLmw                      36,428|     36,938          +1.40%
Dr                    16,377,695| 16,119,872          -1.57%
Dw                    11,140,790| 10,967,235          -1.56%
EstimatedCycles       96,148,639| 94,459,601          -1.76%
I1MissRate                     0|          0         -62.57%
I1mr                      40,081|     14,740         -63.22%
ILmr                         472|        498          +5.51%
Ir                    63,383,802| 62,283,510          -1.74%
L1HitRate                     99|         99          +0.03%
L1hits                90,002,509| 88,516,451          -1.65%
LLHitRate                      1|          1          -3.88%
LLMissRate                     0|          0          +3.26%
LLdMissRate                    0|          0          +3.10%
LLhits                   844,870|    798,422          -5.50%
LLiMissRate                    0|          0          +7.37%
RamHitRate                     0|          0          +3.26%
RamHits                   54,908|     55,744          +1.52%
TotalRW               90,902,287| 89,370,617          -1.68%

update_executor_gungraun::update_group::update_executor with_setup_1:(setup_update_executor(painted-dreams))
Instructions: 32,228,898 (master) → 31,810,866 (HEAD) : $$\color{lime}-1.30\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     3|          3          +0.23%
D1mr                     339,788|    336,783          -0.88%
D1mw                      76,779|     75,534          -1.62%
DLmr                         549|        541          -1.46%
DLmw                       7,094|      5,439         -23.33%
Dr                     8,318,027|  8,214,644          -1.24%
Dw                     5,668,959|  5,597,399          -1.26%
EstimatedCycles       48,209,290| 47,488,589          -1.49%
I1MissRate                     0|          0         -64.97%
I1mr                      23,202|      8,023         -65.42%
ILmr                         168|        164          -2.38%
Ir                    32,228,898| 31,810,866          -1.30%
L1HitRate                     99|         99          +0.03%
L1hits                45,776,115| 45,202,569          -1.25%
LLHitRate                      1|          1          -2.87%
LLMissRate                     0|          0         -20.32%
LLdMissRate                    0|          0         -20.77%
LLhits                   431,958|    414,196          -4.11%
LLiMissRate                    0|          0          -1.10%
RamHitRate                     0|          0         -20.32%
RamHits                    7,811|      6,144         -21.34%
TotalRW               46,215,884| 45,622,909          -1.28%

update_executor_gungraun::update_group::update_executor with_setup_2:(setup_update_executor(procedural-string-lights)...
Instructions: 7,779,295 (master) → 7,616,914 (HEAD) : $$\color{lime}-2.09\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     3|          3          -2.17%
D1mr                      79,089|     75,626          -4.38%
D1mw                      20,072|     19,396          -3.37%
DLmr                           2|          4        +100.00%
DLmw                         591|        746         +26.23%
Dr                     1,984,276|  1,943,575          -2.05%
Dw                     1,352,901|  1,325,278          -2.04%
EstimatedCycles       11,565,442| 11,308,067          -2.23%
I1MissRate                     0|          0         -48.57%
I1mr                       7,374|      3,713         -49.65%
ILmr                         168|        162          -3.57%
Ir                     7,779,295|  7,616,914          -2.09%
L1HitRate                     99|         99          +0.05%
L1hits                11,009,937| 10,787,032          -2.02%
LLHitRate                      1|          1          -5.56%
LLMissRate                     0|          0         +22.38%
LLdMissRate                    0|          0         +29.12%
LLhits                   105,774|     97,823          -7.52%
LLiMissRate                    0|          0          -1.52%
RamHitRate                     0|          0         +22.38%
RamHits                      761|        912         +19.84%
TotalRW               11,116,472| 10,885,767          -2.08%

update_executor_gungraun::update_group::update_executor with_setup_3:(setup_update_executor(parametric-dunescape))
Instructions: 30,043,545 (master) → 28,977,202 (HEAD) : $$\color{lime}-3.55\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     3|          3          +0.05%
D1mr                     306,136|    294,276          -3.87%
D1mw                      72,031|     70,044          -2.76%
DLmr                          91|        102         +12.09%
DLmw                       6,738|      6,745          +0.10%
Dr                     7,728,583|  7,448,480          -3.62%
Dw                     5,355,339|  5,149,868          -3.84%
EstimatedCycles       44,926,975| 43,269,454          -3.69%
I1MissRate                     0|          0         -64.53%
I1mr                      19,195|      6,566         -65.79%
ILmr                         173|        165          -4.62%
Ir                    30,043,545| 28,977,202          -3.55%
L1HitRate                     99|         99          +0.03%
L1hits                42,730,105| 41,204,664          -3.57%
LLHitRate                      1|          1          -3.31%
LLMissRate                     0|          0          +3.88%
LLdMissRate                    0|          0          +4.13%
LLhits                   390,360|    363,874          -6.79%
LLiMissRate                    0|          0          -1.11%
RamHitRate                     0|          0          +3.88%
RamHits                    7,002|      7,012          +0.14%
TotalRW               43,127,467| 41,575,550          -3.60%

update_executor_gungraun::update_group::update_executor with_setup_4:(setup_update_executor(red-dress))
Instructions: 75,635,134 (master) → 73,364,070 (HEAD) : $$\color{lime}-3.00\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     3|          3          +0.72%
D1mr                     812,997|    793,890          -2.35%
D1mw                     182,491|    179,088          -1.86%
DLmr                      44,480|     42,270          -4.97%
DLmw                      61,130|     61,873          +1.22%
Dr                    19,537,030| 18,961,950          -2.94%
Dw                    13,286,842| 12,889,661          -2.99%
EstimatedCycles      115,808,938|112,309,113          -3.02%
I1MissRate                     0|          0         -66.76%
I1mr                      44,505|     14,350         -67.76%
ILmr                         722|        661          -8.45%
Ir                    75,635,134| 73,364,070          -3.00%
L1HitRate                     99|         99          +0.02%
L1hits               107,419,013|104,228,353          -2.97%
LLHitRate                      1|          1          -2.56%
LLMissRate                     0|          0          +1.60%
LLdMissRate                    0|          0          +1.62%
LLhits                   933,661|    882,524          -5.48%
LLiMissRate                    0|          0          -5.61%
RamHitRate                     0|          0          +1.60%
RamHits                  106,332|    104,804          -1.44%
TotalRW              108,459,006|105,215,681          -2.99%

update_executor_gungraun::update_group::update_executor with_setup_5:(setup_update_executor(valley-of-spires))
Instructions: 49,613,381 (master) → 48,987,773 (HEAD) : $$\color{lime}-1.26\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     3|          3          -1.53%
D1mr                     537,265|    529,896          -1.37%
D1mw                     123,388|    124,617          +1.00%
DLmr                       2,925|      2,934          +0.31%
DLmw                      21,132|     25,713         +21.68%
Dr                    12,655,166| 12,692,078          +0.29%
Dw                     8,593,283|  8,686,736          +1.09%
EstimatedCycles       74,363,566| 73,896,377          -0.63%
I1MissRate                     0|          0         -64.35%
I1mr                      32,816|     11,552         -64.80%
ILmr                         205|        204          -0.49%
Ir                    49,613,381| 48,987,773          -1.26%
L1HitRate                     99|         99          +0.03%
L1hits                70,168,361| 69,700,522          -0.67%
LLHitRate                      1|          1          -4.11%
LLMissRate                     0|          0         +19.75%
LLdMissRate                    0|          0         +18.35%
LLhits                   669,207|    637,214          -4.78%
LLiMissRate                    0|          0          +0.78%
RamHitRate                     0|          0         +19.75%
RamHits                   24,262|     28,851         +18.91%
TotalRW               70,861,830| 70,366,587          -0.70%

🚀 Render: Cold Execution

run_once_gungraun::run_once_group::run_once with_setup_0:(setup_run_once(isometric-fountain))
Instructions: 33,713,526 (master) → 33,423,306 (HEAD) : $$\color{lime}-0.86\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     3|          3          +0.06%
D1mr                     404,221|    397,097          -1.76%
D1mw                      79,777|     77,640          -2.68%
DLmr                      27,823|     27,112          -2.56%
DLmw                      14,495|     13,567          -6.40%
Dr                     8,860,164|  8,702,798          -1.78%
Dw                     5,989,718|  5,854,489          -2.26%
EstimatedCycles       52,973,686| 52,280,647          -1.31%
I1MissRate                     1|          1          -1.43%
I1mr                     242,079|    236,564          -2.28%
ILmr                       7,881|      7,816          -0.82%
Ir                    33,713,526| 33,423,306          -0.86%
L1HitRate                     99|         99          +0.01%
L1hits                47,837,331| 47,269,292          -1.19%
LLHitRate                      1|          1          -0.74%
LLMissRate                     0|          0          -2.22%
LLdMissRate                    0|          0          -1.94%
LLhits                   675,878|    662,806          -1.93%
LLiMissRate                    0|          0          +0.04%
RamHitRate                     0|          0          -2.22%
RamHits                   50,199|     48,495          -3.39%
TotalRW               48,563,408| 47,980,593          -1.20%

run_once_gungraun::run_once_group::run_once with_setup_1:(setup_run_once(painted-dreams))
Instructions: 304,825,490 (master) → 303,894,312 (HEAD) : $$\color{lime}-0.31\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     1|          1          +0.41%
D1mr                     961,732|    961,164          -0.06%
D1mw                     485,349|    480,324          -1.04%
DLmr                      28,951|     31,969         +10.42%
DLmw                      62,930|     63,151          +0.35%
Dr                    61,603,931| 61,179,058          -0.69%
Dw                    37,433,467| 37,069,085          -0.97%
EstimatedCycles      420,225,108|418,326,129          -0.45%
I1MissRate                     1|          1          -3.05%
I1mr                   1,878,729|  1,815,903          -3.34%
ILmr                      10,085|     10,017          -0.67%
Ir                   304,825,490|303,894,312          -0.31%
L1HitRate                     99|         99          +0.01%
L1hits               400,537,078|398,885,064          -0.41%
LLHitRate                      1|          1          -1.80%
LLMissRate                     0|          0          +3.55%
LLdMissRate                    0|          0          +4.36%
LLhits                 3,223,844|  3,152,254          -2.22%
LLiMissRate                    0|          0          -0.37%
RamHitRate                     0|          0          +3.55%
RamHits                  101,966|    105,137          +3.11%
TotalRW              403,862,888|402,142,455          -0.43%

run_once_gungraun::run_once_group::run_once with_setup_2:(setup_run_once(procedural-string-lights))
Instructions: 17,984,571 (master) → 17,930,923 (HEAD) : $$\color{lime}-0.30\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     2|          2          +0.50%
D1mr                     102,545|    102,388          -0.15%
D1mw                      36,604|     36,660          +0.15%
DLmr                         901|        888          -1.44%
DLmw                       1,461|      1,231         -15.74%
Dr                     4,523,699|  4,499,018          -0.55%
Dw                     3,190,753|  3,171,624          -0.60%
EstimatedCycles       26,892,547| 26,777,059          -0.43%
I1MissRate                     1|          1          -1.68%
I1mr                      94,627|     92,763          -1.97%
ILmr                       6,252|      6,156          -1.54%
Ir                    17,984,571| 17,930,923          -0.30%
L1HitRate                     99|         99          +0.00%
L1hits                25,465,247| 25,369,754          -0.37%
LLHitRate                      1|          1          -0.34%
LLMissRate                     0|          0          -3.57%
LLdMissRate                    0|          0          -9.78%
LLhits                   225,162|    223,536          -0.72%
LLiMissRate                    0|          0          -1.24%
RamHitRate                     0|          0          -3.57%
RamHits                    8,614|      8,275          -3.94%
TotalRW               25,699,023| 25,601,565          -0.38%

run_once_gungraun::run_once_group::run_once with_setup_3:(setup_run_once(parametric-dunescape))
Instructions: 26,077,604 (master) → 25,647,847 (HEAD) : $$\color{lime}-1.65\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     2|          2          -0.90%
D1mr                     184,521|    177,943          -3.56%
D1mw                      73,690|     71,058          -3.57%
DLmr                       3,965|      3,956          -0.23%
DLmw                       7,790|      6,903         -11.39%
Dr                     6,371,474|  6,209,202          -2.55%
Dw                     4,322,788|  4,197,220          -2.90%
EstimatedCycles       38,626,722| 37,828,119          -2.07%
I1MissRate                     0|          0          -3.24%
I1mr                      80,778|     76,869          -4.84%
ILmr                       4,875|      4,820          -1.13%
Ir                    26,077,604| 25,647,847          -1.65%
L1HitRate                     99|         99          +0.02%
L1hits                36,432,877| 35,728,399          -1.93%
LLHitRate                      1|          1          -1.86%
LLMissRate                     0|          0          -3.84%
LLdMissRate                    0|          0          -5.07%
LLhits                   322,359|    310,191          -3.77%
LLiMissRate                    0|          0          +0.53%
RamHitRate                     0|          0          -3.84%
RamHits                   16,630|     15,679          -5.72%
TotalRW               36,771,866| 36,054,269          -1.95%

run_once_gungraun::run_once_group::run_once with_setup_4:(setup_run_once(red-dress))
Instructions: 1,885,382,511 (master) → 1,885,181,472 (HEAD) : $$\color{lime}-0.01\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     1|          1          +0.84%
D1mr                   2,678,235|  2,697,882          +0.73%
D1mw                   1,233,092|  1,250,877          +1.44%
DLmr                     568,587|    571,536          +0.52%
DLmw                     678,684|    710,182          +4.64%
Dr                   451,290,275|451,685,444          +0.09%
Dw                   296,103,724|296,609,630          +0.17%
EstimatedCycles      2,694,448,784|2,696,400,504          +0.07%
I1MissRate                     0|          0          +0.77%
I1mr                   2,098,374|  2,114,318          +0.76%
ILmr                       7,178|      7,337          +2.22%
Ir                   1,885,382,511|1,885,181,472          -0.01%
L1HitRate                    100|        100          -0.00%
L1hits               2,626,766,809|2,627,413,469          +0.02%
LLHitRate                      0|          0          +0.37%
LLMissRate                     0|          0          +2.73%
LLdMissRate                    0|          0          +2.64%
LLhits                 4,755,252|  4,774,022          +0.39%
LLiMissRate                    0|          0          +2.23%
RamHitRate                     0|          0          +2.73%
RamHits                1,254,449|  1,289,055          +2.76%
TotalRW              2,632,776,510|2,633,476,546          +0.03%

run_once_gungraun::run_once_group::run_once with_setup_5:(setup_run_once(valley-of-spires))
Instructions: 31,411,754 (master) → 31,154,647 (HEAD) : $$\color{lime}-0.82\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     3|          3          -0.92%
D1mr                     331,385|    324,337          -2.13%
D1mw                      73,165|     71,458          -2.33%
DLmr                       9,376|      8,912          -4.95%
DLmw                      14,317|     15,373          +7.38%
Dr                     8,086,684|  7,990,352          -1.19%
Dw                     5,447,427|  5,373,628          -1.35%
EstimatedCycles       48,236,613| 47,773,879          -0.96%
I1MissRate                     1|          1          -1.26%
I1mr                     199,482|    195,358          -2.07%
ILmr                       5,461|      5,403          -1.06%
Ir                    31,411,754| 31,154,647          -0.82%
L1HitRate                     99|         99          +0.02%
L1hits                44,341,833| 43,927,474          -0.93%
LLHitRate                      1|          1          -1.40%
LLMissRate                     0|          0          +2.81%
LLdMissRate                    0|          0          +3.80%
LLhits                   574,878|    561,465          -2.33%
LLiMissRate                    0|          0          -0.25%
RamHitRate                     0|          0          +2.81%
RamHits                   29,154|     29,688          +1.83%
TotalRW               44,945,865| 44,518,627          -0.95%

⚡ Render: Cached Execution

run_cached_gungraun::run_cached_group::run_cached with_setup_0:(setup_run_cached(isometric-fountain))
Instructions: 10,224,040 (master) → 10,077,676 (HEAD) : $$\color{lime}-1.43\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     6|          6          +0.42%
D1mr                     264,231|    261,678          -0.97%
D1mw                       3,712|      3,747          +0.94%
DLmr                      20,015|     21,424          +7.04%
DLmw                         288|        287          -0.35%
Dr                     2,941,233|  2,900,655          -1.38%
Dw                     1,629,969|  1,608,516          -1.32%
EstimatedCycles       16,484,450| 16,308,025          -1.07%
I1MissRate                     0|          0          +2.02%
I1mr                         534|        537          +0.56%
ILmr                         207|        200          -3.38%
Ir                    10,224,040| 10,077,676          -1.43%
L1HitRate                     98|         98          -0.01%
L1hits                14,526,765| 14,320,885          -1.42%
LLHitRate                      2|          2          -0.17%
LLMissRate                     0|          0          +8.36%
LLdMissRate                    0|          0          +8.41%
LLhits                   247,967|    244,051          -1.58%
LLiMissRate                    0|          0          -1.98%
RamHitRate                     0|          0          +8.36%
RamHits                   20,510|     21,911          +6.83%
TotalRW               14,795,242| 14,586,847          -1.41%

run_cached_gungraun::run_cached_group::run_cached with_setup_1:(setup_run_cached(painted-dreams))
Instructions: 10,717,692 (master) → 10,648,631 (HEAD) : $$\color{lime}-0.64\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     5|          5          +0.13%
D1mr                     215,025|    213,954          -0.50%
D1mw                       4,399|      4,382          -0.39%
DLmr                      25,334|     26,670          +5.27%
DLmw                         160|        186         +16.25%
Dr                     3,139,380|  3,119,726          -0.63%
Dw                     1,733,609|  1,722,753          -0.63%
EstimatedCycles       17,244,083| 17,181,134          -0.37%
I1MissRate                     0|          0          +1.74%
I1mr                         554|        560          +1.08%
ILmr                         289|        292          +1.04%
Ir                    10,717,692| 10,648,631          -0.64%
L1HitRate                     99|         99          -0.00%
L1hits                15,370,703| 15,272,214          -0.64%
LLHitRate                      1|          1          -0.63%
LLMissRate                     0|          0          +5.97%
LLdMissRate                    1|          1          +6.01%
LLhits                   194,195|    191,748          -1.26%
LLiMissRate                    0|          0          +1.69%
RamHitRate                     0|          0          +5.97%
RamHits                   25,783|     27,148          +5.29%
TotalRW               15,590,681| 15,491,110          -0.64%

run_cached_gungraun::run_cached_group::run_cached with_setup_2:(setup_run_cached(parametric-dunescape))
Instructions: 3,850,889 (master) → 3,700,050 (HEAD) : $$\color{lime}-3.92\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     6|          6          -0.43%
D1mr                     100,130|     96,100          -4.02%
D1mw                       2,790|      2,720          -2.51%
DLmr                          28|         32         +14.29%
DLmw                           1|          1          +0.00%
Dr                     1,162,536|  1,119,906          -3.67%
Dw                       676,919|    653,959          -3.39%
EstimatedCycles        6,110,648|  5,877,939          -3.81%
I1MissRate                     0|          0          +4.08%
I1mr                         491|        491          +0.00%
ILmr                         193|        193          +0.00%
Ir                     3,850,889|  3,700,050          -3.92%
L1HitRate                     98|         98          +0.00%
L1hits                 5,586,933|  5,374,604          -3.80%
LLHitRate                      2|          2          -0.18%
LLMissRate                     0|          0          +5.83%
LLdMissRate                    0|          0         +18.00%
LLhits                   103,189|     99,085          -3.98%
LLiMissRate                    0|          0          +4.08%
RamHitRate                     0|          0          +5.83%
RamHits                      222|        226          +1.80%
TotalRW                5,690,344|  5,473,915          -3.80%

run_cached_gungraun::run_cached_group::run_cached with_setup_3:(setup_run_cached(red-dress))
Instructions: 45,072,629 (master) → 44,764,008 (HEAD) : $$\color{lime}-0.68\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     4|          4          -0.53%
D1mr                     791,639|    781,922          -1.23%
D1mw                      34,053|     33,910          -0.42%
DLmr                     316,586|    314,525          -0.65%
DLmw                       3,018|      3,134          +3.84%
Dr                    13,039,414| 12,952,728          -0.66%
Dw                     6,933,298|  6,885,707          -0.69%
EstimatedCycles       77,951,353| 77,410,983          -0.69%
I1MissRate                     0|          0          +3.05%
I1mr                         511|        523          +2.35%
ILmr                         436|        445          +2.06%
Ir                    45,072,629| 44,764,008          -0.68%
L1HitRate                     99|         99          +0.01%
L1hits                64,219,138| 63,786,088          -0.67%
LLHitRate                      1|          1          -0.89%
LLMissRate                     0|          0          +0.08%
LLdMissRate                    2|          2          +0.06%
LLhits                   506,163|    498,251          -1.56%
LLiMissRate                    0|          0          +2.77%
RamHitRate                     0|          0          +0.08%
RamHits                  320,040|    318,104          -0.60%
TotalRW               65,045,341| 64,602,443          -0.68%

run_cached_gungraun::run_cached_group::run_cached with_setup_4:(setup_run_cached(valley-of-spires))
Instructions: 8,351,015 (master) → 8,221,984 (HEAD) : $$\color{lime}-1.55\%$$

Detailed metrics
Baselines:                master|       HEAD
D1MissRate                     6|          6          -0.18%
D1mr                     210,165|    206,698          -1.65%
D1mw                       3,476|      3,338          -3.97%
DLmr                       3,818|      3,810          -0.21%
DLmw                          68|         69          +1.47%
Dr                     2,412,582|  2,376,069          -1.51%
Dw                     1,343,235|  1,323,215          -1.49%
EstimatedCycles       13,085,650| 12,885,492          -1.53%
I1MissRate                     0|          0          +3.39%
I1mr                         501|        510          +1.80%
ILmr                         189|        189          +0.00%
Ir                     8,351,015|  8,221,984          -1.55%
L1HitRate                     98|         98          +0.00%
L1hits                11,892,690| 11,710,722          -1.53%
LLHitRate                      2|          2          -0.18%
LLMissRate                     0|          0          +1.38%
LLdMissRate                    0|          0          +1.35%
LLhits                   210,067|    206,478          -1.71%
LLiMissRate                    0|          0          +1.57%
RamHitRate                     0|          0          +1.38%
RamHits                    4,075|      4,068          -0.17%
TotalRW               12,106,832| 11,921,268          -1.53%

Keavon and others added 15 commits June 19, 2026 22:01
…duction

The devDependencies hold the build tooling (Vite, etc.), which npm omits in
environments that set NODE_ENV=production, like CI does for the Vite build.
The install timestamp check now also covers package-installer.js itself so
changes to the install process trigger a reinstall.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 5 files (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="tools/cargo-run/src/cmd.rs">

<violation number="1" location="tools/cargo-run/src/cmd.rs:130">
P2: `SetConsoleCtrlHandler` return value is ignored, so handler registration failures are silent. Check the result and surface a warning/error so Windows Ctrl+C cleanup is not silently bypassed.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

INTERRUPTED.store(false, Ordering::SeqCst);
static REGISTER: Once = Once::new();
REGISTER.call_once(|| unsafe {
SetConsoleCtrlHandler(Some(handler), 1);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: SetConsoleCtrlHandler return value is ignored, so handler registration failures are silent. Check the result and surface a warning/error so Windows Ctrl+C cleanup is not silently bypassed.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At tools/cargo-run/src/cmd.rs, line 130:

<comment>`SetConsoleCtrlHandler` return value is ignored, so handler registration failures are silent. Check the result and surface a warning/error so Windows Ctrl+C cleanup is not silently bypassed.</comment>

<file context>
@@ -60,44 +84,95 @@ impl ExpressionExt for Expression {
+		INTERRUPTED.store(false, Ordering::SeqCst);
+		static REGISTER: Once = Once::new();
+		REGISTER.call_once(|| unsafe {
+			SetConsoleCtrlHandler(Some(handler), 1);
+		});
+	}
</file context>
Suggested change
SetConsoleCtrlHandler(Some(handler), 1);
if SetConsoleCtrlHandler(Some(handler), 1) == 0 {
eprintln!("warning: failed to register console Ctrl+C handler; supervised children may not shut down cleanly");
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Replace wasm-pack, which is being deprecated

2 participants