Skip to content

Release binaries for 68000, 68020 and 68040, geomean, command-line order - #2

Merged
codewiz merged 3 commits into
mainfrom
ci/release
Oct 2, 2026
Merged

codewiz merged 3 commits into
mainfrom
ci/release

Conversation

@codewiz

@codewiz codewiz commented Oct 2, 2026

Copy link
Copy Markdown
Owner

Two commits:

  • Named benchmarks run in the order given on the command line, and a run of more than one ends with the geometric mean of the fastest iterations. The banner names the BenchWork version (git describe) next to the compiler.
  • make release builds benchwork-000, benchwork-020 and benchwork-040 (-m68040 -mhard-float). The Build workflow builds them on every push with m68k-amigaos-gcc 16.2-rc13, pinned in binaries.yml; the Release workflow attaches the bare executables to a v* tag's release, with the tag message as the notes.

Checked under volamos: the three binaries run, order and geomean come out as expected, checksums unchanged.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 88cb948037

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/release.yml Outdated
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAG: ${{ github.ref_name }}
run: |
git tag -l --format='%(contents:body)' "$TAG" > notes.md

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve annotated tag subjects in release notes

Under the usual git tag -a v1.0 -m "summary" usage that this workflow asks for, the annotation has no body beyond its subject, so %(contents:body) writes an empty notes.md. gh release create --notes-file then reads that empty file and publishes a release without the tag message; use %(contents) or --notes-from-tag instead.

Useful? React with 👍 / 👎.

Comment thread src/main.c Outdated
Comment on lines +240 to +241
if (nselected < NBENCHES)
selected[nselected++] = BENCHES[j];

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Reject benchmark lists that exceed the fixed buffer

When a user supplies more than 15 valid name arguments—for example, by repeating a benchmark to make a sequence—the guard drops every name after the 15th but returns success. The output and geomean then omit requested runs, silently reporting the wrong workload set; report an error or retain all requested names instead.

Useful? React with 👍 / 👎.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot review overview

🟡 Changes recommended

Benchmark arguments can be silently dropped, and one-line tag messages produce empty release notes.

Review effort: Balanced
Findings: 2 Medium severity

Open (2)
What changed in this PR

Adds ordered benchmark execution, geometric-mean reporting, version banners, and automated multi-CPU releases.

Changes:

  • Preserves command-line benchmark order and reports geomean timing.
  • Builds 68000, 68020, and 68040 release binaries.
  • Adds build and tagged-release workflows.
File Description
src/​main.c Adds ordering, geomean, and version output.
README.md Documents output and release binaries.
Makefile Adds version metadata and release targets.
.github/​workflows/​build.yml Builds binaries on branches and PRs.
.github/​workflows/​binaries.yml Builds and uploads CPU-specific binaries.
.github/​workflows/​release.yml Publishes binaries for version tags.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/release.yml Outdated
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAG: ${{ github.ref_name }}
run: |
git tag -l --format='%(contents:body)' "$TAG" > notes.md
Comment thread src/main.c Outdated
Comment on lines +240 to +241
if (nselected < NBENCHES)
selected[nselected++] = BENCHES[j];
@codewiz
codewiz force-pushed the ci/release branch 3 times, most recently from 42591db to a59fa4b Compare October 2, 2026 05:36
codewiz and others added 3 commits October 2, 2026 13:42
Named benchmarks now run in the order given rather than in table order,
and a run of more than one ends with the geometric mean of the fastest
iterations. The banner names the BenchWork version next to the compiler.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
"make release" builds benchwork-000, -020 and -040; the Build workflow
builds them on every push with a pinned m68k-amigaos-gcc release, and
the Release workflow attaches the bare executables to a tag's release.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
"CC ?=" never applied because make predefines CC; only a CC passed
explicitly worked, which the README did not say.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@codewiz
codewiz merged commit 80a30ad into main Oct 2, 2026
2 checks passed
@codewiz
codewiz deleted the ci/release branch October 2, 2026 15:20
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.

2 participants