Repository navigation
conformance: what the unswept 42% of ruby/spec actually holds - #49
Merged
Merged
Conversation
This page has always said `library/`, `optional/`, `command_line/` and
`security/` are "not run at all" and that the figure is therefore not a
percentage of Ruby. True, and it left the reader unable to tell whether
the unmeasured half was a rounding error or the bulk of the work.
Measured once, against MRI 4.0.7 through the same shim: 970 files differ,
MRI scores 3 676 examples across them and rbgo 1 335, and 152 files
produce no result on rbgo.
Three readings matter more than the total:
- 78 of the unswept files CANNOT be measured under this shim at all.
All 32 command_line/ files are built on ruby_exe and the 46
optional/capi/ files need a compiled C extension, so MRI itself
scores 0 in them. Harness work, not interpreter work.
- The largest single debt is a HANG. Net::FTP is 442 examples behind
and 39 of its 56 files are killed by the clock on rbgo, none on MRI;
with Net::HTTP, Socket and Timeout that is 75 spec files (ruby#916).
Until ruby#915 the harness called every one of them "did not load",
which is the opposite finding.
- The rest is concentrated in eight modules, and the outright absences
(Coverage 53, StringScanner's byte methods 27, CGI escapes 19,
WeakRef 9) are small beside them.
Marked as one dated run and NOT a gate, in a callout: nothing re-measures
it, and the only machine-checked number on the page stays the gated
language/ + core/ baseline.
⛔ conformancefigure refused the first draft, and it was right: a row
reading "examples MRI passes in them / rbgo passes | 3 676 / 1 335" has
exactly the shape of a conformance-total claim, and the tool compared
3 676 against the gate's 23 672. Its own rule is to make the sentence
unambiguous rather than widen the pattern, so the row is now "MRI's score
across those files". The claim count went 6 -> 5, which is the one false
candidate leaving.
Co-Authored-By: Claude Opus 5 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This page has always said
library/,optional/,command_line/andsecurity/are "not run at all" and that the figure is therefore not a percentage of Ruby. True — and it left the reader unable to tell whether the unmeasured half was a rounding error or the bulk of the work.Measured once, against MRI 4.0.7 through the same shim:
Three readings matter more than the total, and each changes what somebody would do next:
command_line/files are built onruby_exe, and the 46optional/capi/files need a compiled C extension — MRI itself scores 0 in them. That share asks for harness work, not interpreter work.Net::FTPis 442 examples behind and 39 of its 56 spec files are killed by the clock on rbgo, none on MRI; withNet::HTTP,SocketandTimeoutthat is 75 spec files (ruby#916). Until ruby#915 the harness called every one of them "did not load" — the opposite finding.Coverage53,StringScanner's byte methods 27,CGIescapes 19,WeakRef9) are small beside them.It sits behind a warning callout saying it is one dated run and not a gate — nothing re-measures it, and the only machine-checked number on the page stays the gated
language/+core/baseline.⛔ The gate refused the first draft, and it was right
The row originally read
which has exactly the shape of a conformance-total claim, so
conformancefigurecompared 3 676 against the gate's 23 672 and failed the build. Its own rule is to make the sentence unambiguous rather than widen the pattern, so the row is now "MRI's score across those files". The checked-claim count went 6 → 5 — the one false candidate leaving.Refs go-embedded-ruby/ruby#916 — it stays open; this page only stops describing
those 75 files as unimplemented.
🤖 Generated with Claude Code