Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
30 changes: 28 additions & 2 deletions .github/workflows/deploy-pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,8 +98,34 @@ jobs:
# because neither the tool's `.md`/`.html` filter nor this root could
# reach it. v0.5.0 reads .toml; widening the root is what puts the third
# copy in the denominator. It checks 5 claims now, not 4.
- name: The stated conformance total matches rbgo's gate
run: go run github.com/go-embedded-ruby/docs/tools/[email protected] --root .
#
# ⛔ v0.6.0 ALSO CHECKS THE VERSION THE TOTAL WAS COUNTED AT, which is why
# this page now states it. `23,511 examples pass` is a count over a
# POPULATION, and the population is selected by the Ruby version the
# conformance shim resolves `ruby_version_is` guards at: at 3.4.1 every
# example behind a `ruby_version_is "4.0"` guard is removed from the suite
# before anything runs -- 61 block guards and 5 inline sites at that
# boundary -- so the figure describes 3.4-shaped behaviour while this page
# also says the project targets 4.0 semantics and names a 4.0.5 oracle.
# All true, and together they read as a 4.0 result.
#
# The version is read from BOTH files in the interpreter repository that
# spell it (`rubyVersion` and the shim's `CUR_VERSION`) and a disagreement
# between them is a refusal, not a verdict on this page. The DIFFERENTIAL
# ORACLE named here is a different claim, free to be newer, and is
# deliberately not matched.
#
# Verified with the exact published command this lane runs, fetched
# through the proxy:
#
# $ go run github.com/go-embedded-ruby/docs/tools/[email protected] --root .
# 5 total claim(s) and 2 version claim(s) checked against the gate's 23511 at Ruby 3.4.1 (two copies, agreeing)
#
# "two copies, agreeing" is the interpreter repository's state today;
# go-embedded-ruby/ruby#845 collapses it to one and the same line will
# then read "derived from RUBY_VERSION", with nothing here to change.
- 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/[email protected] --root .

- name: Build landing page
run: hugo --minify --baseURL "${{ steps.pages.outputs.base_url }}/"
Expand Down
2 changes: 1 addition & 1 deletion layouts/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ <h2>Everything a Ruby runtime gives you — as a Go library.</h2>
<div class="card"><div class="ico">🧩</div><h3>Embeddable</h3><p>A real object model — classes, mixins, <code>method_missing</code>, metaprogramming, Fiber. The Go API is deliberately small today: <code>ruby.Run(src, out)</code> runs a program on a fresh VM and writes its output to one writer. Calling a Ruby method from Go is not exposed yet.</p></div>
<div class="card"><div class="ico">📦</div><h3>One static binary</h3><p>CGO=0 by default. Tested on amd64, arm64, riscv64, loong64, ppc64le, s390x, 386 and arm; compiles for every GOOS/GOARCH Go supports except plan9 — 44 targets, the BSDs, AIX, Solaris and mips included.</p></div>
<div class="card"><div class="ico">⚡</div><h3>AOT for integer kernels</h3><p>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): <b>8.7×</b> MRI+YJIT on the tight-loop case, <b>2.0×</b> on recursive <code>fib(35)</code>. Only methods the compiler can lower benefit.</p></div>
<div class="card"><div class="ico">✅</div><h3>Conformance, measured</h3><p><b>23,511</b> ruby/spec <code>language/</code> + <code>core/</code> examples pass, gated in CI <b>file by file</b>: no spec file may pass fewer examples than its recorded row, so a regression is named rather than absorbed in a total. <b>Only <code>language/</code> and <code>core/</code> are swept:</b> <code>library/</code>, <code>optional/</code> and <code>security/</code> are not run, so this is not a percentage of Ruby. Front-end: ~100% of valid Ruby parsed across Rails + Puppet (2026-06).</p></div>
<div class="card"><div class="ico">✅</div><h3>Conformance, measured</h3><p><b>23,511</b> ruby/spec <code>language/</code> + <code>core/</code> examples pass, gated in CI <b>file by file</b>: no spec file may pass fewer examples than its recorded row, so a regression is named rather than absorbed in a total. <b>Only <code>language/</code> and <code>core/</code> are swept:</b> <code>library/</code>, <code>optional/</code> and <code>security/</code> are not run, so this is not a percentage of Ruby. Those guards resolve at Ruby <b>3.4.1</b> — the version this runtime reports — so every example behind a <code>ruby_version_is "4.0"</code> 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. Front-end: ~100% of valid Ruby parsed across Rails + Puppet (2026-06).</p></div>
<div class="card"><div class="ico">🔒</div><h3>Closed-world builds</h3><p><code>rbgo build --closed</code> bakes the program to bytecode and drops the front-end for a smaller binary.</p></div>
<div class="card"><div class="ico">🌿</div><h3>A real ecosystem</h3><p>Built from the <b>go-ruby-*</b> family — each a 100%-coverage, 6-arch stdlib module, bound natively.</p></div>
</div>
Expand Down
Loading