Skip to content

Release 1.7.1 - #40

Merged
sacckey merged 2 commits into
mainfrom
release-1.7.1
Oct 10, 2026
Merged

sacckey merged 2 commits into
mainfrom
release-1.7.1

Conversation

@sacckey

@sacckey sacckey commented Oct 10, 2026

Copy link
Copy Markdown
Owner

Summary

  • Keep the results of RLC (HL) and RRC (HL) within a byte. They wrote the unmasked result back to memory, so the byte grew on every rotation. CRuby kept running with the larger Integer, but the Spinel browser build stopped with RangeError: integer overflow in <<.
  • Add a spec that rotates a byte in memory eight times with each instruction and expects the original byte back.
  • Bump the version to 1.7.1.

The benchmark ROM never executes these two instructions, so the benchmark results and checksums do not change.

Test plan

  • bundle exec rake (119 examples, no RuboCop offenses)
  • The new spec fails without the fix
  • Wasm tests: frontend.cjs, ruby_wasm.mjs, spinel.mjs
  • A ROM that stopped the Spinel browser build at frame 381 now runs 3000 frames with the same framebuffers as CRuby
  • rubyboy-bench prints the same checksum as 1.7.0 on CRuby, YJIT and Spinel

🤖 Generated with Claude Code

sacckey and others added 2 commits October 11, 2026 06:01
RLC (HL) and RRC (HL) wrote the unmasked result back to memory, so a byte
grew by up to seven bits on every rotation. CRuby kept running with the
larger Integer, but the Spinel browser build raised RangeError once the
value no longer fit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sacckey
sacckey merged commit cece672 into main Oct 10, 2026
1 check passed
@sacckey
sacckey deleted the release-1.7.1 branch October 10, 2026 21:08
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