この記事は2020年ふりかえりアドベントカレンダー 8日目です。昨日の記事は yarn install 時の gyp: No Xcode or CLT version detected! を解消する - いまブログ です。
島根県浜田市の Ruby コミュニティ、 Hamada.rb に参加しました。現在はオンラインで開催されています。
同時に Ruby Hacking Challenge in Hamada.rb も開催されています。
Ruby 3.0 preview-2
今日はちょうど Ruby 3.0 preview-2 がリリースされたので、リリースノートをみんなで読んでいました。
リリースノートのリンク切れを見つけ、勉強会中に PR を立てている方がいました。
www.ruby-lang.org
用のリポジトリがあると知らなかったので勉強になりました。
bundled gems ?
リリースノートにこんな一文がありました。
以下のライブラリが新たに bundled gems になりました。Bundler から利用する場合は Gemfile に明示的に指定してください。(中略) 以下のライブラリが新たに default gems になりました。rubygems.org からアップデート可能です。
bundled gems と default gems とはなんでしょうか?
調べてみたところこういった違いがあるようです。
ライブラリ | 扱い | 例 |
---|---|---|
標準ライブラリ | Builtin libraries, 組み込みライブラリとも呼ぶ。 require 不要で使える |
Array, String など |
標準添付ライブラリ | Ruby に同梱されているライブラリ。 require すれば使える。 bundled gems と default gems に分かれる。 |
- |
bundled gems | Ruby に同梱されているが、gem uninstall ができる gem 。Bundler から使う場合は Gemfile に指定する | minitest など |
default gems | Ruby に同梱されており、gem uninstall できない gem 。 rubygems.org からアップデート可能 | irb, reline など |
間違っていたらご指摘ください🙏
試しに reline
をアンインストールしてみようとしたら怒られました。
$ gem uninstall reline Gem reline-0.1.5 cannot be uninstalled because it is a default gem
ちなみに bundled gems と default gems はこちらで定義されています。
ruby/bundled_gems at ruby_2_7 · ruby/ruby
ruby/sync_default_gems.rb at master · ruby/ruby
参考資料
bundled gem と default gem の違い - @znz blog
bundled gem と default gem の違いの具体例 - @znz blog
irb のバグ
以前から気になっていた irb のバグっぽい挙動を相談しました。
他の方も同じ挙動が確認できたこと、自力で直すのが大変そうなこと(Ruby で書かれている irb ならともかく、 CRuby 本体の Warning 周りに原因があると私にはお手上げです)、Ruby 3.0 リリースまでに直っていてほしいと思ったことからチケットを起票しました。
Hamada.rb は CRuby の貢献フローになれている方が多く、いろいろアドバイスいただいてすぐに起票できました。
詳細はこちらをご覧ください。
英語書くのにとても悩んで時間がかかりました。チケットを書く時間の90%は英語で悩んでいた時間と言っても過言ではありません。リーディング・ライティング力を身に着けたいです。
今日はこんなところで。