ruby-trunk-changes r47867 - r47885

今日は主に NaCl (NativeClient) 向けの修正がありました。

nobu: r47867 2014-10-10 23:20:20 +0900

r47866 で __builtin_choose_expr_constant_p() を使ったところ gcc 4.8 以前だと第1引数の定数として __builtin_constant_p() を受け付けてくれなかったそうなので、 configure でチェックして使うようにしています。

nobu: r47868 2014-10-10 23:31:37 +0900

r47867 の続き。 thread.c でチェック結果のマクロの参照を修正しています。

normal: r47869 2014-10-11 04:15:56 +0900

標準添付ライブラリ open-uri のオプションに :open_timeout というのを追加して、Net::HTTP#open_timeout にセットして socket の connect(2) のタイムアウトをつけられるようにしています。これまでも :read_timeout というオプションはありましたが connect(2) のほうはなかったのですね。 [ruby-core:65594] [Feature #10361]

svn: r47870 2014-10-11 04:16:07 +0900

version.h の日付更新。

zzak: r47871 2014-10-11 09:33:08 +0900

拡張ライブラリ socket の UNIXSocket の rdoc 用コメントのサンプルコードのセクションの見出しの追加や英文法の修正など。 https://github.com/ruby/ruby/pull/733

yugui: r47872 2014-10-11 11:11:53 +0900

NaCl (NativeClient)のサポート用のパッチをマージしています。 元パッチはこちら https://chromium.googlesource.com/external/naclports.git/+/873ca4910a5f9d4206306aacb4ed79c587c6a5f3/ports/ruby/nacl.patch からきているそうです。

  • PNaCl (Portable NativeClient といって、VM 上で LLVM の bit code を動かす技術が出てきたようです)上でのビルドのサポート追加
  • dlopen(3) が使えるようになったので dln.c の NaCl 専用処理の削除
  • socket が使えるようになったので NaCl 専用のコードの削除

などなど。 NaCl も開発が進んで進化しているんですねぇ。

yugui: r47873 2014-10-11 11:12:00 +0900

NaCl ではシグナルハンドラの設定がサポートされていないそうなので NaCl では install_sighandler() や init_sigchld() のマクロ定義をやめてエラーを無視するようにしています。

yugui: r47874 2014-10-11 11:29:00 +0900

r47872 と r47873 の ChangeLog エントリの追記と、r47873 でおそらく意図せず入ったマクロの #undef を削っています。

yugui: r47875 2014-10-11 12:35:18 +0900

configure.in の修正で PNaCl 用のビルドを naclports のソースツリーの外でもビルドできるようにしているそうです。

nobu: r47876 2014-10-11 12:57:46 +0900

r47875 の変更でかっこの消し忘れの修正。

nobu: r47877 2014-10-11 13:46:42 +0900

キーワード引数に Hash オブジェクトを **kw のように splat して渡す時に、既に明示的なキーワード引数で渡した引数と同名のものを **kw で上書きされなかったのを、明示的なキーワード引数と同様に上書きできるように修正しています。 [ruby-core:65368] [Bug #10315]

nobu: r47878 2014-10-11 13:46:56 +0900

r47877 の続きで **kw のようなキーワード引数のテストの修正や、キーワード引数のmerge処理を直接 st_table を操作していたのを rb_hash_aset() を使うように修正しています。 [ruby-core:65368] [Bug #10315]

nobu: r47879 2014-10-11 13:47:06 +0900

パーサでキーワード引数のパース時に重複したキーワード引数があったら検出して警告を出すようにしています。 [ruby-core:65368] [Bug #10315]

normal: r47880 2014-10-11 15:02:42 +0900

rb_str_intern() の不要な RB_GC_GUARD() の削除。

normal: r47881 2014-10-11 15:33:58 +0900

iseq_build_from_ary_exception() で RB_GC_GUARD() の呼び出しを、保護したい関数呼び出しの後に移動しています。また文字列フォーマットの時に PRIsVALUE を用いて RB_GC_GUARD() を不要にして消したりしています。

yugui: r47882 2014-10-11 22:33:14 +0900

PNaCl (Portable NativeClient) のビルドエラーの修正だそうです。

yugui: r47883 2014-10-11 22:33:19 +0900

ext/extmk.rb で生成する Makefile に ext/extinit.o のターゲットを追加するようにして、クロスコンパイル時のエラーを修正しているそうです。

yugui: r47884 2014-10-11 22:33:27 +0900

NaCl でのビルドエラーの修正。stat() の utime が NaCl で未サポートらしく、NaCl の時に削っています。

svn: r47885 2014-10-11 22:33:36 +0900

r47884 の行末の空白除去。