ruby-trunk-changes r57698 - r57707

今日は単項演算子の String#-@ が fstring を使うようにする変更や Integer.sqrt という整数の平方根を求めるメソッドの追加などがありました。

normal: r57698 2017-02-24 10:01:23 +0900

String#-@ つまり単項演算子の - を文字列につけた時に dup+freeze するかわりに rb_fstring() を呼び出すようにしています。これにより頻繁に利用する文字列はオブジェクトの slot を消費を抑えることができるように…とはいえリテラルなら "str".freeze で fstring 化できたと思うので、リテラル以外だと思うので、そんなにあるのかなぁ。という声を予想してかコミットログに詳しく use case が挙げられています。 [ruby-core:79663] [Feature #13077]

svn: r57699 2017-02-24 10:01:24 +0900

version.h の日付更新。

hsbt: r57700 2017-02-24 15:32:48 +0900

拡張ライブラリ psych を 2.2.3 に更新しています。 本体は変数名の spell の修正だけで、あとは gemspec ファイルで version を定数から取得するのをやめる変更などです。

hsbt: r57701 2017-02-24 15:48:55 +0900

拡張ライブラリ gdbm の gemspec ファイルを追加して default gem 化しています。 [ruby-core:79742] [Feature #13248]

hsbt: r57702 2017-02-24 15:50:43 +0900

fcntl の gemspec ファイルで gem 名が Fcntl になっていたので fcntl に修正しています。

hsbt: r57703 2017-02-24 16:39:37 +0900

標準添付ライブラリ rdoc を 5.1.0 に更新しています。 ChangeLog はこちら https://github.com/rdoc/rdoc/blob/master/History.rdoc#510--2017-02-24 parse 時に認識するタグ名の typo 修正や Windows でのエンコード関係の不具合修正などがあったみたいです。

hsbt: r57704 2017-02-24 16:55:50 +0900

doc/maintainers.rdoc と doc/standard_library.rdoc の r57701 で default gem 化した gdbm についての記述を移動しています。 [ruby-core:79742] [Feature #13248]

nobu: r57705 2017-02-24 17:36:16 +0900

Integer.sqrt という整数の平方根を求めるメソッドを追加しています。 うーんなぜそんなものが必要なのか、と思いましたが、とても桁数の大きい整数の平方根を求めようとすると浮動小数点数を経由すると精度が足りなくて変換する時点で情報が落ちてしまうので正確な値(結果が整数である場合でも)にならないという問題があり、それを回避するために専用の実装が必要だったということみたいです。なるほどー。 いつもの "Learn floating point." にならなかったということはなにか有力なユースケースが示されたのだと思いますが、チケットがとても長くてそれについてはよく読んでいません。 [ruby-core:79623] [Feature #13219]

nobu: r57706 2017-02-24 18:39:17 +0900

r57705 の続き。 Integer.sqrt に引数が整数であることのチェックを追加しています。 [ruby-core:79623] [Feature #13219]

rhe: r57707 2017-02-24 20:33:06 +0900

r57384 で SecureRandom.raw_seed を SecureRandom.urandom に改名してましたが、Random.gen_random_openssl で raw_seed のほうをまだ呼んでいるところが残っていたので Random.urandom のほうを呼ぶように修正しています。 [ruby-core:61094] [Bug #9569]