萌えハッカーニュースリーダー

2025/06/04 17:32 How Compiler Explorer Works in 2025

出典: https://xania.org/202506/how-compiler-explorer-works
hakase
博士

ロボ子、Compiler Explorerって知ってるか?

roboko
ロボ子

はい、知っています。オンラインでコードをコンパイルして、アセンブリコードを確認できるツールですよね。

hakase
博士

そうそう!それが年間9200万回もコンパイルされてるらしいぞ。すごいじゃろ!

roboko
ロボ子

週あたり180万回ですか。多くの開発者が利用しているんですね。

hakase
博士

しかも3000以上のコンパイラバージョンと81の言語をサポートしてるってんだから、驚きだぞ!

roboko
ロボ子

そんなに多くの種類に対応しているとは知りませんでした。ところで、コンパイルの処理ってどうなっているんですか?

hakase
博士

まず、Monacoエディタでコードを書くじゃろ?それがCloudFrontとロードバランサーを通ってサーバーにリクエストされるんじゃ。

roboko
ロボ子

その後、サーバーがnsjailで隔離された環境を作るんですね。

hakase
博士

そう!nsjailの中でコンパイラが動いて、結果がJSONで返ってくるってわけじゃ。

roboko
ロボ子

nsjailを使っているのはセキュリティのためですか?

hakase
博士

その通り!Linux namespacesとかリソース制限、ファイルシステム隔離で守ってるんだぞ。過去にはClangのクラッシュとかCMakeの脆弱性を突かれたこともあったらしい。

roboko
ロボ子

今は`nosymfollow`オプションでシンボリックリンク攻撃を防いでいるんですね。セキュリティ対策も進化しているんですね。

hakase
博士

コンパイラの管理も大変そうじゃ。約4TBのコンパイラを管理して、古いバージョンも維持してるんだから。

roboko
ロボ子

`bin/ce_install`と`bin/ce`ツールを使っているんですね。`ce_install`はコンパイラのインストール用で、`ce`はデプロイメントとか環境管理用ですか。

hakase
博士

さすがロボ子、よく分かってるのじゃ。コンパイラは`/opt/compiler-explorer`にインストールされるらしいぞ。

roboko
ロボ子

squashfsイメージも使っているんですね。ネットワークファイルシステムのレイテンシ対策ですか?

hakase
博士

ビンゴ!squashfsイメージをNFS上に構築してマウントすることで、パフォーマンスを上げてるんだな。

roboko
ロボ子

毎晩コンパイラをビルドしているんですか?

hakase
博士

そう!GitHub Actionsを使って、GCC trunkとかClang trunkとか実験的ブランチをビルドしてるんだぞ。

roboko
ロボ子

対応プラットフォームも広いんですね。Linuxだけでなく、Windows、ARM、GPUもサポートしているとは。

hakase
博士

WindowsはスポットインスタンスでMSVCを実行、ARMはネイティブARM64実行、GPUはNVIDIA GPUインスタンスを使ってるらしい。

roboko
ロボ子

AWSのus-east-1リージョンで実行されているんですね。インフラもかなり大規模ですね。

hakase
博士

コンパイラ、ライブラリ、ツールで3.9TB、30以上のEC2インスタンス、4,724のコンパイラバージョン、1,982,662の短縮リンクを保存…すごい数じゃ。

roboko
ロボ子

Grafana、Prometheus、Loki、CloudWatchで監視しているんですね。コストは約月3,000ドルですか。

hakase
博士

今後の展望としては、AI説明ツールパネルの追加、ユーザーアカウント、RISC-Vサポート、CPUパフォーマンス分析の可視化があるみたいじゃ。

roboko
ロボ子

AI説明ツールパネル、面白そうですね。アセンブリコードの解説をしてくれるんですかね。

hakase
博士

かもな。しかし、これだけの規模のサービスを維持するのは本当に大変じゃな。

roboko
ロボ子

本当にそうですね。Compiler Explorerは開発者にとって、なくてはならないツールの一つですから、これからも応援していきたいです。

hakase
博士

ところでロボ子、Compiler Explorerで一番好きなコンパイラは何じゃ?

roboko
ロボ子

えっと…、私はまだ全部試したことがないので…。

hakase
博士

じゃあ、これから一緒に全部試してみるか!そして、一番面白いコンパイラを見つけたら、それで世界征服するのじゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search