Slide 1

Slide 1 text

Ruby on cygwin (2025/11 月 号) fd0 (Daisuke Fujimura) 2025-11-29 @ TokyuRuby会議16 1

Slide 2

Slide 2 text

2 • fd0 (Daisuke Fujimura) • 仕事では 1 ミリも Ruby を書いていません • 表参道.rb に時折出没 誰?

Slide 3

Slide 3 text

3 • (初めてのコミュニティの LT で) 連載をするという暴挙 • Cygwin というプラットフォーム向けの Ruby について喋った • インストーラから簡単にインストールできるパッケージをつくる仕組み • Ruby 3.3.x あたりから発 生 してた SEGV の調査が難航してた • ChatGPT のおかげで SEGV の原因がわかった • libssl 内の NULL 参照 • ついに Ruby 3.4 系にアップデートできるのか!? • 詳しく知りたい 人 は表参道.rb #111 の資料を参照してください 前回まであらすじ

Slide 4

Slide 4 text

4 • https://www.cygwin.com/ • WindowsOS 上に UNIX ライクな環境 (ファイルシステムや API) を提供する互換層 (Wikipedia より) • ここ数年は WSL などの普及で段々と使われなくなってきている… • 懇親会で「学 生 の頃に授業で使ってました」などの励みになる声も 😆 Cygwin is 何?

Slide 5

Slide 5 text

5 $ gcc -v Target: x86_64-pc-cyg wi n gcc version 13.4. 0 (GCC) $ uname -ms CYG WI N_NT- 10 . 0 -26200-ARM64 x86_64 $ ruby -v ruby 3.4.7 (2025- 10 -08 revision 7a5688e2a2) +PRI S M [x86_64-cyg wi n] Cygwin プラットフォーム向けとは? • Cygwin のセルフコンパイラツールでビルドすること

Slide 6

Slide 6 text

6 インストーラ TFUVQFYF

Slide 7

Slide 7 text

7 • (2025/11/08) Updated: ruby 3.4.7 🎉 • [cygwin-announce:012589] • 前 月 に事前にテスト版をアップロードしてた • インストーラからはテスト版としてインストールできる • 手 元でいろいろ Ruby プログラムを動かしてみて SEGV にならない からたぶん 大 丈夫だろうということで発 車 • テスト版フラグをオフ 進捗どうですか?

Slide 8

Slide 8 text

8 • 今まで最新版としてインストールされていた Ruby 3.2.2 はもうすぐ EOL • セキュリティ的になるはやが良さそう • Ruby 4.0 に向けての予 行 • Ruby 3.2.2 の作業をしたのが 2 年半以上前 (2023/04) • [cygwin-announce:011053] • いろいろなノウハウが忘却の彼 方 → 頑張って思い出す • マイナーバージョンアップもそこそこ 手 間 • Default/Bundled gem の増減や他 distribution による patch 追加などで構成や設定 が変わってることの調査 & 対応 もうすぐ 4.0 が出るのに何故に今?

Slide 9

Slide 9 text

9 • native extension がある gem のパッケージも対応が必要 • 再ビルドが必要だったパッケージ数 : 30+ 🤮 • 対応しないとインストーラが依存を満たせないと判断 • 古いパッケージ (3.2 系依存) が残っていると依存チェックでバージョンアップ を 止 めようとする • 利 用 者にパッケージ精査という作業をしてもらうことになる 😢 • ひとつひとつ粛々と version bump & commit & push & release • patch が必要なものもあったり [https://github.com/ruby/curses/pull/120] とはいえ億劫 (1)

Slide 10

Slide 10 text

10 • 🤔「みんなどうせ gem コマンドで 自 前でインストールするか ら gem ベースのバイナリパッケージは不要では?」 • ミラー経由での配布のため、実際のパッケージのダウンロー ド数がわからない • どれくらい需要があるかわからないのもやる気が出ない 一 因 • 未対応パッケージリストの存在がメンテナに圧をかけてくる とはいえ億劫 (2)

Slide 11

Slide 11 text

11 • Cygwin のインストーラからほぼ最新の Ruby をインス トールできるようにした • 開発フローをもっといい感じにできそうという気付き • 4.0 はなるはやで対応したいなあ… • 利 用 者のとても少ない環境ではあるがメンテを頑張ってい きたい まとめ & 今後