ruby-trunk-changes r29484 - r29497

今日も盛んにコミットされております。さっそくいきます。

xibbar:r29484 2010-10-13 22:39:13 +0900

CGI.unescape のマルチバイト文字列の処理の不具合修正。ASCII-8BIT に変換してから処理しています。[Bug #3909]

nobu:r29485 2010-10-13 22:51:20 +0900

昨日のコミットと同じく st_table のキーの型として VALUE を使っていたところを正しく st_data_t に変更しています。

nobu:r29486 2010-10-13 22:53:22 +0900

check_uint において VALUE_MSBMASK が LLP64 なプラットフォームでオーバフローするので修正。C の 1L というリテラルだと long 型で LLP64 だと VALUE 型より幅が小さい。

nobu:r29487 2010-10-13 23:07:22 +0900

printf フォーマット文字列の指示子の修正再び。

nobu:r29488 2010-10-13 23:08:29 +0900

Windows 版バックトレース取得のコードでキャスト不足による警告除去。

nobu:r29489 2010-10-13 23:16:49 +0900

警告除去、とのことですが

#define long size_t

こんな感じです。本当はこのソース内を全部おきかえたほうがいいんでしょうけどね。

naruse:r29490 2010-10-14 04:17:49 +0900

Numeric#step の第2引数に Float::Infinit の正負の値を指定した時に実行されないはずのブロックが呼ばれる不具合を修正。[ruby-core:32779]
ついでにテストの警告除去も含まれているようです。

svn:r29491 2010-10-14 04:17:51 +0900

version.h の日付変更。

nobu:r29492 2010-10-14 07:22:18 +0900

"(st_data_t*)&vv" こんな感じのキャストは gcc では警告になるので変数に格納してキャストするようにしています。

naruse:r29493 2010-10-14 08:09:56 +0900

dev_t の型のサイズを configure で検出して環境による差異を意識して扱うようにしています。dev_t って Unix でデバイスファイルの major 番号、 minor 番号を格納する型ですよね。環境によってサイズが異なるんですね……。

naruse:r29494 2010-10-14 09:09:07 +0900

dev_t は unsigned だったので追加修正。

suke:r29495 2010-10-14 20:56:10 +0900

win32ole の reg_get_val(おそらくレジストリからの値の取得)でファイルパス内に埋め込まれている環境変数の展開処理を追加。[Bug #3907]

naruse:r29496 2010-10-14 22:12:56 +0900

Array#pack の指示文字に環境依存の型のエンディアン指定ができないので機能追加。'<' と '>' というのを型を指示する文字に付けて指定します。[ruby-dev:42376]
また q, Q の指定子に ! で環境依存のサイズ(long long 型のサイズ)を指定する追加もここでされています。

ko1:r29497 2010-10-14 22:19:30 +0900

VM のソースの各所で rb_iseq_t 型の変数名や仮引数名に ip を使っていたところを iseq に変更しています。変数名の変更だけです。

今日もキャストや型に絡む変更が多かったですね。これも clang での解析の成果でしょうか。