Reproduce, on a machine without cuda-oxide
$ launchbound stage reduce-flip --cc 8.6 --out /tmp/st
prune (cc 8.6) ...
3 admitted, 8 refused; compiling admitted specializations ...
error: compile failed: cargo oxide inspect reduce_flip failed (exit Some(101)):
error: no such command: `oxide`
help: view all installed commands with `cargo --list`
help: find a package to install `oxide` with `cargo search cargo-oxide`
The suggestion goes nowhere
That help is cargo's, relayed verbatim. cargo-oxide is not on crates.io —
checked. cuda-oxide is a pinned git checkout (50d07314, per
.github/workflows/prune.yml), and its cargo subcommand comes from there, not
from a registry.
So the one actionable-looking line in the message sends the reader to a package
that does not exist, and launchbound — which knows the pin, has it in two
workflows and names the sibling-checkout layout in its own CI — says nothing.
Nor do the docs: cargo oxide appears only in docs/ARCHITECTURE.md (in a
table describing an internal crate) and in docs/research-baseline.md (inside
recorded shell transcripts). Nothing tells a reader how to get it.
This is the first wall on stage and on tune --backend cuda, which is the
tool's main path.
Two smaller things in the same message
-
exit Some(101) — output.status.code() is an Option<i32> printed with
{:?}. compile.rs:130.
-
stderr.lines().rev().take(8) — compile.rs:127 — the last eight lines.
This is the pattern #19
removed from launchbound-prune for exactly the reason it is wrong here:
a failing compiler prints its errors and then a summary, so the tail is
error: could not compile … due to N previous errors and the N errors are
above the cut. It happened to be harmless in the transcript above only
because that failure was four lines long. launchbound-prune::diagnosis()
is the fix already written and next door.
(Reasoned from the code, not reproduced — reproducing it needs a cuda-oxide
checkout, which is the thing this issue is about.)
Fix
Recognise the missing subcommand and answer it:
error: `cargo oxide` is not installed — the gate can compile nothing without it
cuda-oxide is pinned to 50d07314 and is not published to crates.io. Check it
out beside this repository, as CI does, and install its cargo subcommand:
git clone https://github.com/NVlabs/cuda-oxide ../cuda-oxide
git -C ../cuda-oxide checkout 50d07314
cargo install --path ../cuda-oxide/crates/cargo-oxide
`launchbound prune` needs none of this — it is the whole pipeline a laptop
can run.
That last line is worth saying: a reader blocked here can still do the part
that finds the bugs.
Pin the message to the pin, so a bump moves it — prune.yml and action.yml
already carry the SHA and drift is the failure mode this repository keeps
hitting.
Done when
A missing cargo oxide is diagnosed by name with a route that works, no
message contains Some(…), and the compile failure reports the compiler's
errors rather than its summary.
Reproduce, on a machine without cuda-oxide
The suggestion goes nowhere
That help is cargo's, relayed verbatim.
cargo-oxideis not on crates.io —checked. cuda-oxide is a pinned git checkout (
50d07314, per.github/workflows/prune.yml), and its cargo subcommand comes from there, notfrom a registry.
So the one actionable-looking line in the message sends the reader to a package
that does not exist, and launchbound — which knows the pin, has it in two
workflows and names the sibling-checkout layout in its own CI — says nothing.
Nor do the docs:
cargo oxideappears only indocs/ARCHITECTURE.md(in atable describing an internal crate) and in
docs/research-baseline.md(insiderecorded shell transcripts). Nothing tells a reader how to get it.
This is the first wall on
stageand ontune --backend cuda, which is thetool's main path.
Two smaller things in the same message
exit Some(101)—output.status.code()is anOption<i32>printed with{:?}.compile.rs:130.stderr.lines().rev().take(8)—compile.rs:127— the last eight lines.This is the pattern #19
removed from
launchbound-prunefor exactly the reason it is wrong here:a failing compiler prints its errors and then a summary, so the tail is
error: could not compile … due to N previous errorsand the N errors areabove the cut. It happened to be harmless in the transcript above only
because that failure was four lines long.
launchbound-prune::diagnosis()is the fix already written and next door.
(Reasoned from the code, not reproduced — reproducing it needs a cuda-oxide
checkout, which is the thing this issue is about.)
Fix
Recognise the missing subcommand and answer it:
That last line is worth saying: a reader blocked here can still do the part
that finds the bugs.
Pin the message to the pin, so a bump moves it —
prune.ymlandaction.ymlalready carry the SHA and drift is the failure mode this repository keeps
hitting.
Done when
A missing
cargo oxideis diagnosed by name with a route that works, nomessage contains
Some(…), and the compile failure reports the compiler'serrors rather than its summary.