Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
97d26cb
WIP: Widen the rust gate by construction (§1): invert the hand-picked…
briansrls Jun 21, 2026
e9e9547
WIP: Widen the rust gate by construction (§1): invert the hand-picked…
briansrls Jun 21, 2026
1507701
WIP: Widen the rust gate by construction (§1): invert the hand-picked…
briansrls Jun 21, 2026
26beeee
WIP: Widen the rust gate by construction (§1): invert the hand-picked…
briansrls Jun 21, 2026
9bd726e
WIP: Widen the rust gate by construction (§1): invert the hand-picked…
briansrls Jun 21, 2026
2bca3d5
Merge remote-tracking branch 'origin/main' into session/fierce-hawk-540
briansrls Jun 21, 2026
c64fb5c
WIP: Widen the rust gate by construction (§1): invert the hand-picked…
briansrls Jun 21, 2026
2eb3261
Widen rust gate: declare merge-landed test (lens caught it) + flag on…
briansrls Jun 21, 2026
facc61e
Mark v4_slice ignore as draining-worklist (delete-or-restore), not pe…
briansrls Jun 21, 2026
2808536
Fix completeness-lens false-positive on multi-line #[ignore] reasons
briansrls Jun 21, 2026
9ac2032
Flag the 16 execution-confirmed pre-existing reds the widening surfac…
briansrls Jun 21, 2026
21fb4cf
Merge remote-tracking branch 'origin/main' into session/fierce-hawk-540
briansrls Jun 21, 2026
8eb16f6
WIP: Widen the rust gate by construction (§1): invert the hand-picked…
briansrls Jun 21, 2026
c4efd2b
Merge origin/main (ac9a7e77ab) — resolve pipeline.rs: accept main's d…
briansrls Jun 21, 2026
c4341ea
Merge remote-tracking branch 'origin/main' into session/fierce-hawk-540
briansrls Jun 21, 2026
0022d7e
WIP: Widen the rust gate by construction (§1): invert the hand-picked…
briansrls Jun 21, 2026
89d49d5
WIP: Widen the rust gate by construction (§1): invert the hand-picked…
briansrls Jun 21, 2026
c54aaf9
Cluster A construction-fix (v2_layer_roots single authority) + cluste…
briansrls Jun 21, 2026
e27a364
Merge remote-tracking branch 'origin/main' into session/fierce-hawk-540
briansrls Jun 21, 2026
4183b3f
WIP: Widen the rust gate by construction (§1): invert the hand-picked…
briansrls Jun 21, 2026
3df286f
Merge remote-tracking branch 'origin/main' into session/fierce-hawk-540
briansrls Jun 21, 2026
84c0e66
#5427: ignore 2 more pre-existing reds the widening surfaced (#5473 +…
briansrls Jun 21, 2026
d6a6281
WIP: Widen the rust gate by construction (§1): invert the hand-picked…
briansrls Jun 21, 2026
2e5eb43
WIP: Widen the rust gate by construction (§1): invert the hand-picked…
briansrls Jun 21, 2026
5557383
#5427: cite PR #5504 (RED#1 heal-PR) in the source-root admission ign…
briansrls Jun 21, 2026
00d27b1
Merge remote-tracking branch 'origin/main' into session/fierce-hawk-540
briansrls Jun 22, 2026
ef55fd0
Merge remote-tracking branch 'origin/main' into session/fierce-hawk-540
briansrls Jun 22, 2026
b981f56
Merge remote-tracking branch 'origin/main' into session/fierce-hawk-540
briansrls Jun 22, 2026
98e88ea
WIP: Widen the rust gate by construction (§1): invert the hand-picked…
briansrls Jun 22, 2026
3833fa4
Merge remote-tracking branch 'origin/main' into session/fierce-hawk-540
briansrls Jun 22, 2026
565a116
WIP: Widen the rust gate by construction (§1): invert the hand-picked…
briansrls Jun 22, 2026
fb7bab5
#5427: route rust gate through the cargo.Build model (§3), drop hand-…
briansrls Jun 22, 2026
ac0b732
WIP: Widen the rust gate by construction (§1): invert the hand-picked…
briansrls Jun 22, 2026
0a13d42
Resolve merge conflict markers in rust gate cargo-modeling (ac0b73221b)
briansrls Jun 22, 2026
d086048
WIP: Widen the rust gate by construction (§1): invert the hand-picked…
briansrls Jun 22, 2026
553a669
WIP: Widen the rust gate by construction (§1): invert the hand-picked…
briansrls Jun 22, 2026
a1cd7c6
WIP: Widen the rust gate by construction (§1): invert the hand-picked…
briansrls Jun 22, 2026
9f90625
WIP: Widen the rust gate by construction (§1): invert the hand-picked…
briansrls Jun 22, 2026
92f7373
WIP: Widen the rust gate by construction (§1): invert the hand-picked…
briansrls Jun 22, 2026
6fc8cec
Resolve merge conflict in cargo_build.dag; conform new .dag files to …
briansrls Jun 22, 2026
1a6c829
Fix stale source-audit literal: compile.dag gate predicate (run-all s…
briansrls Jun 22, 2026
3052ecd
WIP: Widen the rust gate by construction (§1): invert the hand-picked…
briansrls Jun 22, 2026
f05415d
Resolve .rs merge conflicts: keep #[ignore=reason] set, conform to .r…
briansrls Jun 22, 2026
641ffdb
Re-delete orphan profiling scaffold the merge resurrected (my own len…
briansrls Jun 22, 2026
edd7755
Flag contention-flaky wet/hermetic equivalence test (run-all surfaced)
briansrls Jun 22, 2026
08c5b48
cargo fmt: collapse blank lines left by .rs comment-strip
briansrls Jun 22, 2026
cd649fb
Merge remote-tracking branch 'origin/main' into session/fierce-hawk-540
briansrls Jun 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
99 changes: 99 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,3 +88,102 @@ jobs:
sccache --show-stats 2>/dev/null || true
git fetch --no-tags origin main 2>/dev/null || true
"$ROOT/target/release/claim_executor" --source-root dsl --source-root src/v2 --plan-entry src/v2/workflow/ci_floor_plan.dag --plan-function gunbc_ci_floor_batches --notice-title "v2 claim corpus"
rust_tests:
runs-on: [self-hosted, linux, arm64]
timeout-minutes: 360
steps:
- name: Isolate toolchain dirs
run: |
echo "CARGO_HOME=$RUNNER_TEMP/cargo" >> "$GITHUB_ENV"
echo "RUSTUP_HOME=$RUNNER_TEMP/rustup" >> "$GITHUB_ENV"
if sccache --show-stats >/dev/null 2>&1; then
echo "RUSTC_WRAPPER=sccache" >> "$GITHUB_ENV"
echo "CARGO_INCREMENTAL=0" >> "$GITHUB_ENV"
echo "CARGO_BUILD_JOBS=1" >> "$GITHUB_ENV"
else
echo "CARGO_BUILD_JOBS=2" >> "$GITHUB_ENV"
fi
- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Setup Rust
uses: actions-rust-lang/setup-rust-toolchain@v1.16.0
with:
components: rustfmt
cache: false
rustflags: ''
env:
HOME: ${{ runner.temp }}
- name: Pin rustup default (isolated RUSTUP_HOME has no default toolchain)
run: rustup default "$(rustup show active-toolchain | awk '{print $1; exit}')"
- name: Cache Cargo
uses: actions/cache@v5
with:
path: |
${{ runner.temp }}/cargo/registry/index/
${{ runner.temp }}/cargo/registry/cache/
${{ runner.temp }}/cargo/git/db/
target/
key: cargo-ci-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/Cargo.lock', 'rust-toolchain.toml') }}
restore-keys: |
cargo-ci-${{ runner.os }}-${{ runner.arch }}-
- name: Install cargo-nextest
run: |
echo "$CARGO_HOME/bin" >> "$GITHUB_PATH"
if ! "$CARGO_HOME/bin/cargo-nextest" nextest --version >/dev/null 2>&1; then
mkdir -p "$CARGO_HOME/bin"
case "$(uname -m)" in aarch64|arm64) A=linux-arm ;; *) A=linux ;; esac
curl -LsSf --retry 3 "https://get.nexte.st/0.9.138/$A" | tar zxf - -C "$CARGO_HOME/bin"
fi
- name: v1 rust gate (fmt + clippy + nextest)
run: |
ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
set -o pipefail
BUILD_LOG=$(mktemp)
if ! (cargo build -p v1-compiler --release --features text_lookup_work_counter --bins) 2>&1 | tee "$BUILD_LOG"; then
if grep -qiE 'Resource temporarily unavailable|failed to spawn|sccache: encountered fatal error' "$BUILD_LOG"; then
echo "::warning::cargo/sccache EAGAIN under fleet pressure; cold retry CARGO_BUILD_JOBS=1 (keep sccache)"
RETRY_LOG=$(mktemp)
if ! ( CARGO_BUILD_JOBS=1 cargo build -p v1-compiler --release --features text_lookup_work_counter --bins ) 2>&1 | tee "$RETRY_LOG"; then
if grep -qiE 'Resource temporarily unavailable|failed to spawn|sccache:' "$RETRY_LOG"; then
echo "::warning::cargo/sccache still failing; retry without RUSTC_WRAPPER"
env -u RUSTC_WRAPPER CARGO_BUILD_JOBS=1 cargo build -p v1-compiler --release --features text_lookup_work_counter --bins || exit 1
else
exit 1
fi
fi
rm -f "$RETRY_LOG"
else
exit 1
fi
fi
rm -f "$BUILD_LOG"
if '[' '!' '-x' "$ROOT"'/target/release/claim_executor' ']'; then 'echo' '::error::build verification: declared artifact '\''claim_executor'\'' absent or not executable after a '\''successful'\'' build (sccache/cache corruption — DESIGN §5 fail-open); failing closed: '"$ROOT"'/target/release/claim_executor' >&2; exit 1; fi
GUNBC_BUILD_FRESHNESS_NEWER_SRC=$('find' "$ROOT"'/src/v1/stage0' "$ROOT"'/src/v1/stage0_core' "$ROOT"'/src/v1/stage0_emit_core' '(' '-name' '*.rs' '-o' '-name' 'Cargo.toml' '-o' '-name' 'Cargo.lock' ')' '-newer' "$ROOT"'/target/release/claim_executor' '-print' '-quit')
if '[' '-n' "$GUNBC_BUILD_FRESHNESS_NEWER_SRC" ']'; then 'echo' '::error::build verification: declared artifact '\''claim_executor'\'' is older than a source file (stale — DESIGN §5 fail-open); failing closed: '"$ROOT"'/target/release/claim_executor' >&2; exit 1; fi
if '[' '!' '-x' "$ROOT"'/target/release/gunbc' ']'; then 'echo' '::error::build verification: declared artifact '\''gunbc'\'' absent or not executable after a '\''successful'\'' build (sccache/cache corruption — DESIGN §5 fail-open); failing closed: '"$ROOT"'/target/release/gunbc' >&2; exit 1; fi
GUNBC_BUILD_FRESHNESS_NEWER_SRC=$('find' "$ROOT"'/src/v1/stage0' "$ROOT"'/src/v1/stage0_core' "$ROOT"'/src/v1/stage0_emit_core' '(' '-name' '*.rs' '-o' '-name' 'Cargo.toml' '-o' '-name' 'Cargo.lock' ')' '-newer' "$ROOT"'/target/release/gunbc' '-print' '-quit')
if '[' '-n' "$GUNBC_BUILD_FRESHNESS_NEWER_SRC" ']'; then 'echo' '::error::build verification: declared artifact '\''gunbc'\'' is older than a source file (stale — DESIGN §5 fail-open); failing closed: '"$ROOT"'/target/release/gunbc' >&2; exit 1; fi
sccache --show-stats 2>/dev/null || true
git fetch --no-tags origin main 2>/dev/null || true
set -o pipefail
BUILD_LOG=$(mktemp)
if ! ("$ROOT/target/release/gunbc" run --source-root dsl --source-root src/v2 --entry dsl/tools/rust_gates_ci.dag --function main) 2>&1 | tee "$BUILD_LOG"; then
if grep -qiE 'Resource temporarily unavailable|failed to spawn|sccache: encountered fatal error' "$BUILD_LOG"; then
echo "::warning::cargo/sccache EAGAIN under fleet pressure; cold retry CARGO_BUILD_JOBS=1 (keep sccache)"
RETRY_LOG=$(mktemp)
if ! ( CARGO_BUILD_JOBS=1 "$ROOT/target/release/gunbc" run --source-root dsl --source-root src/v2 --entry dsl/tools/rust_gates_ci.dag --function main ) 2>&1 | tee "$RETRY_LOG"; then
if grep -qiE 'Resource temporarily unavailable|failed to spawn|sccache:' "$RETRY_LOG"; then
echo "::warning::cargo/sccache still failing; retry without RUSTC_WRAPPER"
env -u RUSTC_WRAPPER CARGO_BUILD_JOBS=1 "$ROOT/target/release/gunbc" run --source-root dsl --source-root src/v2 --entry dsl/tools/rust_gates_ci.dag --function main || exit 1
else
exit 1
fi
fi
rm -f "$RETRY_LOG"
else
exit 1
fi
fi
rm -f "$BUILD_LOG"
15 changes: 15 additions & 0 deletions dsl/extdeps/rust/cargo_build.dag
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,21 @@ service cargo.Build {
}
}

