ruby-trunk-changes r33181 - r33195

今日は Float#round の修正とデグレ、ドキュメント類の文字エンコーディングの変更などがありました。

shyouhei:r33181 2011-09-04 21:22:46 +0900

README.ja などの日本語のドキュメント類の文字エンコーディングEUC-JP から UTF-8 に変更しています。 [Feature #5128]
EUC から UTF-8ChangeLog にはありますが insns.def (Shift-JIS から UTF-8 へ) の変更も入ってます。

shugo:r33182 2011-09-04 22:33:14 +0900

Net::IMAP に default_imap_port, default_tls_port (alias として default_ssl_port, default_imaps_port) といった、デフォルトのポート番号を返すクラスメソッドを追加しています。 Net::POP に同様のメソッドがあるのでこちらにも追加したそうです。 [ruby-core:38997] [Bug #5198]
これは NEWS にも追記したほうが良さそうですね。

marcandre:r33183 2011-09-05 04:28:54 +0900

Integer#round が Float を返す可能性があったのを修正しています。 int_pow() が Float を返すことがあるので、0 を返すようにしています。またオーバフローのチェックをする if 文も挿入されています。 [ruby-core:39261] [Bug #5271]

svn:r33184 2011-09-05 04:28:58 +0900

version.h の日付更新。

marcandre:r33185 2011-09-05 05:14:00 +0900

Integer#round の関数 int_round から処理の内容を int_round_0 に切り出しています。

marcandre:r33186 2011-09-05 05:14:29 +0900

そして Float#round が大きな数値と、引数で大きな丸め桁数を指定された時に正しく丸められず切り捨てになる不具合を修正しています。ここで切り出した int_round_0() を利用するようにしています。 [ruby-core:39264] [Bug #5272] しかしこの修正により 32bit 環境で大きな(Bignum になるような)数値を Float#round で丸めた時の結果がバグっているようです。 [Bug #5276]
Float#round って丸め桁数が非負の時は丸めた結果を Integer で返すんですね。なんとなく Float のままかと思ってました。

shyouhei:r33187 2011-09-05 10:06:25 +0900

r33181 で conflict していたテキストがそのまま入っていたところを解消しています。 [ruby-dev:44459]

nobu:r33188 2011-09-05 15:05:31 +0900

doc/rake/CHANGES のエンコーディング変更を revert しています。元々 UTF-8 だったみたいですね(日本語じゃないアクセント記号つきの人名が含まれていた)。 [Feature #5128]

naruse:r33189 2011-09-05 15:06:31 +0900

rubygems のテストで Gem::Security.build_self_signed_cert の :trust_dir オプションに ~/.gem/trust (正確には Gem.user_home を基にしたパス)を渡すようにしています。

nobu:r33191 2011-09-05 17:46:44 +0900

Float#round のテストでひとつのテストケース内でいくつもの数の round の結果をチェックしているので、assertion のエラー時のメッセージにどの数値の時にひっかかったのかを表示させるようにしています。

naruse:r33192 2011-09-05 18:05:13 +0900

ext/json/generator/generator.c のコメントにて、'i' の文字が U+0456 になっているところがあったので ASCII 文字に直しています。 [ruby-dev:44464] [Bug #5275]

nobu:r33193 2011-09-05 18:10:58 +0900

IO などの改行コードの変換モードを if 文の並列で書いていたところを switch 文に変更しています。モードはビットフラグで管理されていますがこれらは排他的に設定されるはずなので。

nagachika:r33194 2011-09-05 19:36:24 +0900

insns.def のエンコーディングSJIS から UTF-8 に変更されたため $BASERUBY に 1.9 の ruby を利用していると insns.def から各種 *.inc ファイルを生成するコマンドでエラーが発生していたのを修正。 -Ks オプションを指定していたので -Ku にしています。なんで -E を使わないのかというのは、おそらく BASERUBY に 1.8 の ruby を利用する可能性があるからでしょうね。 [Feature #5128]

nagachika:r33195 2011-09-05 21:02:30 +0900

insns.def の1行目に emacs 向けの文字エンコーディングを指定する pragma があって shift_jis のままだったので utf-8 に変更。