diff --git a/.github/workflows/deploy-pages.yml b/.github/workflows/deploy-pages.yml index 2a16eb9..465a9b8 100644 --- a/.github/workflows/deploy-pages.yml +++ b/.github/workflows/deploy-pages.yml @@ -118,8 +118,10 @@ jobs: # Verified with the exact published command this lane runs, fetched # through the proxy: # - # $ go run github.com/go-embedded-ruby/docs/tools/conformancefigure@v0.7.0 --root . - # 6 total claim(s) and 1 version claim(s) checked against the gate's 23672 at Ruby 4.0.9 (derived from RUBY_VERSION) + # $ go run github.com/go-embedded-ruby/docs/tools/conformancefigure@v0.8.0 --root . + # 6 total claim(s), 1 version claim(s) and 3 stubbed-helper mention(s) checked + # against the gate's 23672 at Ruby 4.0.9 (derived from RUBY_VERSION); + # the shim stubs output_to_fd, ruby_cmd, ruby_exe # # Two numbers in that line moved for reasons worth keeping apart. "1 # version claim … derived from RUBY_VERSION" is what the earlier comment @@ -133,8 +135,16 @@ jobs: # checked" and passed while that line held a stale figure. v0.7.0 reads # it. Keep this pin moving forward -- a gate pinned to a version that # cannot see a line is indistinguishable from a page with nothing wrong. - - name: The stated conformance total, and the version it was counted at, match rbgo's gate - run: go run github.com/go-embedded-ruby/docs/tools/conformancefigure@v0.7.0 --root . + # + # v0.8.0 adds a THIRD fact read out of the interpreter repository: which + # mspec helpers the shim stubs, derived from every `def … raise SpecSkip` + # in spec_helper.rb. This page said "our shim stubs the matcher they need" + # and named none of them, while conformance.md named two that are + # implemented and missed `ruby_cmd` entirely. The list is now stated here + # and checked in both directions -- a helper called stubbed that is not, + # and a stubbed helper this page names nowhere. + - name: The stated conformance total, the version it was counted at, and the stubbed helpers match rbgo's gate + run: go run github.com/go-embedded-ruby/docs/tools/conformancefigure@v0.8.0 --root . - name: Build landing page run: hugo --minify --baseURL "${{ steps.pages.outputs.base_url }}/" diff --git a/layouts/_default/list.html b/layouts/_default/list.html index f9e7cc5..bbea461 100644 --- a/layouts/_default/list.html +++ b/layouts/_default/list.html @@ -71,8 +71,8 @@

Runtime conformance — ruby/spec

22,488 examples pass in ruby/spec's language/ + core/ suites, measured 2026-09-26 on main (3e8e3cc). Three independent runs — two through the ratchet at different timeouts, one through a separate sweep — reported the same total.

diff --git a/layouts/index.html b/layouts/index.html index e35a4f8..ba0c1e3 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -59,7 +59,7 @@

Everything a Ruby runtime gives you — as a Go library.

🧩

Embeddable

A real object model — classes, mixins, method_missing, metaprogramming, Fiber. The Go API is deliberately small today: ruby.Run(src, out) runs a program on a fresh VM and writes its output to one writer. Calling a Ruby method from Go is not exposed yet.

📦

One static binary

CGO=0 by default. Tested on amd64, arm64, riscv64, loong64, ppc64le, s390x, 386 and arm; compiles for every GOOS/GOARCH Go supports — 47 targets, the BSDs, AIX, Solaris, mips and Plan 9 included (Plan 9 is vetted, not run).

⚡

AOT for integer kernels

Ahead-of-time compilation of integer-bound methods to unboxed Go. Measured on this project’s own micro-benchmarks (darwin/arm64, whole-process wall time): 8.7× MRI+YJIT on the tight-loop case, 2.0× on recursive fib(35). Only methods the compiler can lower benefit.

-
✅

Conformance, measured

23,672 ruby/spec language/ + core/ examples pass, gated in CI file by file: no spec file may pass fewer examples than its recorded row, so a regression is named rather than absorbed in a total. Only language/ and core/ are swept: library/, optional/ and security/ are not run, so this is not a percentage of Ruby. Those guards now resolve at Ruby 4.0.9 — the version this runtime reports, and the latest MRI release — so the examples behind a ruby_version_is "4.0" guard are counted, and those behind ruby_version_is ""..."4.0" are no longer asked for. The move was measured before it was made, both engines built from one commit minus the version string: +144 passing, and 27 examples that went red — a figure no pass total shows, found by comparing the two runs' failure descriptions. Front-end: ~100% of valid Ruby parsed across Rails + Puppet (2026-06).

+
✅

Conformance, measured

23,672 ruby/spec language/ + core/ examples pass, gated in CI file by file: no spec file may pass fewer examples than its recorded row, so a regression is named rather than absorbed in a total. Only language/ and core/ are swept: library/, optional/, command_line/ and security/ are not run, so this is not a percentage of Ruby. Those guards now resolve at Ruby 4.0.9 — the version this runtime reports, and the latest MRI release — so the examples behind a ruby_version_is "4.0" guard are counted, and those behind ruby_version_is ""..."4.0" are no longer asked for. The move was measured before it was made, both engines built from one commit minus the version string: +144 passing, and 27 examples that went red — a figure no pass total shows, found by comparing the two runs' failure descriptions. Front-end: ~100% of valid Ruby parsed across Rails + Puppet (2026-06).

🔒

Closed-world builds

rbgo build --closed bakes the program to bytecode and drops the front-end for a smaller binary.

🌿

A real ecosystem

Built from the go-ruby-* family — each a 100%-coverage, 6-arch stdlib module, bound natively.