ruby-trunk-changes r48074 - r48096

今日も unicode_normalize 関係のテストやビルドの変更の他、NaCl版で nacl_io をサポートするようにする変更や Etc.nprocessors の Linux でのメモリ使用量効率化などがありました。

nobu: r48074 2014-10-21 22:48:05 +0900

r48072 で追加した lib/unicode_normalize/tables.rb を自動生成するのでやっぱり消しています。

nobu: r48075 2014-10-21 22:48:16 +0900

common.mk で enc/unicode/data/*.txt にダウンロードしてくるファイルを UNICODE_FILES として変数にまとめています。あと r48069 で導入した after-configure というターゲットはやっぱりやめて after-update で処理するようにしています。

kazu: r48076 2014-10-22 00:02:05 +0900

r48059 の ChangeLog エントリの typo 修正。

svn: r48077 2014-10-22 00:02:17 +0900

version.h の日付更新。

yugui: r48078 2014-10-22 00:23:21 +0900

NativeClient の nacl_io という機能? ライブラリ? を利用できるようにしています。 nacl_io で検索するとこんなページがヒットしますね。 https://developer.chrome.com/native-client/devguide/coding/nacl_io ちゃんと読んでませんが、システムの実際のファイルシステムにアクセスするわけではなくて、http やメモリ上のストレージを fs としてアクセスできるようにするものっぽいですね。ruby での変更は主にビルドプロセス関係のものだけですが。

svn: r48079 2014-10-22 00:23:35 +0900

r48078 の行末の空白除去。

kosaki: r48080 2014-10-22 03:46:33 +0900

r47939 で拡張ライブラリ etc の Etc.nprocessors で affinity 設定を考慮したコア数を返すようにした変更で、sched_getaffinity(2) に渡すバッファをでかく取って渡していたのを、実際にそんなに大量のコア数を持つシステムは稀なので小さく(32コアx2 で 64 から)スタートして足りなかったら倍々で増やしてリトライするようにしています。

kosaki: r48081 2014-10-22 03:46:46 +0900

拡張ライブラリ etc の Etc.nprocessors の Linux での affinity 考慮部分のコメントの文法修正。

kosaki: r48082 2014-10-22 03:48:03 +0900

r48080 でリトライのためのループの上限に等号が入ってなくてバッファサイズを最大値まで試さない状態だったので修正しています。

yugui: r48083 2014-10-22 09:32:03 +0900

r48078 での NativeClient 版での nacl_io の追加に伴なって起動時に fd=0,1,2 (標準入力、標準出力、標準エラー出力)の準備などの初期化処理を追加しています。

duerst: r48084 2014-10-22 18:00:04 +0900

unicode_normalize のテストを https://github.com/duerst/eprun/ から移植してきています。 Encode.default_external, default_internal を変更してるのでこのままだとちょっとまずそうですが、EnvUtil を使って書き直せばいいはず……。

duerst: r48085 2014-10-22 18:06:49 +0900

r48084 で追加したテストの不要な require の削除やメソッド名の変更追随など。

duerst: r48086 2014-10-22 18:12:14 +0900

同じく r48084 で追加したテストの NormalizationTest.txt のパスを ruby リポジトリにあわせて修正。

usa: r48087 2014-10-22 18:14:24 +0900

r48086 でのファイルパスの修正をソースディレクトリ以外でのビルド&テストに対応するように再修正しています。

nobu: r48088 2014-10-22 18:55:41 +0900

r48058 で common.mk で定義されると常に unicode のデータファイルを更新確認しようとするようにした変数ですが、コメントアウトされていたのは、環境変数や make の引数で設定できるようにするためということをコメントで追記しています。 なるほどー make の変数は環境変数が自動的に参照できるから…。

duerst: r48089 2014-10-22 19:18:20 +0900

tool/unicode_norm.gen.rb で String#sub の置換結果の文字列でマッチした文字列を参照する "\&" を使っているのにシングルクオート文字列を使っていたため展開されていなかったので、ダブルクオート文字列リテラルにして、バックスラッシュによるエスケープを増やしています。んん、これでいいのかな、1ペア多いような気が……。いや、これで生成した文字列を *.rb ファイルに Rubyスクリプトの一部として出力するから1段多いのかな……エスケープ地獄ですね。

nobu: r48090 2014-10-22 19:55:13 +0900

r48084 で追加したテストの先頭で Encoding.default_external と Encoding.default_internal をグローバルに変更しているのを、他のテストにも影響してしまうので消しています。

usa: r48091 2014-10-22 20:00:14 +0900

lib/unicode_normalize に再び tables.rb を無視させるように svn:ignore property を設定しているようです。

usa: r48092 2014-10-22 20:03:23 +0900

r48084 で追加されたテスト NormalizationTest.txt を読む時に open のオプションでエンコーディングutf-8 に設定して読み込むようにしています。

duerst: r48093 2014-10-22 20:33:36 +0900

r48088 で追記した common.mk のコメントの英語の文法修正。

yugui: r48094 2014-10-22 21:19:16 +0900

configure の --with-static-linked-ext オプションつきの時の $(EXTSTATIC) を make build-ext で exts.mk を起動する時に伝播させるようにしています。

yugui: r48095 2014-10-22 21:19:21 +0900

r47872 での PNaCl サポートの時の configure.in の typo 修正やコンパイラフラグ追加、libnacl_io のビルドのために c++ stdlib が必要なそうでコンパイラに clang++ を利用するように nacl/GNUmakefile.in に追記したりなど。

usa: r48096 2014-10-22 21:33:36 +0900

make srcs しないと lib/unicode_normalize/tables.rb が生成されなかったので prelude.c の依存関係に $(LIB_SRCS) を追加して make all で生成されるようにしています。