ruby-trunk-changes r32673 - r32702

今日は BigDecimal の変換メソッドの追加や変更、余分な Symbol の抑制する修正の追加、RubyGemsl 1.8.6.1 のマージなどがありました。

shyouhei:r32673 2011-07-26 23:37:09 +0900

Array#compact! の rdoc の typo 修正。

mrkn:r32674 2011-07-27 00:40:23 +0900

BigDecimal を生成するメソッド Kernel#BigDecimal() が BigDecimal を引数に受け付ける(複製を返す)ようにしています。そのために VpDup という関数を追加しています。 [ruby-dev:44245]

svn:r32675 2011-07-27 00:40:27 +0900

version.h の日付更新。

mrkn:r32676 2011-07-27 00:40:27 +0900

BigDecimal#to_d の定義を追加しています。これは複製せずに self を返す。 [ruby-dev:44245]

mrkn:r32677 2011-07-27 00:46:42 +0900

BigDecimal への変換を行なう Integer#to_d メソッドを追加しています。 [ruby-dev:44210] [Bug #5098]
to_d で BigDecimal へ変換。ちょっと憶えるのに苦労しそうですが BigDecimal は値として big とは限らないので Decimal に変換と憶えましょう。

nobu:r32678 2011-07-27 00:48:16 +0900

新規追加されたファイルの svn property の変更。

mrkn:r32679 2011-07-27 00:48:25 +0900

Float#to_d に省略可能な引数として精度桁数を受け付けるようにしています。 [ruby-dev:44210] [Bug #5098]

mrkn:r32680 2011-07-27 00:49:47 +0900

Rational#to_d は元々省略可能な引数を受け付けていましたが、0 や負の数を渡されてもデフォルトの精度で変換していたのを ArgumentError を発生させるようにしています。 Rational#to_d の引数が省略可能だったのが省略不可になっています。がこれは戻されるかもしれません。 [ruby-dev:44210] [Bug #5098]

nobu:r32681 2011-07-27 00:53:03 +0900

新規追加されたファイルの svn property の変更。

nobu:r32684 2011-07-27 01:05:27 +0900

不要なシンボル生成の抑制の修正で追加した rb_check_id() という関数の引数を VALUE から volatile VALUE * とポインタ型に変更して、内部で String への変換が行なわれた時に呼び元の VALUE も変換後の String オブジェクトを指すようにしています。 [ruby-core:38447] [Feature #5089]

nobu:r32685 2011-07-27 01:05:30 +0900

不要なシンボル生成の抑制の修正で respond_to? メソッドで指定された文字列に対応するシンボルがまだ存在していない時に false を返していましたが、1.9(1.9.2から?)は respond_to_missing? というフックメソッドで method_missing で処理するつもりなので true を返すという処理を追加できるので、そのケアを追加しています。 respond_to_missing? が定義されていた場合は結局シンボルを生成します。 [ruby-core:38417] [Feature #5072]

nobu:r32686 2011-07-27 01:05:35 +0900

不要な Symbol の生成を抑制する修正、さらに remove_method, undef, alias, private, protected, public, autoload, const_get などでも文字列を引数に渡された時には Symbol が登録済みか先にチェックすることで不要な Symbol を生成しないようにしています。 [ruby-core:38447] [Feature #5089]

nobu:r32688 2011-07-27 01:17:24 +0900

vm_method.c で不要になった変数を削除しています。

emboss:r32690 2011-07-27 09:31:43 +0900

拡張ライブラリ openssl の OpenSSL::PKCS12 のテストを追加しています。 [ruby-core:32088] [Feature #3793]

drbrain:r32693 2011-07-27 10:40:07 +0900

RubyGems 1.8.6.1 がマージされています。変更されたファイル数は多いですが、ほとんどは先頭の"このファイルはrubygemsリポジトリで変更するべし"というコメントが消えてるだけで、YAML の実装が Pyck の時の Pyck の不具合の workaround や File::ALT_SEPARATOR が存在したら File::SEPARATOR のかわりに利用するようにするなどの修正とリファクタリング、テストの追加など変更はあまり多くありません。

nobu:r32695 2011-07-27 11:04:39 +0900

test/ruby/test_symbol.rb で %w{ } の中のバッククオート記号が ruby-mode.el で問題があるみたいでエスケープを前置しています。しかし %w{ } の中に "\" を書くとそのまま挿入されてしまうんじゃないでしょうか。と思ったらやっぱり TestSymbol#test_inspect が Failure になっていますね。

nobu:r32696 2011-07-27 11:04:51 +0900

vm_dump.c で VMDEBUG というデバッグ用マクロが未定義の時に 0 で定義するようにしています。 #if で判定しているので定義がないと警告が出るようです。

drbrain:r32697 2011-07-27 12:33:45 +0900

rubygems の uninstall コマンド処理で require "rubygems/installer" が抜けていたのを追加。その他テストの修正など。削除しているテストはいいのだろうか。 [ruby-core:33216] [Bug #4062]

naruse:r32699 2011-07-27 14:21:33 +0900

psych のテストで YAML のエンジンを Syck に設定する時に ::Syck という表記を利用するようにしています。 RubyGems の変更で YAML::Syck が定義されるようになったのでここで Syck と書くと YAML::Syck を参照してしまうのでトップレベルの Syck を使うようにしています。

drbrain:r32700 2011-07-27 15:44:39 +0900

BasicObject についての rdoc を追加しています。 BasicObject の用途とか。また const_missing による定数探索(BasicObject からは通常どこからでも見つかる Object の定数が見えません)の workaround の例が入ってます。 [ruby-core:38337] [Bug #5067]

naruse:r32702 2011-07-27 17:58:38 +0900

Mac OS X では __syscall は存在はするけどヘッダで宣言されていないという状態なので include/ruby/missing.h で定義を追加しています。 defined(__syscall) で判定してるってことは他のプラットフォームだとマクロで定義されているんでしょうか。