ruby-trunk-changes r43184 - r43199

今日は Time.strptime の "%s" の挙動の再修正とプロファイラ向けの C API の追加の続きなどがありました。

knu:r43184 2013-10-08 00:16:38 +0900

misc/ruby-additional.el にヘッダ、フッタのコメントと (provide 'ruby-additional) を追加しています。よく知りませんけど elisp で features にシンボルを登録するみたいです。

svn:r43185 2013-10-08 00:16:43 +0900

version.h の日付更新。

knu:r43186 2013-10-08 03:21:21 +0900

misc/ruby-mode.el のエンコーディングの設定を行う ruby-mode-set-encoding を新しい Emacs の機能を利用したりして改善しているみたいです。

knu:r43187 2013-10-08 04:03:03 +0900

misc/ruby-additional.el および misc/ruby-mode.el で coding-system :prefer-utf-8 が使えなかったら default-buffer-file-coding-system :coding-type を使うようにしています。書いててさっぱりわかっていませんが。

knu:r43188 2013-10-08 04:15:11 +0900

misc/ruby-additional.el と misc/ruby-mode.el の変更続き。条件分岐 cond の else 部が抜けてたので補っているみたいです。

knu:r43189 2013-10-08 04:29:41 +0900

r43182 と同様に misc/ruby-mode.el でも char-before を preceding-char に置き換えています。

drbrain:r43190 2013-10-08 05:41:59 +0900

.travis.yml の webhooks に設定を追加して、trunk のビルドが Travis CI で成功したら Travis CI で使っている ruby-head のバージョンを更新するようにしています。 ruby そのものがどうというのではなくて、Travis CI で ruby-head を対象にしているプロジェクトに最新の trunk の状態を常に反映させることができるようになるという変更です。素晴しいですね。 https://github.com/ruby/ruby/pull/417

akr:r43191 2013-10-08 06:00:12 +0900

標準添付ライブラリ time.rb の Time.strptime の指示子 "%s" の処理で "%z" なしで読み込んだ時は UTC ではなくてローカルタイムとして返すように再修正しています。 元の報告者の意図は "%s" は UTC になるべきということだったみたいですが、strptime(3) の記述に照らして特にタイムゾーンを指定するものではなかったので、過去の挙動に合わてローカルタイムを返すようにしたそうです。 [ruby-core:57694] [ruby-core:57711]

nobu:r43192 2013-10-08 10:44:45 +0900

cont.c の FIBER_USE_NATIVE の設定の #if の分岐に環境毎になぜ利用できないのかをコメントで書いておくようにしています。

kosaki:r43193 2013-10-08 11:14:21 +0900

cont.c の FIBER_USE_NATIVE の設定に GNU/Hurd で FIBER_USE_NATIVE を 0 にする条件を追加しています。 [ruby-core:57685] [Bug #8990]

glass:r43194 2013-10-08 13:56:50 +0900

Array#uniq の実装で Hash を作ってからそのキーを取り出すのにループを回して Hash の中身の st_table を操作していたのを rb_hash_keys() の呼び出しにおきかえています。 また rb_hash_keys() は static 関数だったので static を削って internal.h でプロトタイプ宣言を追加して ruby 本体では利用できるようにしています。

nobu:r43195 2013-10-08 14:19:57 +0900

r43194 の影響で未使用になったローカル変数を削除しています。

nobu:r43196 2013-10-08 15:35:29 +0900

r43194 の変更の影響で Array#uniq を Array を継承したクラスのインスタンスで実行するとそのクラスのインスタンスではなくて Array のオブジェクトが返っていたのを修正しています。

nobu:r43197 2013-10-08 16:11:15 +0900

Array#uniq にブロックを渡した時の実装も Hash のキーにブロックの評価値、値に配列の要素を格納しておいたのを取り出すのに rb_hash_values() を使うように置き換えています。このため rb_hash_values() も static を削って internal.h にプロトタイプ宣言を追加しています。

nobu:r43198 2013-10-08 16:19:54 +0900

test/ruby/test_rubyoptions.rb の $LOADED_FEATURES に文字列ではないオブジェクトが入っていた時のテストで、$LOADED_FEATURES のなかみを問題のオブジェクト 1つだけ存在している状態で SIGSEGV のハンドラを実行させるようにしています。はて、なぜでしょうか。

ko1:r43199 2013-10-08 21:08:20 +0900

r43170 で追加した C API で取得できるプロファイラ向けのスタックフレーム情報からメソッド名を取り出す API rb_profile_frame_method_name() と rb_profile_frame_qualified_method_name() を追加しています。 method_name はメソッド名のみ、qualified_method_name は定義されているクラスやモジュールの名前も込みで取得できるようです。