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

今週は YJIT の導入チケットがつくられました。 前回のまとめ [Feature #18229] Proposal to merge YJIT Ruby 本体に YJIT を組み込む提案 matz が +1 している での本体には取り込まれそう 来月リファクタリングされるらしいので実際に入るのはもうちょい後…

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

今週は min / max / minmax で比較する値とその結果の要素を返すメソッドの提案などがありました。 前回のまとめ [Bug #18187] Float#clamp() returns ArgumentError (comparison of Float with 1 failed) Float::NAN.clamp(0, 100) すると ArgumentError が…

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 を割り当てることで実行時に非推奨な警告の出力を制御することができま…

おれの考えた最強の denite.nvim の設定

Vim

年明けぐらいからちょこちょこ denite.nvim を使い始めて設定を追加したりプラグイン側でいろいろと対応してもらったりしていたのですがだいぶいい感じになってきたので一旦現状の設定を書き溜めておきます。 """""""""""""""""""""""""""""""""""""""""""""…

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 …

jq コマンドを使って Vim で選択した範囲の JSON をフォーマッティングする

Vim

書いてみた。 " 選択した範囲を jq コマンドを使ってフォーマッティングする " 範囲選択しない場合は現在の行を対象とする command! -range JSONFormatter :<line1>,<line2>!jq . べんり。 別途 jq 外部コマンドが必要なので注意。</line2></line1>