Skip to content

Float perf-callgrind native leg on clojure-rs master HEAD - #38

Merged
m-hu merged 1 commit into
masterfrom
float-clojure-rs-head
Nov 3, 2026
Merged

m-hu merged 1 commit into
masterfrom
float-clojure-rs-head

Conversation

@m-hu

@m-hu m-hu commented Nov 2, 2026

Copy link
Copy Markdown
Collaborator

Problem

The perf-callgrind native leg builds a pinned CLOJURE_RS_SHA, so the sweep keeps measuring a stale upstream until someone manually bumps the pin and lands a revision for it.

Solution

Float on clojure-rs master HEAD, resolved once per run:

  • New resolve-rs job: git ls-remote on upstream HEAD (validates 40-hex, fails loudly otherwise), publishes sha output, records it in the step summary. A manual dispatch may set clojure_rs_sha to pin for bisection/repro.
  • perf-callgrind gains needs: [test, resolve-rs] and checks out needs.resolve-rs.outputs.sha, so all 16 legs build the same commit even if upstream moves mid-sweep (~6h window). No added latency: resolve-rs (~10s) runs alongside the test shards.
  • Static CLOJURE_RS_SHA env removed; comments + README updated.

Branch: float-clojure-rs-head.

No regressions

  • JVM leg untouched; pilot untouched (JVM-only); required checks (test, both report-callgrind fan-ins) unchanged.
  • Per-measurement provenance already records the built runtime (runtime_version in the BMF), so floating revisions stay attributable on Bencher.
  • A bad upstream commit fails loudly: the sweep diff-gates every case.

AI-Tool: Muse Code 1.4.14-R7309.1 (Meta Muse Spark)

Test Plan

  • Workflow YAML only (+ README); no Go changes, so no go test/gates apply.
  • python3 yaml.safe_load parses; jobs/needs/outputs verified (perf-callgrind needs [test, resolve-rs], resolve-rs outputs sha); git diff --check clean.
  • CI on this PR exercises the new job end to end (resolve + full 16-leg sweep at HEAD) — watched to green before merge.

Resolve the clojure-rs revision once per run instead of building a
pinned SHA, so the sweep always measures current upstream. A single
resolve-rs job publishes the SHA to all 16 legs (consistent even if
master moves mid-sweep); manual dispatch may pin clojure_rs_sha to
bisect or repro. README updated to match.

AI-Tool: Muse Code 1.4.14-R7309.1 (Meta Muse Spark
@github-actions

github-actions Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

🐰 Bencher Report

Projectclojure-code-snippet
Branchfloat-clojure-rs-head
Commite7e0cad
ReportTestbedAdapterStatus
1ubuntu-latest-clojure-rsJSON✅ No Alerts
2ubuntu-latest-jvmJSON✅ No Alerts

⚠️ WARNING: Truncated view!

The full continuous benchmarking report exceeds the maximum length allowed on this platform.

@m-hu
m-hu merged commit 11de561 into master Nov 3, 2026
26 checks passed
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.

1 participant