ruby-trunk-changes 2020-01-14

今日は Time のちょっとした最適化や irb の自動インデント機能修正と reline の Encoding まわりの修正などがありました。

[5aa0e6bee9] Kazuhiro NISHIYAMA 2020-01-13 12:22:22 UTC

NEWS ファイルに b25e27277dc39f25cfca4db8452d254f6cc8046e で追加した Hash#transform_keys の引数に Hash を渡す新機能について追記しています。 コミットログのチケットの参照は番号が間違ってそう。 [Feature #16274]

[c2e45422f7] John Hawthorn 2020-01-02 19:48:02 UTC

time.s でタイムゾーンを表す文字列で頻出の "UTC" を毎回 rb_fstring_lit() を呼んでいたのを static 変数に格納して使いまわすようにしいています。同様に空文字列の fstring オブジェクトも static 変数に格納するようにしています。

[5f3189474c] John Hawthorn 2020-01-02 19:48:03 UTC

同じく time.c の month_arg() という関数(ここだけみてもよくわかりませんが Time.utc や Time.local などの引数を解釈するもののうち month の部分を解釈するもののようです)で Integer 型オブジェクトの時に不要な文字列化を抑制するためのショートカット? を追加しています。

[91601dcc6a] John Hawthorn 2020-01-02 19:48:03 UTC

5f3189474c3ee3e11b6588acfbb026e119522092 でも利用していた time.c で整数オブジェクトを uint32_t 化する obj2ubits() のビット演算をシンプルにリファクタリングしています。

[e0a9b8ecef] git 2020-01-13 21:58:47 UTC

version.h の日付更新

[440013b2fa] Jun Aruga 2020-01-13 17:00:33 UTC

Travis-CI での s390x のビルドを allow_failures から削っています。すごい、安定しているのか。

[9994eb8a5e] Ben 2019-12-30 16:18:05 UTC

irb の複数行編集時の複数行にまたがった [...] の後のインデントの深さの判定の不具合を修正しています。

[c94025b630] Ben 2020-01-05 19:44:38 UTC

9994eb8a5e72ff68ee2a13ddeff8d9307ba7cd84 の変更の修正で irb の複数行編集で同じ行に開きブラケットが複数並ぶときのインデント深さの計算も修正しています。

[f8ea2860b0] aycabta 2020-01-12 13:24:17 UTC

標準添付ライブラリ reline で Windows 環境で入出力の Encoding と Encoding.default_external が一致しないという問題があるらしくて Reline::Core の生成時に Encoding 指定できるようにして Reline::IOGate.encoding によって指定できるようにしています。 Reline::ANSI では Encoding.default_external ですが Reline::Windows では Encoding::UTF_8 に固定しています。

[a2638c0d87] aycabta 2020-01-13 09:26:32 UTC

irbIRB.set_encoding から @CONF[:ENCODINGS] への設定を削除しています。もう使ってないとのこと。

[8c3efa4940] aycabta 2020-01-14 06:40:03 UTC

irbhistory ファイルの読み込み時の external encoding の指定に存在すれば IRB.conf[:LC_MESSAGES].encoding を利用するようにしています。