Ruby
一人 bugs.ruby Advent Calendar 2021 11日目の記事になります。 今回は obj.instance_exec(..., &proc_obj) と同じ意味の Proc#bind_call(obj) を追加する話です。 [Feature #18276] Proc#bind_call(obj) same as obj.instance_exec(..., &proc_obj) obj.in…
一人 bugs.ruby Advent Calendar 2021 10日目の記事になります。 load メソッドに Module を渡せるようにする事でそのモジュール内で load された定義が追加できるように提案する話です。 [Feature #6210] load should provide a way to specify the top-lev…
今週は import_methods に C拡張で定義されたモジュールを渡せないバグ報告などがありました。 前回のまとめ [Bug #18396] An unexpected "hash value omission" syntax error when without parentheses call expr follows Ruby 3.1 では Hash の省略記法が…
一人 bugs.ruby Advent Calendar 2021 9日目の記事になります。 public / private / protected の戻り値をレシーバから引数を返すようにする提案です。 [Feature #12495] Make "private" return the arguments again, for chaining public / private / prote…
一人 bugs.ruby Advent Calendar 2021 8日目の記事になります。 今回は freeze されている事を明示化する Immutable モジュールの提案です。 [Feature #18035] Introduce general model/semantic for immutable by default. Immutable モジュールで freeze …
一人 bugs.ruby Advent Calendar 2021 7日目の記事になります。 今回は { x:, y: } を { x: x, y: y } のショートハンドにする提案です。 [Feature #14579] Hash value omission { x:, y: } を { x: x, y: y } のショートハンドにする提案です。 これ以外に…
一人 bugs.ruby Advent Calendar 2021 5日目の記事になります。 今回はキーワード引数にキーワードを割り当てたい話。 [Feature #17785] Allow named parameters to be keywords 次のようにキーワード引数に『言語のキーワード』を指定すると参照するのが難…
一人 bugs.ruby Advent Calendar 2021 4日目の記事になります。 今回は 8進数リテラルについて議論するチケットです。 [Misc #18150] Proposal: Deprecate leading zero syntax to declare octals, since it's extremely confusing (and Python 3 removed it…
一人 bugs.ruby Advent Calendar 2021 3日目の記事になります。 #️⃣ 絵文字以降の Ruby のコードがコメントアウトとして扱われてしまうというバグ報告です。 [Bug #10593] Emoji is been considered as comment #️⃣ という絵文字を書いた以降がコメントアウ…
【一人 bugs.ruby Advent Calendar 2021】[Feature #17576] Partial Functions (procs, lambdas)【2日目】 一人 bugs.ruby Advent Calendar 2021 2日目の記事になります。 今回はブロック構文に in を使ったガード節を追加する提案です。 [Feature #17576] P…
今週は Strcut を素の class に置き換えることで Ripper.lex を高速化する提案がありました。 前回のまとめ [Feature #18369] users.detect(:name, "Dorian") as shorthand for users.detect { |user| user.name == "Dorian" } users.detect { |user| user.n…
一人 bugs.ruby Advent Calendar 2021 1日目の記事になります。 さて、去年に引き続き今年も『毎週気になった bugs.ruby のチケットをまとめてみる』ということを継続してやっていました。 今週の気になった bugs.ruby のチケット と、言うことで今年も去年…
Ruby Advent Calendar 2021 1日目の記事です。 さてさて今年も Advent Calendar の時期がやってきましたね。 今年の Ruby Advent Calendar はありがたい事に1周目が既に埋まっており、2周目のカレンダーが立っています。 Advent Calendar を書いてみたい方が…
今週は load メソッドにモジュールを渡せるようになりました。 前回のまとめ [Bug #17675] StringIO#each_byte doesn't check for readabilty while iterating IO がクローズしているのにイテレーションが処理されてしまうというバグ報告 require "stringio"…
今週は Refinements 関連の便利メソッドのチケットが多いです。 前回のまとめ [Bug #17429] Prohibit include/prepend in refinement modules Refinements 時に include/prepend することを禁止するチケット 背景として以下の様に Refinements 時に include/…
今週は 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% 遅くなったというバグ報告 実際の比較はチケットを見てね…
今週は Proc#bind_call(obj) を追加する提案などがありました。 前回のまとめ [Bug #18282] Rails CI raises Segmentation fault with ruby 3.1.0dev supporting Class#descendants 開発版 Ruby と最新版の Rails でクラッシュするというバグ報告 最終的には…
今週は Enumerable#each_cons と #each_slice の戻り値の変更がありました。 前回のまとめ [PR #1509] Fix Enumerable#each_cons and each_slice to return a receiver Enumerable#each_cons と Enumerable#each_slice の戻り値をレシーバにする PR 現在は n…
今日の Kaigi on Rails の kamipo さんの基調講演でそういう話がでてたのでやってみました。 要は User.where みたいに User. 付きか where だけで呼び出された場合で処理を切り分けたい的な話。 class User def self.where "レシーバなし" end def self.whe…
今週は YJIT が Ruby 本体に取り込まれました。 前回のまとめ [Feature #6210] load should provide a way to specify the top-level module load メソッドに Module を指定できるようにする提案 以下のように特定のモジュールに対して load した Ruby のコ…
書こう書こうと思って気がついたら1ヶ月立っていましたこんにちは。 (去年を除いて)今回が RubyKaigi 初参加&初登壇ということでいろいろと書き残しておこうと思います。 ちなみに今週末に以下のようなイベントで雑に話すので興味がある方がぜひぜひ参加…
今週は feature チケットに関するトリアージのガイドラインの提案などがありました。 前回のまとめ [Bug #18250] Anonymous variables seem to break Ractor.make_shareable 以下のようなコードを実行すると Ractor.make_shareable で TypeError が発生する…
RubyKaigi で発表があった debug-gem を使ってみたので覚書。 思ったよりもいろんな機能があった。 The Art of Execution Control for Ruby's Debugger by Koichi Sasada - RubyKaigi Takeout 2021 インストール $ gem install debug でインストールするか G…
今週は YJIT の導入チケットがつくられました。 前回のまとめ [Feature #18229] Proposal to merge YJIT Ruby 本体に YJIT を組み込む提案 matz が +1 している での本体には取り込まれそう 来月リファクタリングされるらしいので実際に入るのはもうちょい後…
今週は min / max / minmax で比較する値とその結果の要素を返すメソッドの提案などがありました。 前回のまとめ [Bug #18187] Float#clamp() returns ArgumentError (comparison of Float with 1 failed) Float::NAN.clamp(0, 100) すると ArgumentError が…
今週は { a: a, b: b } を { a:, b: } とかけるショートハンドが入りました。 前回のまとめ [Feature #18168] Add ActiveSupport deep_transform_values to Ruby ActiveSupport の #deep_transform_values を Ruby 本体に追加する提案 require "active_suppo…
以前から山のように提案があった Hash のショートハンドが RubyKaigi の感想戦で matz を説得して入ったらしい。 チケット:[Feature #14579] Hash value omission コミット:https://github.com/ruby/ruby/commit/c60dbcd1c55cd77a24c41d5e1a9555622be8b2b8…
今週は Enumerable#take_while_after や Enumerable#detect_only といったメソッドの提案がありました 前回のまとめ [Feature #18136] take_while_after 先頭からブロックが真になった要素までを返すメソッドの提案 Enumerable#slice_after.first と同じ挙動…
先日 RubyKaigi Takeout 2021 のスピーカーとスケジュールが発表されました。 わたしも 3日目の朝一に Use Macro all the time ~ マクロを使いまくろ ~というタイトルで登壇させていただきます。 内容はタイトルにも書かれている通りマクロの話をします。 マ…
今週は右代入で特定のケースでシンタックスエラーになるというバグ報告がありました。 前回のまとめ [Bug #18084] JSON.dump can crash VM. 次のように再帰的な Hash を JSON.dump に渡すと VM がクラッシュするバグ報告 どうやら Linux 系でのみ発生してい…