今日は rubyspec の更新と拡張ライブラリ fiddle の可変長引数の C 関数を呼び出す機能追加などがありました。
[64d8c0815e] Benoit Daloze 2020-06-27 13:51:35 UTC
mspec の upstream からのマージ。 Truffle Ruby 向けの変更が含まれてるようです。
[b3fa158d1c] Benoit Daloze 2020-06-27 13:51:37 UTC
rubyspec の upstream からのマージ。
[25fbc88666] Nobuyoshi Nakada 2020-06-27 14:13:58 UTC
compile.c のコメントに非 ASCII 文字が含まれててコンパイラによっては警告が出るそうなので置換。ぱっと見だとわかりませんが "-" のようにみえる文字がそうだったようです。
[0faf6c8c0e] Benoit Daloze 2020-06-27 14:40:16 UTC
rubyspec の再度更新。
[50fbd00e76] Sutou Kouhei 2020-06-26 22:10:37 UTC
拡張ライブラリ fiddle の Check_Max_Args_() という関数マクロの定義を文にするため do{...}while(0) を使うようにしています。
[9f740acaf9] Sutou Kouhei 2020-06-26 22:11:19 UTC
拡張ライブラリ fiddle の変数名を内容に合わせて改名。
[ae18220f99] Sutou Kouhei 2020-06-26 22:25:47 UTC
拡張ライブラリ fiddle で可変長引数の C 関数を呼べるように機能追加しています。
[6429b6d973] Sutou Kouhei 2020-06-26 22:27:05 UTC
拡張ライブラリ fiddle の ext/fiddle/function.c に #include <stdbool.h> を追加しています。
[a40b390b17] Sutou Kouhei 2020-06-26 23:31:59 UTC
拡張ライブラリ fiddle のテストで sprintf() を利用するところで Windows ではシンボル名が _snprintf になるので環境によって変えるようにしています。
[f2bcdc7283] Sutou Kouhei 2020-06-27 02:01:22 UTC
拡張ライブラリ fiddle の mswin 環境サポートのために extconf.rb などを書きかえています。とはいえ大部分は変数名などをより説明的にする改名などなので本質的なのは -DHAVE_FFI_PREP_CIF_VAR を追加するところくらいかな? https://github.com/ruby/fiddle/pull/43
[c405a8d37a] Nobuyoshi Nakada 2020-06-27 15:57:37 UTC
f2bcdc7283f2137e0916e251df3a52c40b1f6151 の fiddle の extconf.rb の同梱版 libffi を使うオプション指定についての条件分岐でデフォルト(オプションが指定されてない時)では同梱版を利用するようにしています。
[247dd8743e] git 2020-06-27 17:03:05 UTC
version.h の日付更新
[0703e01471] Takashi Kokubun 2020-06-27 17:07:47 UTC
7561db8c009bb79a75024fa4ed0350bfb3d0626c で Integer#zero? の実装を inline 可能な C 関数に委譲した ruby 実装におきかえたのと同様に Integer の abs, bit_length, even?, integer?, magnitude, odd?, ord, to_i, to_int などのメソッドも Primitive.attr! 'inline' と Primitive.cexpr! を用いた ruby 実装に変更しています。 https://github.com/ruby/ruby/pull/3264
[48fb6299c6] Nobuyoshi Nakada 2020-06-28 01:34:01 UTC
ae18220f9904c70304bd1672eecadbb3618fc7e5 の fiddle での可変長引数関数サポートの変更で非常に古い libffi だと ffi_prep_cif_var() という関数がなくて失敗するので HAVE_FFI_PREP_CIF_VAR をチェックして定数 Fiddle::TYPE_VARIADIC を定義するようにしています。
[44a659ad97] Nobuyoshi Nakada 2020-06-28 04:20:40 UTC
組み込みメソッドを ruby 実装したスクリプトを事前コンパイルして読み込む tool/mk_builtin_loader.rb でファイルパスのセパレーターの File::ALT_SEPARATOR を File::SEPARATOR に置換しています。つまり Windows 環境でファイルパスのセパレーターが "\" になってるものを "/" に置換しているようです。
[1020f7e3aa] Nobuyoshi Nakada 2020-06-28 05:12:26 UTC
44a659ad976221cfec3355e036daeb4e4942db55 のファイルパス置換を生成するソースコード内のコメントに埋め込むファイルパスも置換するように前のほうに移動しています。