ruby-trunk-changes r65031 - r65060

今日は mswin 版での MJIT の対応や WIN32OLE のテストの修正などがありました。

nobu: r65031 2018-10-12 21:54:21 +0900

node.c の rb_ast_dispose() で ast->node_buffer の Write Barrier 処理が書いてありましたが、その上の rb_ast_free() の中で ast->node_buffer は解放されて NULL にクリアされてるので常に if 文の body は実行されない状態だったので削除しています。

suke: r65032 2018-10-12 22:51:21 +0900

拡張ライブラリ win32ole のテストで重複している assertion があったので1つ削除しています。

k0kubun: r65033 2018-10-13 00:14:51 +0900

Windows 版において MJIT の worker 用の子プロセスの出力を抑制しようとすると親プロセスの標準出力などへの出力も捨てられる可能性があったので、CreateChild() API を直接使って出力用の file handler を指定することでこの問題を回避するようにしています。似たような関数はあるんだけど ALLOCV() を利用しているので GC を走らせられない MJIT worker では使えないのでとのこと。

svn: r65034 2018-10-13 00:14:55 +0900

version.h の日付更新。

nobu: r65035 2018-10-13 00:48:06 +0900

time.c の zone_str() で rb_fstring_usascii() や rb_fstring_enc_cstr() といった関数を呼んでいましたが、これらの関数は渡された文字列のバッファが変更されないことを期待しているとのことで、ここの zone はその前提を満たしていないので rb_fstring() による fstring 化を使うように修正しています。

stomar: r65036 2018-10-13 04:56:53 +0900

Hash#length の rdoc 用コメントに Hash#length は Hash#size の alias だっていう説明を追加して Hash#length と Hash#size は同じもの、っていうコメントを消してるんですが、うーん実際には Hash#length と Hash#size は同じ C 関数を実装としてそれぞれ別に rb_define_method() されているメソッドなので、ちょっと微妙かなぁ。どちらかというと元の記述のほうが正確だったような気も。英語なので alias というのが文法としての alias のことではないと解釈することもできるけど、まあ普通に考えて alias って書かれていると rb_define_alias() で作られてると思ってしまいそう(微妙に挙動が異なる)。

stomar: r65037 2018-10-13 04:58:11 +0900

default gem 化した標準添付ライブラリの gemspec ファイルで version を読み込むための require_relative のところに ruby リポジトリ上で使う時用だとコメントを追記しています。

stomar: r65038 2018-10-13 05:00:13 +0900

RubyVM モジュールの rdoc 用コメントの英文法の修正。

stomar: r65039 2018-10-13 05:01:52 +0900

Process.groups の rdoc 用コメントの文法修正。

stomar: r65040 2018-10-13 05:37:30 +0900

拡張ライブラリ readline の Readline.completion_quote_character の rdoc 用コメントの typo 修正とマークアップの追加。

stomar: r65041 2018-10-13 06:11:54 +0900

Range#cover? の rdoc 用コメントの文法修正とマークアップ追加。

stomar: r65042 2018-10-13 06:55:49 +0900

Enumerator::ArithmeticSequence の rdoc 用コメントの文法修正。

suke: r65043 2018-10-13 08:07:48 +0900

拡張ライブラリ win32ole のテストのただの assert のかわりに assert_equal を使うようにしています。

k0kubun: r65044 2018-10-13 08:57:42 +0900

r65033 で MJIT 用 worker から利用した CreateChild() で常に NULL が渡されていて意味がなくなっていた引数を削除しています。CreateChild() って WindowsAPI じゃなくて rubyソースコードで定義されている関数だったのか。

svn: r65045 2018-10-13 08:57:44 +0900

r65044 のインデントのタブを空白に展開。

suke: r65046 2018-10-13 09:21:59 +0900

拡張ライブラリ win32ole のテストで r65027 と同様に Microsoft Internet Controls を利用していたのをやめています。かわりに ADODB.Connection を使うようにしています。

svn: r65047 2018-10-13 09:22:00 +0900

r65046 の新規追加ファイルの svn property 設定。

k0kubun: r65048 2018-10-13 09:22:18 +0900

CreateChild() で FindFreeChildSlot() という API を呼んでたのをやめて引数で受け取るようにしています。 MJIT 用 worker から FindFreeChildSlot() を呼ぶのは thread-unsafe なのでやめたいとのことで。

k0kubun: r65049 2018-10-13 09:25:58 +0900

r65048 で書き変えた CreateChild() のコメントで関数名を間違えていたのを修正しています。

k0kubun: r65050 2018-10-13 09:38:15 +0900

AppVeyor 上で MinGW の時に rubyspec の Thread#kill のテストが不安定とのことでコメントをつけた上で platform_is_not で実行除外するようにしています。

k0kubun: r65051 2018-10-13 10:32:20 +0900

r65048 のコメントの typo 修正。

k0kubun: r65052 2018-10-13 10:47:55 +0900

appveyor.yml の build matrix で msys2 でのビルドを最初に移動しています。並列で実行できる数の都合でトータルの時間を減らすためにとのこと。

suke: r65053 2018-10-13 12:18:42 +0900

拡張ライブラリ win32ole のテストでさらに Microsoft Internet Controls を使っていたところを削除して ADODB.Connection を使うテストにしています。

svn: r65054 2018-10-13 12:18:44 +0900

r65053 の新規追加ファイルの svn property 設定。

normal: r65055 2018-10-13 14:18:49 +0900

rubyspec の socket のテストで LinuxカーネルIPv6 を無効化してビルドされている場合を考慮して条件を追加したり捕捉する例外クラスを増やしたりしています。

normal: r65056 2018-10-13 14:36:50 +0900

addr2line.c の kprintf() の uintptr_t を埋め込むところを PRIuPTR を利用するようにしています。

svn: r65057 2018-10-13 14:36:51 +0900

r65056 のインデントのタブを空白に展開。

nobu: r65058 2018-10-13 18:23:56 +0900

rb_setup_fake_str() および rb_fstring_new() にコメントを追加して引数の文字列はリテラルで変更されないものでないといけないことを明記しています。

nobu: r65059 2018-10-13 18:59:22 +0900

C の文字列リテラルから fstring を作るのに rb_fstring_cstr() を使っていたところを rb_fstring_lit() を使うようにしています。

nobu: r65060 2018-10-13 18:59:23 +0900

rubyspec の spec/ruby/library/socket/socket/ipv6only_bang_spec.rb に fixture の require を追加しています。