今日は主に関数ポインタの型の扱いの修正や拡張ライブラリ socket の新しい定数の追加などがありました。
[b3d8dddee7] Yusuke Endoh 2022-09-20 08:07:42 UTC
Continuation のために machine stack を退避する cont_save_machine_stack() に ASAN のための unpoison の呼び出しを追加しています。
[a8dc49b4d5] Alan Wu 2022-09-20 12:36:06 UTC
make に bmake というコマンドを利用する時の YJIT の Rust 実装をビルドの対応をしているようです。 $(YJIT_LIBS) の依存関係? かなにかで GNU make に依存した記法を使ってたみたいで他の make の実装でも動くように代替のルールを yjit/not_gmake.mk に書いておいて必要に応じて include する Makefile を生成するようにしています。
[d3733c2ba5] Maxime Chevalier-Boisvert 2022-09-20 23:30:10 UTC
YJIT の --yjit-stats オプションの処理で 5883bc7c0791de2ce5e8b22175aef07705f0c618 の追加の再修正をしています。 https://github.com/ruby/ruby/pull/6409
[45482fea3c] 卜部昌平 2022-09-12 05:41:23 UTC
GitHub Actions のいろんなコンパイルオプションを試す workflow で利用するデフォルトのコンパイラの clang 14 を clang 15 に更新しています。また clang-16 でのビルドも追加しています。
[104069e75a] 卜部昌平 2022-09-13 06:08:50 UTC
error.c の syserr_initialize() での不要な prototype 宣言を削除しています。おそらく clang 15 で警告が出てたのでしょう。
[406ebb25a0] 卜部昌平 2022-09-13 06:18:46 UTC
ractor.c の obj_refer_only_shareables_p_i() で警告が出たとのことでポインタのインクリメントに dereference の "*" を追加していますが、うーん? これは多分 (*pcnt)++ にしないといけないんじゃないかな?
[06cb030516] 卜部昌平 2022-09-13 07:26:33 UTC
vm_insnhelper.c でいろんな引数の数のメソッド呼び出しに対応した関数を呼び出すための関数の一部で関数ポインタを呼び出す関数の型に合わせた変数にキャストして代入しておいてから使うようにしています。他のところは既にキャストしてたけど一部だけ直接呼ぶようになってたみたいです。
[0cd86ffb2e] 卜部昌平 2022-09-14 02:32:24 UTC
file.c の define_filetest_function() という static 関数を関数マクロによる定義に変更しています。コミットログによると ANYARGS で任意の個数の引数を指定するのを避けるためみたいです。
[2f8012c949] 卜部昌平 2022-09-14 05:12:17 UTC
include/ruby/internal/anyargs.h で引数の数に応じて関数を用意しているところで rb_f_notimplement() を使った定義をする時に一旦 xxxx_notimpl() という関数を経由して呼び出すようにしています。これも ANYARGS を使わないようにするためみたいです。
[8a577cbc63] 卜部昌平 2022-09-14 05:17:56 UTC
vm_insnhelper.c の cref_replace_with_duplicated_cref_each_frame() という関数は戻り値の型が rb_cref_t * とポインタなのに FALSE を返しているところがあったので NULL に修正しています。
[4e64edb6cd] 卜部昌平 2022-09-14 05:35:47 UTC
vm_insnhelper.c でさらに ANYARGS の利用を避けるために引数の個数の違う関数ポインタの型の共用体を定義してこれを任意の個数の引数の関数ポインタのかわりに使うようにしています。
[ec5798d28b] 卜部昌平 2022-09-14 05:43:31 UTC
rb_f_notimplement() および rb_f_notimplement_internal() を関数ポインタとして参照しているところで明示的に ANYARGS を受け取る関数としてキャストするようにしています。
[77c61ae3ab] 卜部昌平 2022-09-14 05:47:26 UTC
vm_eval.c の cc_new() で vm_ci_new() のポインタの引数に false を渡していたのを NULL に修正しています。
[45741918e1] 卜部昌平 2022-09-16 06:14:05 UTC
古い gperf のサポートのために一部の関数の宣言をコメントアウトしていたのを削除しています。
[437800d3b0] 卜部昌平 2022-09-21 01:03:30 UTC
拡張ライブラリ pty の establishShell() で標準ライブラリ関数の getenv() を冗長に宣言していたのを削除しています。同様に拡張ライブラリ etc では逆に宣言を取り込むために stdlib.h を #include するようにしています。
[7060b23ffa] 卜部昌平 2022-09-21 01:14:00 UTC
拡張ライブラリ openssl の関数ポインタの変数の宣言に専用の型を typedef して使うようにしています。
[1ad1f07306] Takashi Kokubun 2022-09-21 04:38:42 UTC
YJIT 用の GitHub Actions の workflow で Slack への通知の設定を修正しています。
[d6e84d97fe] Hiroshi SHIBATA 2022-09-21 01:46:35 UTC
irb のヒストリファイルのテストで IRB.conf[:LC_MESSAGES] の初期設定を追加しています。環境によってテストが失敗するのを修正するためみたいですね。
[c287deecb6] Hiroshi SHIBATA 2022-09-21 01:53:06 UTC
同じく irb のヒストリファイルのテストで環境変数 IRBRC の影響を除外するため一時的に環境変数を消すようにしています。
[e3b178066b] Koichi ITO 2022-05-23 07:40:15 UTC
Process.kill の rdoc 用コメントの call-seq の可変長引数の書きかたを修正。
[017573c3b3] David CARLIER 2022-05-18 20:30:47 UTC
拡張ライブラリ socket で SO_SETFIB という C の定数に対応する ruby の定数の定義に対応しています。 FreeBSD で存在する定数みたいです。
[8a9dfb676b] David CARLIER 2022-05-02 10:33:57 UTC
同じく拡張ライブラリ socket で C の定数 TCP_CONNECTION_INFO と TCP_KEEPALIVE の対応を追加しています。 TCP_KEEPALIVE がまだなかったというのは意外でした。
[3f387e60ef] Yuta Saito 2022-02-17 17:31:40 UTC
mspec の対象のファイルを load するためのユーティリティメソッドで File.expand_path が環境変数 HOME がなくて ~ が展開できない時に ArgumentError が発生するのを無視するように対応しています。
[ec2d13567e] David Carlier 2021-02-21 13:16:57 UTC
拡張ライブラリ socket で C の定数 SO_USER_COOKIE も ruby の定数に取り込むように追加しています。
[8cbbc061c4] David Carlier 2021-07-07 20:40:15 UTC
拡張ライブラリ socket で C の定数 SO_RTABLE も ruby の定数に取り込むように追加しています。OpenBSD で存在する定数みたいです。
[d35bc88b37] David Carlier 2021-12-12 11:08:19 UTC
拡張ライブラリ socket で C の定数 SO_INCOMING_CPU と SO_INCOMING_NAPI_ID も ruby の定数に取り込むように追加しています。Linux で存在する(した?)定数みたいです。
[02e25db68f] Akihiro Sada 2022-04-05 11:37:05 UTC
NEWS に標準添付ライブラリ uri の URI.escape と URI.unescape の削除について追記しています。
[796069b288] David Carlier 2021-04-10 11:47:16 UTC
Process.{set,get}rlimit に使う定数に Process::RLIMIT_NPTS というのを(C の定数が定義されていたら)追加しています。