Skip to content

Raise ruby/spec floor 20625 -> 21740 after waves 25 and 26 - #627

Merged
tannevaled merged 1 commit into
mainfrom
wave26/floor
Sep 23, 2026
Merged

tannevaled merged 1 commit into
mainfrom
wave26/floor

Conversation

@tannevaled

Copy link
Copy Markdown
Contributor

Seven units since the last bump.

PR area gain
#617 core/process — spawn, exec, rlimits, priorities, process groups, kill, the wait family pass 20 → 165
#618 core/kernel + core/string — require_relative with an absolute path, the require/load argument contract, LoadError#path, byteindex/byterindex, split, chop/chars/each_char kernel 233 → 184, string 179 → 153 failing
#620 language — compound-assignment evaluation order, the flip-flop operator, magic-comment encodings, loop break values pass 1308 → 1443
#622 object — Float#to_s laid out by MRI's rule rather than Go's %g +11
#624 the mspec shim — a nested describe can see the helpers of the one around it +28
#625 deps — parser v0.2.0 language +333
#626 compiler — for-loop targets, block-local variables, what defined? declares language +382

Measurement

scripts/conformance/rubyspec/run.sh against the pinned corpus at 87b1631, 16-way, TIMEOUT=25, three consecutive runs:

passing examples: 21749   (files loaded: 2190, failed to load: 16)
passing examples: 21750
passing examples: 21750
frozen floor:     20625

The floor is set nine below the lowest run, the same margin rule as last time: enough to absorb the run-to-run jitter, not enough to hide the loss of a whole spec file — which is what the ratchet exists to catch. #615, an intermittent frame-pop crash, is still open and can cost a file when it fires.

Two of these are not VM conformance

The number should not be read as if they were.

#624 fixed our own mspec shim. core/string/valid_encoding/utf_8_spec.rb scored 0/28 under MRI 4.0.5 as well, run through the same shim — those 28 examples were harness noise being counted as VM failure.

#625 is a dependency bump. The VM did not change; thirteen language spec files became parseable for the first time and brought 333 already-passing examples into view. They were never failing — they were invisible, contributing to neither column.

Both are real gains in what the measurement can see, not in what the VM can do. The other five are conformance work.

🤖 Generated with Claude Code

Seven units since the last bump:

  #617  core/process: spawn, exec, the rlimits, priorities, process groups,
        kill, the wait family                     (pass 20 -> 165)
  #618  core/kernel + core/string: require_relative with an absolute path,
        the require/load argument contract, LoadError#path, byteindex/
        byterindex, split, chop/chars/each_char   (kernel 233 -> 184,
                                                   string 179 -> 153 failing)
  #620  language: compound assignment evaluation order, the flip-flop
        operator, magic-comment encodings, loop break values
                                                  (pass 1308 -> 1443)
  #622  object: Float#to_s laid out by MRI's rule rather than Go's %g  (+11)
  #624  the mspec shim: a nested describe can see the helpers of the one
        around it                                                     (+28)
  #625  deps: parser v0.2.0                        (language +333)
  #626  compiler: for-loop targets, block-local variables, what defined?
        declares                                   (language +382)

Measured with scripts/conformance/rubyspec/run.sh against the pinned corpus at
87b1631, 16-way, TIMEOUT=25, three consecutive runs: 21749, 21750, 21750. The
floor is set nine below the lowest, the same margin rule as the last bump: it
absorbs the run-to-run jitter without being wide enough to hide the loss of a
whole spec file, which is what the ratchet exists to catch. #615 (an
intermittent frame-pop crash) is still open and can cost a file when it fires.

TWO OF THESE ARE NOT VM CONFORMANCE, and the number should not be read as if
they were. #624 fixed our own mspec shim: core/string/valid_encoding/utf_8_spec
scored 0/28 under MRI 4.0.5 too, so those 28 were harness noise counted as VM
failure. #625 is a dependency bump; the VM did not change, but thirteen
language spec files became parseable for the first time and brought 333 already-
passing examples into view. Both are real gains in what the measurement can
see, not in what the VM can do.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@tannevaled
tannevaled merged commit 1052fc6 into main Sep 23, 2026
7 checks passed
@tannevaled
tannevaled deleted the wave26/floor branch September 23, 2026 11: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