bugs.ruby
今週は Module#autoload で意図しない定数が定義された時に対応するチケットがありました。 前回のまとめ [Feature #18815] instance_{eval,exec} vs Proc#>> 次のように Proc#>> した結果は instance_eval / instance_exec に適さない measure = proc { p "…
今週はトップレベルで include したあとにクラス定義すると予期しないクラスを再オープンするというバグ報告がありました。 前回のまとめ [Feature #18832] Do not have class/module keywords consider ancestors of Object 次のように include M した後に …
前回のまとめ [Bug #18826] Symbol#to_proc inconsistent, sometimes calls private methods #tap に & 渡しでメソッドを呼び出す場合に private や protected メソッドを呼び出す事ができるバグ報告 class Test protected def referenced_columns puts "hel…
今週は標準ライブラリをパターンマッチに対応させる提案がありました。 前回のまとめ [Feature #18821] Expose Pattern Matching interfaces in core classes Ruby のいくつかの標準ライブラリをパターンマッチに対応させるチケット 提案されているのは以下…
今週は除算の切り上げを行う Numeric#ceildiv を追加する提案がありました。 前回のまとめ [Feature #18809] Add Numeric#ceildiv 「除算の切り上げ」を実現する Numeric#ceildiv を追加する提案 「除算の切り上げ」とは、最も近い整数に切り上げられる除算…
今週は Refinements で protected されたメソッドが呼び出せないバグ報告がありました。 前回のまとめ [Bug #18806] protected methods defined by refinements can't be called Refinements で定義された protected がメソッドが呼び出せないというバグ報告…
今週はパターンマッチの #deconstruct を拡張する提案がありました。 前回のまとめ [Feature #18788] Support passing Regexp options as String to Regexp.new Regexp.new の第二引数にオプションを渡すことができる Regexp.new('foo', Regexp::IGNORECASE …
[Bug #18768] Inconsistent behavior of IO, StringIO and String each_line methods when return paragraph and chomp: true passed 以下のように String#each_line StringIO#each_line File#each_line に特定の引数を渡したときの挙動に一貫性がないという…
今週は Array#undigits の提案がありました。 前回のまとめ [Feature #18762] Add an Array#undigits that compliments Integer#digits Integer#digits と対になる Array#undigits を追加する提案 Integer#digits は位取り記数法で表記した数値を配列を返す …
今週は右代入を TracePoint でフックする場合のバグ報告がありました。 前回のまとめ [Bug #18753] lineno= is not returning an integer ARGF.send(:lineno=, 1) の戻り値が nil になっているというバグ報告 # これは 1 を返す p (ARGF.lineno=1) # => 1 # …
今週はレシーバに対して Kernel#p が呼び出せるようにする提案がありました。 前回のまとめ [Feature #18736] self-p for method chain 次のようにメソッドチェーンの間にレシーバを出力したいという要望チケット class Object def sp(method=nil, *args, &b…
今週は Kernel#then に引数を渡せるようにする提案がありました。 前回のまとめ [Feature #18690] Allow Kernel#then to take arguments Kernel#then に引数を追加する提案 通常はレシーバをブロックの引数として受け取るが 1.5.then{|x| Math.atan(x)} #the…
今週は MatchData#[] のバグ報告などがありました。 前回のまとめ [Bug #18670] MatchData#[start, length] pads nil values when negative start is given MatchData#[] にマイナス値を渡すと nil で埋めされた配列を返すバグ報告 # [-1, 5] は最後の値から…
今週は正規表現マッチするときのタイムアウトを導入するチケットがマージされました。 前回のまとめ [Feature #17837] Add support for Regexp timeouts 正規表現を比較する時にタイムアウトの概念を導入するチケット 色々と議論があったが最終的にはタイム…
今週は注釈付き代入演算子を提案するチケットなどがありました。 前回のまとめ [Feature #18626] 注釈付き代入演算子 ()= の提案 以下のような注釈付き代入演算子の提案になる class Object # 代入するときの処理をフックする def self.()= (what) what.is_a…
今週はブロックの引数に関するバグチケなどチケットがありました。 [Bug #18635] Enumerable#inject without block/symbol will return values or raise LocalJumpError ブロック引数のない Enumerable#inject を呼び出すと『値が返ってくるか例外が発生する…
今週はブロックの引数で Hash が分割して受け取れなくなったチケットがありました。 [Misc #18609] keyword decomposition in enumerable (question/guidance) Ruby 3.0 から次のように Hash をキーワード引数で受け取れなくなったというチケット drafts = […
今週はラテン文字を String#downcase したときのバグ報告がありました。 前回のまとめ [Feature #18603] Allow syntax like obj.method(arg)=value 次のようのような構文を許容する提案 obj.method(arg) = value これは以下と同じ意味になる obj.__send__(:m…
今週はアクセシビリティ関連のバグ報告がありました。 前回のまとめ [Bug #18600 ] Aliased method visibility issue on Ruby 3.1 次のように親のメソッドを public にしてからalias_method すると private に戻ってしまっているというバグ報告 module M pri…
今週はパターンマッチの find 検索を正式に導入するチケットがありました。 前回のまとめ [PR reline] Proposal for quick shell execution irb で . から始まるコマンドを入力した時に shell コマンドが実行されるようにする提案 pry だとこの機能が実装さ…
今週はエンコーディングの ASCII_8BIT という名前を BINARY に変える提案がありました。 前回のまとめ [Feature #18576] Rename ASCII-8BIT encoding to BINARY エンコーディングの ASCII-8BIT を BINARY という名前に変更する提案 以下のようなエラーメッセ…
今週は String 周りでメソッドを追加するチケットの話などがありました。 前回のまとめ [Feature #18564] Add Exception#detailed_message [Feature #18438] Add Exception#additional_message to show additional error information で議論した結果をまとめ…
今週はパターンマッチでインスタンス変数で値を束縛できるようにする話です。 [Feature #18408] Allow pattern match to set instance variables パターンマッチでインスタンス変数への束縛を許容したいチケット 現状はパターンマッチでインスタンス変数に対…
今週は CRuby を WASI に対応する変更がマージされました。 前回のまとめ [Feature #18462] Proposal to merge WASI based WebAssembly support CRuby を WASI に対応するチケット WASI は WebAssembly をブラウザではなくて OS で動かすための共通のプラッ…
今週はレシーバに定義されている定数名とその値の Hash を返すメソッドの提案がありました。 前回のまとめ [Bug #18475] Yielding an element for Enumerator in another thread dumps core 以下のコードを実行すると segv するというバグ報告 def run Threa…
あけましておめでとうございます。 今年も引き続き書いていきたいと思います。 今週は Refinement 周りの便利メソッドが追加されたり匿名な * ** 引数をフォワードする機能がマージされました。 前回のまとめ [Feature #18460] implicit self for .() syntax…
一人 bugs.ruby Advent Calendar 2021 25日目の記事になります。 今日で Advent Calendar も最後という事で今回は今年みた Ruby のバグをいくつか紹介してみようと思います。 またこれから紹介する修正済みのバグは Ruby 3.1 ではなくて古い Ruby でもバック…
一人 bugs.ruby Advent Calendar 2021 24日目の記事になります。 今日は Ruby 3.1 で入る予定の Hash の値の省略記法で意図しない挙動がある話しです。 [Bug #18396] An unexpected "hash value omission" syntax error when without parentheses call expr …
今週は 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 23日目の記事になります。 今日は Psych が 4.0.0 にメジャーアップデートすることで非互換になる話です。 [Bug #17866] Incompatible changes with Psych 4.0.0 Psych.load を Psych.safe_load に置き換える PR がマー…