Ruby

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

今週は { a: a, b: b } を { a:, b: } とかけるショートハンドが入りました。 前回のまとめ [Feature #18168] Add ActiveSupport deep_transform_values to Ruby ActiveSupport の #deep_transform_values を Ruby 本体に追加する提案 require "active_suppo…

Ruby 3.1 で { a: a } が { a: } とかけるようになるらしい

以前から山のように提案があった Hash のショートハンドが RubyKaigi の感想戦で matz を説得して入ったらしい。 チケット:[Feature #14579] Hash value omission コミット:https://github.com/ruby/ruby/commit/c60dbcd1c55cd77a24c41d5e1a9555622be8b2b8…

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

今週は Enumerable#take_while_after や Enumerable#detect_only といったメソッドの提案がありました 前回のまとめ [Feature #18136] take_while_after 先頭からブロックが真になった要素までを返すメソッドの提案 Enumerable#slice_after.first と同じ挙動…

RubyKaigi Takeout 2021 で Ruby のマクロについて話します

先日 RubyKaigi Takeout 2021 のスピーカーとスケジュールが発表されました。 わたしも 3日目の朝一に Use Macro all the time ~ マクロを使いまくろ ~というタイトルで登壇させていただきます。 内容はタイトルにも書かれている通りマクロの話をします。 マ…

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

今週は右代入で特定のケースでシンタックスエラーになるというバグ報告がありました。 前回のまとめ [Bug #18084] JSON.dump can crash VM. 次のように再帰的な Hash を JSON.dump に渡すと VM がクラッシュするバグ報告 どうやら Linux 系でのみ発生してい…

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

今週は instance_exec に Method#to_proc を渡すと意図しない例外が返ってくるというバグ報告や Ruby 3.0.2 で Hash#transform_keys! を呼び出すとメモリリークをするという報告がありました。 前回のまとめ [Feature #18070] attr should be removed 1.9 か…

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

今週はネストしたループで caller_locations を呼び出すと segv するバグ報告などがありました。 前回のまとめ [Feature #18057] Introduce Array#mean 配列の平均値を求める Array#mean メソッドを追加する提案 元々は Array#average という名前だったが #m…

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

Integer.try_convert の追加や Struct.new.keyword_init? の追加などがありました。 前回のまとめ [Feature #10473] Change Date#to_datetime to use local time Date#to_datetime でローカルのタイムゾーンを使用しよう、というバグ報告 現状はローカルのタ…

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

今週は TracePoint 周りのバグがありました。 先週のまとめ [Feature #17039] Remove Time#succ Time#succ を削除するチケット 1.9.2 の頃から廃止の警告がでてたらしい warning: Time#succ is obsolete; use time + 1 と、いうわけで Ruby 3.1 から削除され…

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

今週は Ruby 3.1.0 で default gem から bundled gem に移動するチケットなどを載せています。 先週のまとめ [Feature #17873] Update of default gems in Ruby 3.1 Ruby 3.1 からいくつかの default gem が bundled gem に変更されるチケット 現時点で(あ…

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

今週はエラー箇所をハイライトする error_highlight という gem が本体に追加されました。 先週のまとめ [Feature #17930] Add column information into error backtrace エラー箇所をハイライトする機能の提案 error_highlight という gem として取り込まれ…

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

今週はエラー箇所をマークする gem の PR などがありました。 先週のまとめ [Bug #14817] TracePoint#parameters for bmethod's return event should return the same value as its Method#parameters TracePoint の :return イベント時に TracePoint#parame…

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

今週は ENV に対して変更が入りました。 先週のまとめ [Bug #17098] Float#negative? reports negative zero as not negative -0.0 が Float#negative? で false を返すのは期待しているのか?というバグ報告 IEEE 754 の規格?でそう定まってるらしい? neg…

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

今週は TypeScript のようなコンストラクタを Ruby に導入したい、というチケットなどがありました。 先週のまとめ [Feature #17942] Add a initialize(public @a, private @b) shortcut syntax for defining public/private accessors for instance vars as…

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

今週は backtrace に情報を追加する提案がありました。 先週のまとめ [Misc #17932] 90s design (please lets move to 21st century) バグトラッカーを古いデザインから新しいデザインにしようぜ!っていうチケット github へディスカッションを移動しようぜ…

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

今週は prepend した際の定数探索のバグ報告がありました。 先週のまとめ [Bug #17887] Missed constant lookup after prepend 次のように prepend したときの定数の探索がおかしいというバグ報告 class A FOO = 'a' end class B < A def foo FOO end end b …

Ruby の Psych.safe_load(YAML.safe_load)の引数が Psych v4.0.0 から非互換になる

さてさて、先日 YAML.load が非互換になる話を書きました。 その時に Psych.safe_load をいろいろと触ってたのですがその中で Psych.safe_load の引数もバージョンによって変わっていることに気づいたので書き溜めておきます。 先にまとめだけを書いておくと…

Ruby の YAML.load が非互換になる(かもしれない)

タイトルは釣りっぽいんですが Psych v4.0.0 で『 Psych.load が Psych.safe_load を使用するようになった』事で普段利用している YAML.load や YAML.load_file が今後非互換になってしまう、という話です。 この変更により今まで読み込むことができていた Y…

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

今週は Psych の非互換な変更に対するチケットできていました。 かなり影響範囲が広いのでどうなるか今後どうなっていくのか気になる。 先週のまとめ [Bug #17866] Incompatible changes with Psych 4.0.0 先週話していた Psych.load を Psych.safe_load に…

Ruby の Range#include? を使うよりも Range#cover? を使うほうが高速になることがある

次のように Date な Range では #include? よりも #cover? の方が高速で動作します。 require 'benchmark' require "date" range = (Date.parse("2020/01/01")..Date.parse("2021/01/01")) date = Date.parse("2020/05/01") Benchmark.bm(20) do |b| b.repor…

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

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

Ruby の Warning[:experimental] = false は実行時に反映されないケースがある

某所でそういう話が出ていたのでいろいろと調べてまとめてみました。 Warning[:deprecated] = true / false で実行時に非推奨な警告を制御できる Warning[:deprecated] に true / false を割り当てることで実行時に非推奨な警告の出力を制御することができま…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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