ruby-trunk-changes r48286 - r48301

今日は SPARC 上でメモリのアライメントの不十分で Bus Error になる不具合の修正などがありました。

kazu: r48286 2014-11-05 23:15:10 +0900

r48207、r48239、r48241、r48247 などの ChangeLogtypo 修正。

akr: r48287 2014-11-05 23:29:46 +0900

open-uri のテストでテスト用に立てる WEBrick によるサーバのログもキャプチャしてチェックするようにしています。

ngoto: r48288 2014-11-05 23:49:04 +0900

Solaris というか SPARC 上の gcc でアライメントが厳密でないといけなくて Bus Error が発生するので compile.c の compile_data_alloc() でのメモリ領域の取得時に適切に padding を詰めるようにしています。 [ruby-core:61715] [Bug #9681]

svn: r48289 2014-11-05 23:49:08 +0900

r48288 の変更の行末の空白除去。

duerst: r48290 2014-11-06 08:49:55 +0900

lib/unicode_normalize/normalize.rb のコメントをちょっと修正。バブルソートすると書いてあるけど厳密にはバブルソートではないらしい。

svn: r48291 2014-11-06 08:50:06 +0900

version.h の日付更新。

normal: r48292 2014-11-06 10:14:15 +0900

標準添付ライブラリ uriURI::RFC2396_Parser で Enumerable#map にブロック渡しで呼ぶかわりに &:freeze と Symbol をブロック引数として渡す記法に変更しています。 ISeq にコンパイルした時のサイズが削減できるらしいです。なるほど。

kazu: r48293 2014-11-06 12:55:48 +0900

r48285 と r48288 の ChangeLog エントリの typo 修正。

kazu: r48294 2014-11-06 12:55:53 +0900

r48283 の NEWS ファイルの typo 修正。

naruse: r48295 2014-11-06 14:46:43 +0900

r48278 の $(BASERUBY) が利用できるときだけ Unicode データを更新するようにする変更を revert しています。 lib/unicode_normalize/tables.rb が作れなくてビルドに失敗するそうです。

naruse: r48297 2014-11-06 19:42:10 +0900

re.c の unescape_nonascii() で char 型の変数とリテラル -1 の比較をしているところに明示的に char 型へのキャストを追加しています。 一部のCPUアーキテクチャgcc ではただの char が符号なしとして扱われるので、条件にマッチせず無限ループに陥る可能性があったそうです。なかなか難しいですな。

nobu: r48298 2014-11-06 19:53:04 +0900

r48295 で revert された r48278 を再度コミットしています。ぱっと見前回と同じ内容っぽいですね。問題なかったんですかね。

nobu: r48299 2014-11-06 19:53:17 +0900

tool/make-snapshot で HAVE_BASERUBY および BASERUBY をセットして make を実行するようにしています。

akr: r48300 2014-11-06 21:23:22 +0900

r48287 の続きというか強化だと思うのですが、open-uri のテストでダミーのサーバのログのキャプチャは常に実施するようにして、一部のテストケースでログが空であることを確認するようにしています。

akr: r48301 2014-11-06 21:45:15 +0900

test/test_unicode_normalize.rb で NormTest という定数をトップレベルに定義していたので、TestUnicodeNormalize というテストクラスにネストさせて定義するようにしています。