Skip to content

Organize JRuby console implementations - #148

Merged
nobu merged 4 commits into
masterfrom
jruby-lib
Aug 10, 2026
Merged

Organize JRuby console implementations#148
nobu merged 4 commits into
masterfrom
jruby-lib

Conversation

@nobu

@nobu nobu commented Aug 10, 2026

Copy link
Copy Markdown
Member

Move the JRuby implementation under jruby/lib/io/console and separate
console backends from platform constants. This makes the backend boundaries
explicit and keeps reusable constants independent from FFI initialization.

Support the FFI termios backend on arm64 Darwin. JRuby FFI does not reliably
preserve terminal state through tcgetattr and tcsetattr there, so Darwin
uses the equivalent TIOCGETA and TIOCSETA ioctls.

Validation:

  • jruby -S rake test
  • 33 tests, 79 assertions, 0 failures, 0 errors
  • CI matrix is green

nobu added 4 commits August 10, 2026 14:09
Group implementations by backend and isolate platform-specific
constants.
Keep platform constants reusable without initializing an FFI backend.
Use Darwin terminal ioctls because JRuby FFI corrupts terminal state
when calling `tcgetattr` and `tcsetattr` on arm64.
@nobu
nobu marked this pull request as ready for review August 10, 2026 09:17
@nobu
nobu merged commit 48942c2 into master Aug 10, 2026
72 checks passed
@nobu
nobu deleted the jruby-lib branch August 10, 2026 09:17
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