Skip to content

Ruby 4.0.9: the figure, and the version it is counted at - #36

Merged
tannevaled merged 3 commits into
mainfrom
ruby-40-figures
Nov 4, 2026
Merged

tannevaled merged 3 commits into
mainfrom
ruby-40-figures

Conversation

@tannevaled

Copy link
Copy Markdown
Contributor

rbgo reports RUBY_VERSION 4.0.9 since ruby#882, and BASELINE was re-recorded at that version on the pinned runner that enforces it: 23,511 → 23,673.

Six claims on this page move, and the lane's own checker named every one of them rather than my reading the page:

hugo.toml:74                    claims 23673, the gate records 23511
layouts/_default/list.html:76      "
layouts/index.html:27              "
layouts/index.html:62              "
layouts/index.html:71              "
layouts/index.html:62: says the gate measures at 4.0.9, it measures at 3.4.1

The version claim is the one that mattered

That last line is v0.6.0's version check, and it caught a sentence containing no number:

Those guards resolve at Ruby 3.4.1 — the version this runtime reports — so every example behind a ruby_version_is "4.0" guard is removed from the suite before anything is counted: 61 block guards and 5 inline sites sit at that boundary, while the latest MRI release is 4.0.9.

Every word of that is now false. A total-only check would have passed it. It now says the opposite and states what the move cost: +144 passing and 27 examples that went red — a figure no pass total shows, found by comparing the two runs' failure descriptions.

Verified, not assumed

$ go run github.com/go-embedded-ruby/docs/tools/conformancefigure@v0.6.0 --root .
5 total claim(s) and 1 version claim(s) checked against the gate's 23673 at Ruby 4.0.9 (derived from RUBY_VERSION)

Run against main before ruby#882 merged, the same command printed all six disagreements and exited 1 — so this page was held back deliberately rather than landed early and left briefly wrong.

layouts/_default/list.html:73 is a dated claim and exempt from the check; it is updated anyway, because exempt from the gate is not the same as allowed to be wrong.

🤖 Generated with Claude Code

tannevaled and others added 3 commits November 3, 2026 15:14
rbgo reports RUBY_VERSION 4.0.9 (ruby#882) and BASELINE was re-recorded at that
version on the pinned runner that enforces it: 23,511 -> 23,673.

Six claims on this page move, and the lane's own checker named every one of
them rather than my reading the page:

    hugo.toml:74                 claims 23673, the gate records 23511
    layouts/_default/list.html:76   "
    layouts/index.html:27           "
    layouts/index.html:62           "
    layouts/index.html:71           "
    layouts/index.html:62: says the gate measures at 4.0.9, it measures at 3.4.1

That last line is the v0.6.0 version claim, and it is the one that mattered
most here. The page said:

    Those guards resolve at Ruby 3.4.1 -- the version this runtime reports --
    so every example behind a `ruby_version_is "4.0"` guard is removed from the
    suite before anything is counted: 61 block guards and 5 inline sites sit at
    that boundary, while the latest MRI release is 4.0.9.

Every word of that is now false, and none of it is a number, so only the
version check could catch it. It now says the opposite, and states what the
move cost: +144 passing and 27 examples that WENT RED -- a figure no pass total
shows, found by comparing the two runs' failure descriptions.

`layouts/_default/list.html:73` is a DATED claim and therefore exempt from the
check; it is updated anyway, because exempt from the gate is not the same as
allowed to be wrong.

⛔ This cannot land before ruby#882. The checker reads the interpreter
repository's main, so until the bump merges it refuses this page -- verified,
not assumed: run against main today it prints the six disagreements above and
exits 1.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
core/random/bytes_spec.rb draws 8 or 9 passing examples from run to run. The
2026-11-03 re-record banked the 9, the next ordinary CI run went red, and
ruby#885 pinned that row to its floor. The gate's total is 23,672.

All six claims on this site move: hugo.toml's blurb, the hero trust line, the
conformance card, the stat tile, and the two baseline bullets in list.html.
The blurb and the first bullet also say what happened, because "23,673 →
23,672" with no explanation reads as a regression and it is the opposite: the
number went down so that the gate stops passing on a coin toss.

conformancefigure could not see one of those six. "The sum of those rows is
<b>23,673</b>" puts two words between "sum" and "is", and its vocabulary
spelled out only "the sum is", "its sum is", "whose sum is" — so the line was
never a candidate and the run reported "5 checked" on a page holding six. That
is fixed in go-embedded-ruby/docs; this PR will bump the pinned version in
deploy-pages.yml once the fix is released, so the gate here can refuse the line
it just missed.

Verified locally with the fixed tool: 6 claims checked, 0 disagreements,
against the gate's 23672 at Ruby 4.0.9.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
v0.6.0's vocabulary spelled out "the sum is", "its sum is" and "whose sum is",
so this page's "The sum of those rows is <b>23,673</b>" was never a candidate.
The lane printed "5 total claim(s) checked" and passed, on a page holding six,
one of them stale. go-embedded-ruby/docs#44 widened the pattern; v0.7.0 carries
it.

Run with the exact published command this lane runs, fetched through the proxy
against this tree:

    $ go run github.com/go-embedded-ruby/docs/tools/conformancefigure@v0.7.0 --root .
    go: downloading github.com/go-embedded-ruby/docs v0.7.0
    6 total claim(s) and 1 version claim(s) checked against the gate's 23672 at Ruby 4.0.9 (derived from RUBY_VERSION)

Six, not five, and no disagreement.

The other number that moved was already predicted in the comment this replaces:
"1 version claim … derived from RUBY_VERSION" is go-embedded-ruby/ruby#845
collapsing the two copies of the version into one, and nothing on the page had
to change for it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@tannevaled
tannevaled merged commit f861426 into main Nov 4, 2026
3 checks passed
@tannevaled
tannevaled deleted the ruby-40-figures branch November 4, 2026 14:13
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