Ruby

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

内容は適当です。 今週と言っても今週みかけたチケットなだけでチケット自体は昔からあるやつもあります。 あくまでも『わたしが気になったチケット』で全ての bugs.ruby のチケットを載せているわけではありません。 先週のまとめ [Feature #17471] send_if…

M1 の MacBook で rbenv + Ruby 2.6.6 をビルドする

rbenv で Ruby 2.7 や 3.0 のビルドは問題なかったんですが 2.6 で失敗したのでその対処方法を書いておきます。 rbenv で 2.6.6 をインストールする rbenv で 2.6.6 をインストールしようとしたらエラーになります。 $ rbenv install 2.6.6 Downloading open…

【一人 cugs.ruby Advent Calendar 2020】[Feature #17016] Enumerable#scan_left【25日目】

一人 bugs.ruby Advent Calendar 2020 25日目の記事になります。 長かったアドベントカレンダーも今日で最後です。 [Feature #17016] Enumerable#scan_left このチケットは Enumerable#scan_left を追加する提案です。 Enumerable#scan_left は Enumerable#i…

2020/12/17 今週の気になった bugs.ruby のチケット

内容は適当です。 今週と言っても今週みかけたチケットなだけでチケット自体は昔からあるやつもあります。 あくまでも『わたしが気になったチケット』で全ての bugs.ruby のチケットを載せているわけではありません。 先週のまとめ [Feature #17303] Remove …

2020/12/24 今週の気になった bugs.ruby のチケット

内容は適当です。 今週と言っても今週みかけたチケットなだけでチケット自体は昔からあるやつもあります。 あくまでも『わたしが気になったチケット』で全ての bugs.ruby のチケットを載せているわけではありません。 先週のまとめ [Bug #17030] Enumerable#…

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

一人 bugs.ruby Advent Calendar 2020 24日目の記事になります。 [Bug #17423] Prepend should prepend a module before the class このブログでも何回か紹介しているんですが Ruby 3.0 では Module#include / #prepend の挙動がちょっと変わります。 特に以…

【一人 bugs.ruby Advent Calendar 2020】[Feature #16986] Anonymous Struct literal【23日目】

【一人 bugs.ruby Advent Calendar 2020】[Feature #16986] Anonymous Struct literal【23日目】 一人 bugs.ruby Advent Calendar 2020 23日目の記事になります。 [Feature #16986] Anonymous Struct literal これは Struct.new(:a, :b).new(1, 2) を ${ a: …

【一人 bugs.ruby Advent Calendar 2020】[Feature #17004] Provide a way for methods to omit their return value【22日目】

一人 bugs.ruby Advent Calendar 2020 22日目の記事になります。 [Feature #17004] Provide a way for methods to omit their return value このチケットは任意のメソッドが戻り値を受け取るか受け取らないかを判定するメソッドの追加を追加するという内容の…

【Ruby 3.0 Advent Calendar 2020】Ruby 3.0 で WEBrick と SDBM が標準ライブラリから削除される【22日目】

Ruby 3.0 Advent Calendar 2020 22日目の記事になります。 この前の銀座Rails で完全に話忘れてたのでここに書いておきます。 Ruby 3.0 で WEBrick と SDBM が標準ライブラリから削除される 表題のとおりですが Ruby 3.0 から標準ライブラリの WEBrick と SD…

【一人 bugs.ruby Advent Calendar 2020】[Feature #17292] id outputed by inspect and to_s output does not allow to find actual object_id and vice-versa【21日目】

一人 bugs.ruby Advent Calendar 2020 21日目の記事になります。 [Misc #17199] id outputed by inspect and to_s output does not allow to find actual object_id and vice-versa Ruby 2.7 から #inspect ( #to_s ) と #__id__ が返すアドレスの関連性が一…

【一人 bugs.ruby Advent Calendar 2020】[Bug #17017] Range#max & Range#minmax incorrectly use Float end as max【20日目】

一人 bugs.ruby Advent Calendar 2020 20日目の記事になります。 誤解しないように最初に書いておくとこのチケットによる Ruby 3.0 への影響はありません。 [Bug #17017] Range#max & Range#minmax incorrectly use Float end as max このチケットは以下のよ…

【一人 bugs.ruby Advent Calendar 2020】[Feature #17292] Hash Shorthand / Punning【19日目】

一人 bugs.ruby Advent Calendar 2020 19日目の記事になります。 [Feature #17292] Hash Shorthand / Punning これは { a:, b:, c: } を { a: a, b: b, c: c } のように展開しようという提案です。 a = 1 b = 2 c = 3 { a:, b:, c: } # => { a: 1, b: 2, c: …

【一人 bugs.ruby Advent Calendar 2020】[Bug #16852] Refining Enumerable fails with ruby 2.7【18日目】

一人 bugs.ruby Advent Calendar 2020 18日目の記事になります。 [Bug #16852] Refining Enumerable fails with ruby 2.7 Ruby 2.7 系の Refinements のバグ報告チケットになります。 元々は以下のように RSpec での再現コードで報告されていた。 # file: re…

【一人 bugs.ruby Advent Calendar 2020】[Feature #17371] Reintroduce `expr in pat`【17日目】

一人 bugs.ruby Advent Calendar 2020 17日目の記事になります。 [Feature #17371] Reintroduce expr in pat これは1行 in を再度入れ直そう、という旨のチケットです。 これ、ちょっとコンテキストが複雑なんですが、元々 Ruby 2.7 で 1行 in という機能が…

【一人 bugs.ruby Advent Calendar 2020】[Bug #16919] IRB でマジックコメントの : の後に任意の文字を入力するとエラーが発生する【15日目】

一人 bugs.ruby Advent Calendar 2020 15日目の記事になります。 [Bug #16919] IRB でマジックコメントの : の後に任意の文字を入力するとエラーが発生する そのまんまの意味なんですが Ruby 2.7 の irb 上で #coding:utf-8 を入力するとクラッシュするとい…

【一人 bugs.ruby Advent Calendar 2020】[Feature #12901] Anonymous functions without scope lookup overhead【14日目】

一人 bugs.ruby Advent Calendar 2020 14日目の記事になります。 [Feature #17054] Some NilClass methods are faster if implemented in Ruby これは NilClass#to_i などを C言語じゃなくて Ruby で実装することで高速化するというチケットになります。 何…

【一人 bugs.ruby Advent Calendar 2020】[Feature #12901] Anonymous functions without scope lookup overhead【13日目】

一人 bugs.ruby Advent Calendar 2020 13日目の記事になります。 [Feature #12901] Anonymous functions without scope lookup overhead Proc などを定義する際に『外部のスコープを参照しないこと』を明示化することでオーバーヘッドをなくしパフォーマンス…

【一人 bugs.ruby Advent Calendar 2020】[Feature #17315] Hash #transform【12日目】

一人 bugs.ruby Advent Calendar 2020 12日目の記事になります。 [Feature #17315] Hash #transform これは Hash の中身を変更して Hash を返す Hash#transform Hash#transform! を追加する提案です。 h = {'name' => 'dominic ', 'email' => 'dominic.mail.…

【一人 bugs.ruby Advent Calendar 2020】[Feature #17330] Object#non【11日目】

一人 bugs.ruby Advent Calendar 2020 11日目の記事になります。 [Feature #17330] Object#non 以下のように実装された Object#non メソッドを新しく追加する提案です。 class Object # ブロックの戻り値が偽ならレシーバを返し、そうでないなら nil を返す …

2020/12/10 今週の気になった bugs.ruby のチケット

内容は適当です。 今週と言っても今週みかけたチケットなだけでチケット自体は昔からあるやつもあります。 あくまでも『わたしが気になったチケット』で全ての bugs.ruby のチケットを載せているわけではありません。 先週のまとめ [Feature #17361] lambda(…

【一人 bugs.ruby Advent Calendar 2020】[Feature #17316] On memoization【10日目】

一人 bugs.ruby Advent Calendar 2020 10日目の記事になります。 [Feature #17316] On memoization Ruby でインスタンス変数を初期化する場合、以下のように ||= 演算子を使うことが多いです。 # @foo の初期値として最初にメソッドが呼び出された時に some_…

【一人 bugs.ruby Advent Calendar 2020】[Bug #17058] Array#delete_if doesn't change array instantly【9日目】

一人 bugs.ruby Advent Calendar 2020 9日目の記事になります。 [Feature #13820] Add a nil coalescing operator このチケットは Ruby に ?? 演算子を追加しよう、というチケットになります。 ?? 演算子は || 演算子と似ているのですが『左辺が nil のとき…

【一人 bugs.ruby Advent Calendar 2020】[Bug #17058] Array#delete_if doesn't change array instantly【8日目】

一人 bugs.ruby Advent Calendar 2020 8日目の記事になります。 [Bug #17058] Array#delete_if doesn't change array instantly さて Array#delete_if で条件にあった要素を削除する事ができます。 a = [1, 2, 3, 4, 5, 6] # 偶数を削除する a.delete_if { |…

【一人 bugs.ruby Advent Calendar 2020】[Feature #16986] Anonymous Struct literal【7日目】

一人 bugs.ruby Advent Calendar 2020 7日目の記事になります。 [Feature #16986] Anonymous Struct literal このチケットは Struct を定義する新しいリテラルの提案です。 提案自体はそこまで複雑な内容ではなくて Struct.new(:a, :b).new(1, 2) を ${a: 1,…

【Ruby 3.0 Advent Calendar 2020】今年 Ruby に投げたパッチまとめ【6日目】

Ruby 3.0 Advent Calendar 2020 6日目の記事になります。 昨日は Rubyにはオブジェクトを汚染する仕組みがあった - いまブログです。 今年は RubyVM::AbstractSyntaxTree を触ることが多かったのですが、それに関連してバグっぽい挙動をいくつか見つけたので…

【一人 bugs.ruby Advent Calendar 2020】[Bug #15712] DateTime#=== should be defined and compare date and time instead of just the date【6日目】

一人 bugs.ruby Advent Calendar 2020 6日目の記事になります。 [Bug #15712] DateTime#=== should be defined and compare date and time instead of just the date このチケットは DateTime#=== で比較する際に日付だけ考慮して時刻を考慮せずに比較されて…

【一人 bugs.ruby Advent Calendar 2020】[Feature #17210] More readable and useful `Set#inspect`【5日目】

一人 bugs.ruby Advent Calendar 2020 5日目の記事になります。 [Feature #17210] More readable and useful Set#inspect このチケットでは Set#inspect や Set#to_s の結果をより Ruby 側に寄せよう、という提案がされています。 # 現状 puts Set[1, 2, 3] …

ぽしゃけを飲みながら Ruby のコードをリファクタリングしてみた

ぽしゃけを飲みながら Rubyでリファクタリングをやってみよう を読んでいたんですが、無性にリファクタリングしたくなってきたので勢いでリファクタリングしました。 リファクタリング前 class Purchaser attr_reader :section, :purchased_at def initializ…

【一人 bugs.ruby Advent Calendar 2020】[Bug #17030] Enumerable#grep{_v} should be optimized for Regexp【4日目】

一人 bugs.ruby Advent Calendar 2020 4日目の記事になります。 [Bug #17030] Enumerable#grep{_v} should be optimized for Regexp ary.select { |e| e.match?(reg) } と比較して ary.grep(reg) の方が遅いので最適化しよう、という内容のチケットになりま…

【一人 bugs.ruby Advent Calendar 2020】[Bug #17101] YAML.load_file: Massive slowdown under Ruby 2.7 vs. Ruby 2.4【3日目】

一人 bugs.ruby Advent Calendar 2020 3日目の記事になります。 [Bug #17101] YAML.load_file: Massive slowdown under Ruby 2.7 vs. Ruby 2.4 この記事では YAML.load_file の実行速度について言及されているチケットになります。 Ruby 2.4 と比べて Ruby 2…