operation Nextest {
input { extra_args: List<String> = [] }
output {
success: Bool from "exit_success"
stdout: String from "stdout"
stderr: String from "stderr"
}
transport shell { argv: ["cargo", "nextest", "run", extra_args] }
exit {
0 => Unit
100 => String "Tests failed"
nonzero => String "Nextest run error"
}
}

operation Clippy {
input {
extra_args: List<String> = []
Expand Down
42 changes: 27 additions & 15 deletions dsl/gunbc/ci_spec.dag
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,7 @@ type CiSpec {
notice_title: String
}

data gunbc_ci_gates: List<Gate> = [
RustMonolithGate,
data gunbc_ci_floor_gates: List<Gate> = [
EmitHostGate,
LayeringImportsGate,
ResolvedImportsGate,
Expand All @@ -42,8 +41,14 @@ data gunbc_ci_gates: List<Gate> = [
SourceRootIngestGate
]

data gunbc_ci_rust_job_gates: List<Gate> = [
RustMonolithGate
]

data gunbc_ci_gates: List<Gate> = concat(gunbc_ci_floor_gates, gunbc_ci_rust_job_gates)

data gunbc_ci_spec: CiSpec = {
gates: gunbc_ci_gates,
gates: gunbc_ci_floor_gates,
diff_policy: {
base: "origin/main",
head: "HEAD",
Expand Down Expand Up @@ -157,18 +162,6 @@ fn ci_release_build_script() -> String {
)
}

fn ci_rust_gate_fmt_command() -> String {
"cargo fmt --all --check"
}

fn ci_rust_gate_clippy_command() -> String {
"cargo clippy --all-targets -- -D warnings"
}

fn ci_rust_gate_test_command() -> String {

"cargo test -p v1-compiler-tests -- interp_recorded_fixture wet_hermetic resolve_expr_types_retraversal"
}

fn claim_executor_bin_shell() -> String {
"\"$ROOT/target/release/claim_executor\""
Expand Down Expand Up @@ -217,3 +210,22 @@ fn gunbc_ci_run_script(spec: CiSpec) -> String {
fn gunbc_ci_workflow_run(spec: CiSpec) -> String {
gunbc_ci_run_script(spec: spec)
}

fn gunbc_ci_rust_gate_invoke() -> String {
ci_cargo_eagain_retry_script(
command: concat(
concat("\"$ROOT/target/release/gunbc\" run", witness_layer_source_flags(roots: witness_layer_roots)),
" --entry dsl/tools/rust_gates_ci.dag --function main"
)
)
}

fn gunbc_ci_rust_job_run() -> String {
concat(
concat(ci_release_build_script(), "\n"),
concat(
concat(git_fetch_script(policy: gunbc_ci_spec.diff_policy), "\n"),
gunbc_ci_rust_gate_invoke()
)
)
}
Loading