いけむランド

はてダからやってきました

RubyKaigi 2026 での発表時のコメントへのアンサー

発表の時にいくつか疑問っぽいコメントが X や Discord で挙がっていたため、雑に回答する。

X

posfie.com

発表内でも patch を減らしたいと言っていたものの実際にはやっていなかったが、これを機に明らかに他のプラットフォームに影響を与えないものは積極的に PR にしていっても問題ないだろうと改めて思ったため、とりあえず Kaigi Effect バフ *1 があるうちに投げてみた。

Remove cygwin from WIN_PATTERNS

github.com

2.0.0-cygwin-rubygems.patch - ruby - cygwin packaging for ruby に対応するもので、gem コマンドは挙動全体が Windows とみなす実装となっていたため、それを止めるという修正を思い切って投げた。

win_platform? 判定部を洗い出して、PR の description にまとめた。

そもそも cygwin パッケージの方である程度は動いている実績があったので、大丈夫だろうという算段でもある。

Fix --disable-multiarch option being ignored in configure

github.com

3.4.2-rbinstall-archbindir.patch - ruby - cygwin packaging for ruby について、改めて調べてみたら、そもそも configure が想定する挙動と違っていたことがわかったため、PR にした。

以前に bugs でも議論を見ていたため、さすがにそこに問題が残っているとは思っていなかった...。

bugs.ruby-lang.org

Discord

Dl_info.dli_fname

Linux と違うと言って cygwin 側で対応してもらう方法もありそう

これはおそらく Dl_info.dli_fname のことだと思うが、たしかに Cygwin 内部で保持してくれればよいのでは?と思ったため、調べてみた。

github.com

Windows のファイルパスから書き換えたものを保持しないといけないために char[] にしないといけなかったように見える。

たしかに Cygwin 内部で変換済みのパスをキャッシュするのはあまりしたくないこともわかる。

Execute bit

cygwinだけでなくみんなちゃんとexecute bit 立てるべき気がする

最新の box.c ではきちんと対応されていた。

github.com

*1:自分のやる気という意味