発表の時にいくつか疑問っぽいコメントが X や Discord で挙がっていたため、雑に回答する。
X
パッチをCygwin側で当ててるけど、Rubyの本流にパッチの内容を取り込むことはできないのかな #rubykaigi #rubykaigiC
— うたがわきき (@utgwkk) 2026年4月23日
発表内でも patch を減らしたいと言っていたものの実際にはやっていなかったが、これを機に明らかに他のプラットフォームに影響を与えないものは積極的に PR にしていっても問題ないだろうと改めて思ったため、とりあえず Kaigi Effect バフ *1 があるうちに投げてみた。
Remove cygwin from WIN_PATTERNS
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
3.4.2-rbinstall-archbindir.patch - ruby - cygwin packaging for ruby について、改めて調べてみたら、そもそも configure が想定する挙動と違っていたことがわかったため、PR にした。
以前に bugs でも議論を見ていたため、さすがにそこに問題が残っているとは思っていなかった...。
Discord
Dl_info.dli_fname
Linux と違うと言って cygwin 側で対応してもらう方法もありそう
これはおそらく Dl_info.dli_fname のことだと思うが、たしかに Cygwin 内部で保持してくれればよいのでは?と思ったため、調べてみた。
Windows のファイルパスから書き換えたものを保持しないといけないために char[] にしないといけなかったように見える。
たしかに Cygwin 内部で変換済みのパスをキャッシュするのはあまりしたくないこともわかる。
Execute bit
cygwinだけでなくみんなちゃんとexecute bit 立てるべき気がする
最新の box.c ではきちんと対応されていた。
*1:自分のやる気という意味