Ruby の引数の種類をまとめてみた

普段何気なく書いている Ruby なんですが実はメソッドの引数の種類って思ったよりも多くてまとめてみました。 実際自分も Ruby の AST をいじっている時に引数の種類が多すぎて混乱したのでまとめておくと色々と役に立つかなーと。 と、軽い気持ちで書いてみ…

2022/03/10 今回の気になった bugs.ruby のチケット

今週はブロックの引数で Hash が分割して受け取れなくなったチケットがありました。 [Misc #18609] keyword decomposition in enumerable (question/guidance) Ruby 3.0 から次のように Hash をキーワード引数で受け取れなくなったというチケット drafts = […

2022/03/03 今回の気になった bugs.ruby のチケット

今週はラテン文字を String#downcase したときのバグ報告がありました。 前回のまとめ [Feature #18603] Allow syntax like obj.method(arg)=value 次のようのような構文を許容する提案 obj.method(arg) = value これは以下と同じ意味になる obj.__send__(:m…

2022/02/24 今回の気になった bugs.ruby のチケット

今週はアクセシビリティ関連のバグ報告がありました。 前回のまとめ [Bug #18600 ] Aliased method visibility issue on Ruby 3.1 次のように親のメソッドを public にしてからalias_method すると private に戻ってしまっているというバグ報告 module M pri…

2022/02/17 今回の気になった bugs.ruby のチケット

今週はパターンマッチの find 検索を正式に導入するチケットがありました。 前回のまとめ [PR reline] Proposal for quick shell execution irb で . から始まるコマンドを入力した時に shell コマンドが実行されるようにする提案 pry だとこの機能が実装さ…

2022/02/10 今回の気になった bugs.ruby のチケット

今週はエンコーディングの ASCII_8BIT という名前を BINARY に変える提案がありました。 前回のまとめ [Feature #18576] Rename ASCII-8BIT encoding to BINARY エンコーディングの ASCII-8BIT を BINARY という名前に変更する提案 以下のようなエラーメッセ…

2022/02/03 今回の気になった bugs.ruby のチケット

今週は String 周りでメソッドを追加するチケットの話などがありました。 前回のまとめ [Feature #18564] Add Exception#detailed_message [Feature #18438] Add Exception#additional_message to show additional error information で議論した結果をまとめ…

Ruby 3.1 でオブジェクトが生成された箇所が表示できるようになった

Ruby 3.1 の小ネタです。 Ruby 3.1 で objspace/trace というライブラリが追加されました。 このライブラリを require すると p で出力するときに『オブジェクトが生成された箇所』が一緒に表示されるようになります。 # このライブラリを require するとオ…

BuriKaigi2022 で Ruby のメタプロの話をしてきた

去年に引き続き BuriKaigi2022 で Ruby の話をしてきました。 Ruby のメタプログラミングで遊んでみよう by @pink_bangbi ぶっちゃけ直前までなに話そうかずーっと考えてて最終的には好きなことを話そうと思って前々から離すきっかけをうかがっていた Ruby …

2022/01/29 今回の気になった bugs.ruby のチケット

今週はパターンマッチでインスタンス変数で値を束縛できるようにする話です。 [Feature #18408] Allow pattern match to set instance variables パターンマッチでインスタンス変数への束縛を許容したいチケット 現状はパターンマッチでインスタンス変数に対…

2022/01/21 今回の気になった bugs.ruby のチケット

今週は CRuby を WASI に対応する変更がマージされました。 前回のまとめ [Feature #18462] Proposal to merge WASI based WebAssembly support CRuby を WASI に対応するチケット WASI は WebAssembly をブラウザではなくて OS で動かすための共通のプラッ…

2022/01/14 今回の気になった bugs.ruby のチケット

今週はレシーバに定義されている定数名とその値の Hash を返すメソッドの提案がありました。 前回のまとめ [Bug #18475] Yielding an element for Enumerator in another thread dumps core 以下のコードを実行すると segv するというバグ報告 def run Threa…

Ruby の steep を試してみたメモ

雑な覚書 インストール $ gem install steep $ steep --version 0.47.0 注意点 steep 0.47.0 と activesupport 7.0 の組み合わせだとエラーになるので activesupport 7.0 未満を使う必要がある issues: https://github.com/soutaro/steep/issues/466 $ steep…

2022/01/07 今回の気になった bugs.ruby のチケット

あけましておめでとうございます。 今年も引き続き書いていきたいと思います。 今週は Refinement 周りの便利メソッドが追加されたり匿名な * ** 引数をフォワードする機能がマージされました。 前回のまとめ [Feature #18460] implicit self for .() syntax…

2021年を振り返って

去年に引き続いて技術的な話ではなくて今年読んで面白かったマンガの紹介をします。 ちなみに今年は kindle で880冊読みました。 1日に2冊以上読んでる計算になるけどそんなに読んでる気はしないんですがねえ。 宝石の国 宝石を擬人化したかわいいキャラクタ…

Ruby 3.1 がリリースされた!

今年も無事にクリスマスに Ruby がリリースされました! Ruby 3.1.0 リリース NEWS Ruby 3.1 で追加される機能などは以下のスライドで紹介しているので気になる人は読んでみてください。 Ruby 3.1 に備えよう! by @pink_bangbi Ruby 3.1 へ移行するときの注…

【一人 bugs.ruby Advent Calendar 2021】番外編: 今年みた Ruby のバグ報告【25日目】

一人 bugs.ruby Advent Calendar 2021 25日目の記事になります。 今日で Advent Calendar も最後という事で今回は今年みた Ruby のバグをいくつか紹介してみようと思います。 またこれから紹介する修正済みのバグは Ruby 3.1 ではなくて古い Ruby でもバック…

【一人 bugs.ruby Advent Calendar 2021】[Bug #18396] An unexpected "hash value omission" syntax error when without parentheses call expr follows【24日目】

一人 bugs.ruby Advent Calendar 2021 24日目の記事になります。 今日は Ruby 3.1 で入る予定の Hash の値の省略記法で意図しない挙動がある話しです。 [Bug #18396] An unexpected "hash value omission" syntax error when without parentheses call expr …

【Rubyist近況 Advent Calendar 2021】2021年の活動履歴【23日目】

Rubyist近況 Advent Calendar 2021 23日目の記事になります。 近状ということでこの記事では今年の活動履歴をまとめてみたいと思います。 Burikaigi2021 今年の1月に Burikaigi2021 というイベントがあり、そこで Ruby 2.0 ~ Ruby 3.0 でどう移り変わってい…

2021/12/23 今回の気になった bugs.ruby のチケット

今週は Ruby 3.1 で Class.descendants が Revert されたりしました。 前回のまとめ [Feature #14394] Class.descendants .descendants はレシーバが『継承されている』クラスの一覧を返すメソッドの追加の提案 class A; end class B < A; end class C < B; …

【一人 bugs.ruby Advent Calendar 2021】[Bug #17866] Incompatible changes with Psych 4.0.0【23日目】

一人 bugs.ruby Advent Calendar 2021 23日目の記事になります。 今日は Psych が 4.0.0 にメジャーアップデートすることで非互換になる話です。 [Bug #17866] Incompatible changes with Psych 4.0.0 Psych.load を Psych.safe_load に置き換える PR がマー…

【一人 bugs.ruby Advent Calendar 2021】[Bug #18246] send does not work for unary ! operator when operator isn't a literal symbol【22日目】

一人 bugs.ruby Advent Calendar 2021 22日目の記事になります。 今日は ! 単項演算子を send で呼び出す時の話です。 [Bug #18246] send does not work for unary ! operator when operator isn't a literal symbol ! 単項演算子を send で呼び出すとエラー…

【一人 bugs.ruby Advent Calendar 2021】[Bug #17423] `Prepend` should prepend a module before the class【21日目】

一人 bugs.ruby Advent Calendar 2021 21日目の記事になります。 今日は prepend の挙動がちょっと変わる話です。 [Bug #17423] Prepend should prepend a module before the class Ruby 3.0 では継承リスト周りの処理が色々と改善されました。 が、結果 #pr…

【一人 bugs.ruby Advent Calendar 2021】[Bug #17719] Irregular evaluation order in hash literals【20日目】

一人 bugs.ruby Advent Calendar 2021 20日目の記事になります。 今日は Hash リテラルでキーが重複したときの話です。 [Bug #17719] Irregular evaluation order in hash literals Hash リテラルでキーが重複している場合に以下のような評価順になります。 …

【一人 bugs.ruby Advent Calendar 2021】[Feature #17743] Show argument types in backtrace【19日目】

一人 bugs.ruby Advent Calendar 2021 19日目の記事になります。 今日はバックトレースに引数情報も追加する話です。 [Feature #17743] Show argument types in backtrace バックトレースに引数情報も追加する提案です。 例えば以下のようなコードを実行する…

【一人 bugs.ruby Advent Calendar 2021】[Bug #18293] Time.at in master branch was 25% slower then Ruby 3.0【18日目】

一人 bugs.ruby Advent Calendar 2021 18日目の記事になります。 今日は Time.at のパフォーマンスが遅くなった話です。 [Bug #18293] Time.at in master branch was 25% slower then Ruby 3.0 Time.at が 3.0.2 と 3.1.0-dev と比較して 25% 遅くなったとい…

【一人 bugs.ruby Advent Calendar 2021】[Feature #11689] Add methods allow us to get visibility from Method and UnboundMethod object.【17日目】

一人 bugs.ruby Advent Calendar 2021 17日目の記事になります。 今回はメソッドオブジェクトに対してアクセシビリティの情報を取得するメソッドの話です。 [Feature #11689] Add methods allow us to get visibility from Method and UnboundMethod object.…

2021/12/16 今回の気になった bugs.ruby のチケット

今週は {Method,UnboundMethod}#{public?,private?,protected?} が追加されました。 前回のまとめ [Bug #18405] Regression in Struct member setter method parameters Struct の最適化をした際にデグレしているというバグ報告 S = Struct.new(:foo) S.inst…

【一人 bugs.ruby Advent Calendar 2021】[Bug #17571] prependしたArray#[] が反映されない【16日目】

一人 bugs.ruby Advent Calendar 2021 16日目の記事になります。 今日はArray に prepend してる #[] が呼び出されないバグの話です。 [Bug #17571] prependしたArray#[] が反映されない 以下のように Array に prepend してる #[] が呼び出されないことがあ…

【一人 bugs.ruby Advent Calendar 2021】[Misc #18125] A strange behavior when same name variable/method coexist issue.【15日目】

一人 bugs.ruby Advent Calendar 2021 15日目の記事になります。 今日は同名のメソッドと変数を定義した状態の話です。 [Misc #18125] A strange behavior when same name variable/method coexist issue. 次のように同名のメソッドと変数を定義した時に奇妙…