Hatena::ブログ(Diary)

PB memo このページをアンテナに追加 RSSフィード

2015-03-30 ruby-trunk-changes r50115 - r50125

[][]ruby-trunk-changes r50115 - r50125

今日は IO.copy_stream に Tempfile など IO と類似のメソッドをもつオブジェクトを渡した時の対応の変更や Windows 環境でのシンボリックリンクの対応の修正などがありました。

nobu: r50115 2015-03-30 07:35:45 +0900

rubygems のテスト用のスクリプトで make コマンドを指定する環境変数として小文字の make を利用していたので MAKE を参照するように変更しています。

svn: r50116 2015-03-30 07:36:28 +0900

version.h の日付更新。

nobu: r50117 2015-03-30 09:50:47 +0900

r50115 で環境変数 MAKE を参照するようにしましたが、互換性のため make も参照するようにしています。

nobu: r50118 2015-03-30 11:28:02 +0900

IO.copy_stream で引数が IO オブジェクトでない場合でも src なら read と readpartial メソッドが呼び出せれば、dst なら write メソッドが呼び出せればそのまま利用し、to_path でファイルパスを取得して fd を開き直さないようにしています。 Tempfile オブジェクトを IO.copy_stream に渡した時に別途 fd を開かなくてすむようにしているようです。 [ruby-core:68676] [Bug #11015]

nobu: r50119 2015-03-30 14:27:21 +0900

r50063 で追加した Windows 版の rb_readlink() で mbstr_to_wstr() で wide char 文字列に変換する時に終端文字のぶんもサイズを考慮するようにしています。

nobu: r50120 2015-03-30 14:42:44 +0900

Windows 環境でファイルシステムメタデータUnix 流の mode に変換する時に、ディレクトリであるかどうかより REPARSE POINT によるシンボリックリンク判定のほうを優先させるようにしています。

nobu: r50121 2015-03-30 15:24:40 +0900

r49932 での T_IMEMO オブジェクトの導入に追随して error.c の builtin_types() の宣言を修正しています。どこで使ってるかなとみてみると、なるほど、Marshal でもオブジェクト型の名前が利用されているんですね。

naruse: r50122 2015-03-30 16:36:54 +0900

Sparc 上の Solaris では vfork(2) は deprecated で警告が出るそうで(i386-solaris は違うそうですが)、vfork(2) を利用しないようにしています。

naruse: r50123 2015-03-30 18:27:15 +0900

と、思ったらなんと fork(2) も deprecated で警告が出るそうなので r50122 を revert しています。 fork(2) も vfork(2) もダメって一体…。posix_spawn(2) を使えというのが正解みたいですね。まあ、正しいですね。

kazu: r50124 2015-03-30 22:08:16 +0900

r50090 で r50077 および r50081 で改名された README.EXT を復活させて移動先を示すようにしていましたが、README.EXT.ja も復活させて日本語版の移動先も書いておくようにしています。 [ruby-core:68631]

svn: r50125 2015-03-30 22:09:01 +0900

r50124 で復活した README.EXT.ja の svn property 設定。

2015-03-29 ruby-trunk-changes r50108 - r50114

[][]ruby-trunk-changes r50108 - r50114

今日は Proc#binding の不具合修正がありました。

nobu: r50108 2015-03-29 11:47:24 +0900

vm.c の vm_make_env_each() で env->env へコピーするのにループを回していたのを MEMCPY() を利用するようにしています。

nobu: r50109 2015-03-29 11:47:36 +0900

test/ruby/test_proc.rb のテストメソッド名を test_binding2 → test_curry_binding と改名。

svn: r50110 2015-03-29 11:47:38 +0900

version.h の日付更新。

nobu: r50111 2015-03-29 11:51:34 +0900

Method オブジェクトを to_proc した Proc オブジェクトから binding で取得した Binding オブジェクトの Binding#local_variable_get すると SEGV することがある不具合を修正しています。 Proc#binding で env をコピーするようにしています。 [ruby-core:68673] [Bug #11012]

nobu: r50112 2015-03-29 13:49:57 +0900

r50111 の再修正。 rb_method_get_iseq() が NULL だった時には env をコピーしないようにしています。 [ruby-core:68673] [Bug #11012]

kazu: r50113 2015-03-29 19:03:24 +0900

r50064 と r50075 の ChangeLog エントリの typo 修正。

hsbt: r50114 2015-03-29 21:08:43 +0900

gc.c の関数名の typo 修正。 objspaec_allrefs_destruct_i() → objspace_allrefs_destruct_i()。 [Bug #11013]

2015-03-28 ruby-trunk-changes r50101 - r50107

[][]ruby-trunk-changes r50101 - r50107

今日は拡張ライブラリ date の Solaris でのビルド修正や rb_iterate() のリファクタリングなどがありました。

nobu: r50101 2015-03-28 08:51:09 +0900

rb_imemo_new_debug() の利用を呼び元で IMEMO_DEBUG の定義で preprocessor で分岐していたのを、internal.h の定義部分でマクロによって切り替えるようにしています。また rb_imemo_new_debug() で T_IMEMO 型オブジェクトの生成に rb_imemo_new() を呼ぶようにしています。

nobu: r50102 2015-03-28 08:51:18 +0900

IFUNC_NEW() に現在のメソッドの mid を引数に追加して rb_iterate() で生成後にセットしていたのを吸収しています。 また rb_iterate() でブロックが渡された時だけ IFunc を生成するようにしています。

svn: r50103 2015-03-28 08:51:23 +0900

version.h の日付更新。

naruse: r50104 2015-03-28 09:23:58 +0900

拡張ライブラリ date の extconf.rb でコンパイラオプションに -std=iso9899:1999 を追加するようにしています。Solaris 10 でのビルドエラーの修正です。 INFINITY マクロの定義の有無にこのオプションが影響するそうです。 [ruby-core:68318] [Bug #10906]

naruse: r50105 2015-03-28 11:30:17 +0900

r50104 の再修正。 try_cflags だけでは利用可能かどうかチェックするだけで実際にオプションを追加しないので $CFLAGS に "-std=iso9899:1999" を追加しています。 [ruby-core:68318] [Bug #10906]

nobu: r50106 2015-03-28 14:22:04 +0900

rb_iterate() で TAG_BREAK と TAB_RETRY で TAG_JUMP してきた時の処理はほとんど同じなので、分岐を共通化するリファクタリング

nobu: r50107 2015-03-28 14:22:12 +0900

rb_iterate() から IFunc の生成部分と GET_THREAD() の呼び出しだけ残してあとを rb_iterate0() として別の関数に切り出しています。 gcc 4.4 での警告除去とのこと。 TH_EXEC_TAG() 後の変数の参照の "clobbered by 'longjmp' or 'vfork'" 警告でしょうか。

[追記]ifuncとth の未初期化変数の警告が出ていたそうです。[/追記]

2015-03-27 ruby-trunk-changes r50099 - r50100

[][]ruby-trunk-changes r50099 - r50100

今日はビルドプロセスの修正のみでした。

nobu: r50099 2015-03-27 16:34:18 +0900

r50093 で enc.mk を生成するための enc/make_encmake.rb の実行に $(BOOTSTRAPRUBY) を利用するようにした変更を revert しています。 enc/depend が RbConfing::CONFIG を利用しているので $(BASERUBY) を使えなかったとのこと。 [ruby-core:68647] [Bug #11004]

svn: r50100 2015-03-27 16:35:28 +0900

version.h の日付更新。

2015-03-26 ruby-trunk-changes r50090 - r50098

[][]ruby-trunk-changes r50090 - r50098

今日はドキュメントやテストやビルド用のツールなどの細かな変更だけでした。

normal: r50090 2015-03-26 06:43:58 +0900

r50077 および r50081 で改名された README.EXT を復活させて、doc/extension.rdoc に移動されたよと注意書きを残すようにしています。 README.EXT に拡張ライブラリを書く時の情報があるよっていうのは割と知られたことなので、誘導のために置いておくようにしています。 [ruby-core:68631]

svn: r50091 2015-03-26 06:44:23 +0900

version.h の日付更新。

svn: r50092 2015-03-26 06:46:59 +0900

r50090 で復活させた README.EXT の svn property 設定。

nobu: r50093 2015-03-26 09:29:56 +0900

enc.mk を生成する時に $(MINIRUBY) ではなく $(BOOTSTRAPRUBY) を利用するようにしています。 enc/make_encmake.rb は $(BASERUBY) で実行してもかまわなかったようです。

nobu: r50094 2015-03-26 09:30:07 +0900

tool/mkconfig.rb での RUBY_VERSION のチェックで version 変数に teeny が含まれていなかった時のことを考慮するようにしています。teeny まであったらその直前の "." までチェックするようにしてたのですが、teeny がない時はその前の "." もないので、その時は version が RUBY_VERSION の先頭と一致するかで判定するようにしています。

hsbt: r50095 2015-03-26 10:05:18 +0900

標準添付ライブラリ observer の Observable のテストを追加しています。なんだか懐しいですね Observable…。 https://github.com/ruby/ruby/pull/859

svn: r50096 2015-03-26 10:05:22 +0900

r50095 で新規追加したファイルの svn property 設定。

nobu: r50097 2015-03-26 15:30:15 +0900

.gdbinit の rp コマンドの定義で r49932 で導入された T_IMEMO 型のオブジェクトの表示に対応しています。T_IMEMO はいろいろな目的で使われてますがとりあえず type と VALUE の配列として表示しています。

nobu: r50098 2015-03-26 15:50:57 +0900

.gdbinit に rp_imemo コマンドの定義も追加して、rp で type 毎によりわかりやすい表示をするようにしています。