ruby-trunk-changes r29721 - r29737

今日もたくさんコミットがあります。しかし大半は警告除去などです。さくさくいきますね。

marcandre:r29721 2010-11-09 05:57:56 +0900

ここから r29726 までは標準添付ライブラリの代入されているけど利用されていないローカル変数/ダイナミック変数の警告除去です。

lib/minitest/mock.rb の警告除去。

svn:r29722 2010-11-09 05:57:58 +0900

version.h の日付更新。

marcandre:r29723 2010-11-09 05:58:12 +0900

lib/rake/*.rb の警告除去。

marcandre:r29724 2010-11-09 05:58:28 +0900

lib/rdoc/*.rb の警告除去。

marcandre:r29725 2010-11-09 05:58:42 +0900

lib/rubygems/* の警告除去。

marcandre:r29726 2010-11-09 05:59:01 +0900

残りの標準添付ライブラリの警告除去をまとめて。[ruby-core:30991]

nobu:r29727 2010-11-09 07:28:17 +0900

util.c の ruby_strtod の警告除去。おそらく nd を if 節側でしか初期化していなくて else 側では代入されていないのを if-else から抜けた後で利用しているというあたりがまずかったのではないかと。しかし else で goto しているので実際の動作には問題ないですね。

nobu:r29728 2010-11-09 07:30:20 +0900

SystemCallError を生成する C の API の別バージョンを追加。errno からエラー種別を取るのではなくて引数として errno として扱う番号を直接指定できる関数を追加しています。

naruse:r29729 2010-11-09 10:57:49 +0900

Float で x86 の FPU の精度からくる誤差の問題に対処。x86 では浮動小数点数はプロセッサ上は 80bit の精度で演算していて、これが誤差の原因になることがあります。ここでは volatile double と宣言した変数に一旦格納することで一旦メモリ上(64bit表現)に強制的に戻すことで問題を回避しています。[ruby-dev:42551]
参考リンク:[ruby-math:00802]
http://www.shudo.net/java-grandprix99/strictfp/

ちなみに gcc だと -ffloat-store というオプションをつけることで演算のたびにメモリに書き戻させることで対処できます。遅くなりますけど。昔ちょっとシミュレータやってた時にこの誤差問題には悩ませられました。

naruse:r29730 2010-11-09 13:22:25 +0900

r29729 のテストの修正。

usa:r29731 2010-11-09 13:30:15 +0900

昨日のリファクタリングで作成した関数の引数の型が 64bit 版で警告が出るのを対策。

naruse:r29732 2010-11-09 16:36:33 +0900

昨日追加された正規表現のプロパティ(/\p{...}/)の名前は大文字小文字を無視するように修正。[ruby-core:33000]

naruse:r29733 2010-11-09 19:14:47 +0900

r29732 の修正に型キャストを追加して警告除去。

nobu:r29734 2010-11-09 21:13:06 +0900

一昨日追加した export したシンボルの頭に "_" がつくことがあるのを configure でチェックする処理は、より一般的にシンボルの prefix が何か付いていたらそれを検出するように修正されているようです。

nobu:r29735 2010-11-09 21:14:58 +0900

getpgrp, setpgrp の関数チェックは必要な時だけするように。

nobu:r29736 2010-11-09 21:57:51 +0900

gc.c - after_gc_sweep で利用されていないローカル変数を削除。

nobu:r29737 2010-11-09 21:57:53 +0900

dln.c で拡張ライブラリをロードして呼び出すエントリポイントの関数名(Init_???)を作るところで余分なメモリ確保しなくて済むようにしています。