ruby-trunk-changes r67016 - r67024

今日は Enumerable#tally という新メソッドの追加などがありました。

kazu: r67016 2019-02-07 15:56:13 +0900

tool/test/test_jisx0208.rb で相対パスの require してたのを require_relative に修正しています。というかこのファイルなんだろ…。ファイル名通り tool/jisx0208.rb のテストなのか。

svn: r67017 2019-02-07 15:56:15 +0900

version.h の日付更新。

nobu: r67018 2019-02-07 16:39:47 +0900

String#chop や String#chop! で操作後の文字列バッファサイズを返すための関数 chopped_length() で元が空文字列だった時にすぐ 0 を返すようにする最適化をしています。 [ruby-core:70096] [Bug #11391]

nobu: r67019 2019-02-07 17:14:09 +0900

enum.c の enum_to_h_i() や enum_group_by() からコールバックを呼びつつ Hash を更新して返す処理を enum_hashify() という関数に切り出すリファクタリング

nobu: r67020 2019-02-07 17:14:10 +0900

Enumerable#tally という新メソッドが追加されています。 これは要素をキーとして同じ要素の個数を値とする Hash を返すというメソッドです。おおー、これはちょっとした集計をするのに便利そう。よく group_by してから配列のサイズを計算するのやりますからね。 r67019 で切り出した enum_hashify() を使っています。 tally には数をかぞえるというような意味があるようです。 [Feature #11076]

svn: r67021 2019-02-07 17:14:12 +0900

r67020 のインデントのタブを空白に展開。

nobu: r67022 2019-02-07 17:53:11 +0900

util.c から dtoa() の代替実装を missing/dtoa.c に切り出しています。

nobu: r67023 2019-02-07 17:53:12 +0900

同じく random.c から メルセンヌツイスターの実装(MT19937)の関連の構造体や関数を missing/mt19937.c に切り出してます。missing/ に置かれてるけどこれはシステムライブラリとかにあるわけではないですよね。

nobu: r67024 2019-02-07 17:53:13 +0900

同じく vm_dump.c から procstat_vm() の実装を missing/procstat_vm.c に切り出しています。ここまでの 3つは、ライセンス的に外からもらってきたソースコードはファイルを分けよう、ということみたいですね。