Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ruby/irbへのコントリビュートと愉快な仲間たち / RubyKaigi 2024 Wrap Party

ruby/irbへのコントリビュートと愉快な仲間たち / RubyKaigi 2024 Wrap Party

hogelog

June 18, 2024
Tweet

More Decks by hogelog

Other Decks in Technology

Transcript

  1. だれ? 2 - @hogelog (GitHub, Twitter, …) - 小室 直

    (Sunao Komuro) - Software Engineer at STORES, Inc. - I like Ruby and programming - RubyKaigi 2024ではLTで話してきました
  2. @hogelogのRubyKaigi 2023 Kaigi Effect 8 - master ruby生活 - rbenv

    global ruby-dev - Docker開発環境もmaster ruby - master ruby生活をしていると最新のruby、ライブラリが使える - 最新の機能・不具合をいち早く体験できる!
  3. Fix failure of more command with -R option 9 -

    https://github.com/ruby/irb/pull/781 - moreコマンドしかない環境でのirbページャ起動エラーの修正
  4. Scrub past history input before split 11 - https://github.com/ruby/irb/pull/795 -

    irb履歴読み込み時の無効な文字の扱いの改善
  5. reline、readline、readline-ext、ext/readlineの関係 16 - reline gem - Pure Rubyで実装されたモダンなReadline互換ライブラリ - readline-ext

    gem - GNU Readline、Editlineのバインディングライブラリ - Ruby 3.2以前は標準添付ライブラリとして添付されていた - readline gem - readline-extがあればreadline-extを、readline-extがなければreline を読み込む抽象化ライブラリ - Ruby 3.3以降も標準添付され続ける - ext/readline - Ruby 2.6以前の標準添付ライブラリ - Ruby 2.7以降におけるreadline-ext gemとほぼ同一
  6. 2023年12月頃に気づいた不具合 17 - gem install readline-extしてもreadline-ext gemが使えない! - Ruby 3.3では添付ライブラリext/readlineが削除されるので、

    readline-ext gemが使えないと (relineではない) readlineを使え なくなってしまう $ rbenv shell 3.3.0-rc1 $ gem install readline-ext ... 1 gem installed $ ruby -rreadline -e 'p Readline' Reline
  7. require ‘readline.so’ とは 19 - require ‘readline.so’ or require ‘readline.o’

    でパスに含まれたダイナミッ クライブラリreadline.[so, dll, bundle, …] をロードする - この仕様は ruby/ruby load.c を読み把握 - コメントが仕様を正しく説明していなかったので修正 - [DOC] Fix RDoc to match actual Kenrel.require behavior https://github.com/ruby/ruby/pull/9180
  8. Fix readline-ext gem loading in non Unix-like environments 21 -

    https://github.com/ruby/readline/pull/6 - RubyGemsの挙動をふまえダイナミックライブラリの拡張子 をreadline gem側で指定するワークアラウンド
  9. Support dynamic library loading with extension .so or .o 22

    - https://github.com/rubygems/rubygems/pull/7241 - RubyGemsのrequireで環境ごとのダイナミックライブラリを 正しく探せるように修正
  10. gem install readline-ext works fine with ruby 3.3.0 🎉 23

    - ruby 3.3.0 (2023/12/25) - readlineのワークアラウンド、rubygemsの修正 - gem install readline-extでreadlineが呼べるように🎉 $ rbenv shell 3.3.0 $ gem install readline-ext ... 1 gem installed $ ruby -rreadline -e 'p Readline' Readline
  11. まとめ 25 - RubyKaigi 2023 Kaigi Effectでmaster ruby生活 - ふと気づいたruby/irbの不具合修正

    - そこから派生しruby, rubygems, readlineなどへ多数のコントリ ビュート - Ruby 3.3でreadline-extを使いたい人が困る前に修正できました
  12. RubyKaigi 2024 Kaigi Effect? 26 - irbはコントリビュートしがいがあるのでもっとやっていきたい - RubyInstaller for

    Windows環境のirb体験を改善したい - 他 - metrics_monitor gemもLT感想などももらい、やらねばの気持ち - https://x.com/hogelog/status/1791621352568520941