ruby-trunk-changes 2022-12-17

今日は主に Time.new で文字列から時刻を parse する機能の新規追加がありました。

[8c272f4481] Nobuyoshi Nakada 2021-09-04 15:24:23 UTC

Time.new に文字列で ISO-8601 形式や Time#inspect の結果の形式の日時を渡すと parse してくれるという機能を新規追加しています。他のメソッドでできるしいるかなぁと思いましたがチケットをみると高速化と追加の require なしで利用できるというのがメリットということでなるほど確かに。 [ruby-core:104552] [Feature #18033]

[0a2f300a8a] Nobuyoshi Nakada 2022-12-16 02:55:54 UTC

8c272f44816f098c1e057c72a47451efc8cd1739 の続き。 Time.new の実装で 9 と決め打ちにしてた受付ける数値の桁数を TIME_SCALE という定数の桁数を計算して TIME_SCALE_NUMDIGITS という static 変数に格納して利用するようにリファクタリングしています。 [ruby-core:104552] [Feature #18033]

[67c589afa0] Nobuyoshi Nakada 2021-09-19 05:06:59 UTC

8c272f44816f098c1e057c72a47451efc8cd1739 の続き。 Time.new の文字列からのパース時のチェックをより厳格にしています。 [ruby-core:104552] [Feature #18033]

[9515179d74] Nobuyoshi Nakada 2021-10-23 14:32:25 UTC

8c272f44816f098c1e057c72a47451efc8cd1739 の続き。 Time.new のキーワード引数 precision を追加して小数点以下の秒数をどこまで保持するか(文字列上に書いてあっても切り捨てる)を指定できるようにしています。 [ruby-core:104552] [Feature #18033]

[635fc5f7fc] Nobuyoshi Nakada 2022-11-18 05:17:10 UTC

8c272f44816f098c1e057c72a47451efc8cd1739 の続き。 Time.new の parse に利用する関数マクロの定義で警告抑制のためのキャストを導入して書きなおしています。 [ruby-core:104552] [Feature #18033]

[3e49d62bc1] Nobuyoshi Nakada 2022-11-18 05:18:27 UTC

8c272f44816f098c1e057c72a47451efc8cd1739 の続き。 Time.new で ISO-8601 の形式の parse で 2桁の年表記はエラーになるようにしています。また 時:分:秒 のところで秒と分は(その前のコロンと共に)省略可能にしていたのを受付けないようにしています。 [ruby-core:104552] [Feature #18033]

[3d2eb7c9a6] Nobuyoshi Nakada 2022-11-18 04:47:10 UTC

8c272f44816f098c1e057c72a47451efc8cd1739 の続き。 NEWS に Time.new の機能追加について追記しています。 precision キーワード引数についても追記したほうが良さそう。 [ruby-core:104552] [Feature #18033]

[2ccf6e5394] Peter Zhu 2022-12-16 14:06:26 UTC

GC 処理中に再度 GC 開始する処理を実行してしまった時に rb_bug() で異常終了させていたのをデフォルトでは警告出力するに留め RGENGC_CHECK_MODE を定義した時だけ rb_bug() で異常終了させるようにしています。これマクロのチェック反対じゃないのかなと思ったけど、コミットログをみるとこれが意図的みたいだな。いいのかなこれ。

[297df92407] Jemma Issroff 2022-12-15 21:38:53 UTC

SHAPE_DEBUG マクロを定義してビルドした時に定義される RubyVM::Shape クラスを Struct を使って定義するようリファクタリングしています。

[9da5a7e79d] Samuel Williams 2022-12-17 07:43:21 UTC

non-blocking fiber のテストで Threads::Queue#pop の timeout を使うテストを追加しています。 https://github.com/ruby/ruby/pull/6953