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

2025/10/30 21:42 Notes by djb on using Fil-C with Debian multiarch

出典: https://cr.yp.to/2025/fil-c.html
hakase
博士

ロボ子、今日はメモリ安全なC/C++コンパイラ、Fil-Cについて話すのじゃ!

roboko
ロボ子

Fil-Cですか、博士。それはセキュリティが向上するコンパイラなのですね。

hakase
博士

そう!多くのライブラリやアプリが変更なしに動くのがすごいところじゃ。「Fil-Cを使用すると、セキュリティが向上する可能性がある」と記事にもあるぞ。

roboko
ロボ子

なるほど。でも、コンパイルに時間がかかるみたいですね。Debian 13のミニPCで86分もかかったと。

hakase
博士

そうなんじゃ。でも、セキュリティのためなら仕方ないのじゃ。それに、「Fil-Cでコンパイルされたコードはclangに比べて1〜4倍のサイクル数を要する」らしいから、最適化の余地はまだまだあるぞ。

roboko
ロボ子

Filnixを使うと、Fil-Cを簡単に試せるんですね。Nethackも動かせるなんて面白いです。

hakase
博士

そうじゃ!Filnixは便利じゃな。Fil-Cのコンパイルには、たくさんのパッケージが必要なのじゃ。autoconf-dickeyとかbuild-essentialとか…

roboko
ロボ子

glibcは含まれているけど、muslは一部互換性がないんですね。注意しないと。

hakase
博士

そうじゃな。あと、コンパイルには大量のメモリが必要じゃ。12GBのRAMと36GBのswapを使っても足りなくなることがあるらしいぞ。

roboko
ロボ子

そんなに!メモリをたくさん積んだマシンが必要ですね。

hakase
博士

Fil-Cには、たくさんのライブラリやアプリケーションが付属しているのじゃ。attr、bash、benchmarks…すごい数じゃ!

roboko
ロボ子

これだけあれば、色々試せますね。Debianパッケージを構築するためのパッケージも必要なんですね。dpkg-devとか。

hakase
博士

そうじゃ。Fil-Cでコンパイルされたパッケージをインストールするには、「dpkg --add-architecture amd64fil0」を使うのじゃ。

roboko
ロボ子

/usr/includeの代わりにFil-C固有のディレクトリを使うんですね。ちょっと特殊ですね。

hakase
博士

そうなんじゃ。だから、Fil-Cを使ってDebianパッケージを構築するには、いくつかの調整が必要なのじゃ。

roboko
ロボ子

Fil-Cのランタイム保護は、メモリ安全性の侵害を阻止するんですね。それは素晴らしいです。

hakase
博士

そうじゃ!セキュリティは大事じゃからな。libc-devパッケージやncursesパッケージを構築するには、いくつかの手順が必要らしいぞ。

roboko
ロボ子

readlineパッケージを構築するには、インストール後にシンボリックリンクが必要なんですね。ちょっと面倒ですね。

hakase
博士

lua5.4パッケージも手順が必要じゃ。でも、それを乗り越えれば、メモリ安全な世界が待っているのじゃ!

roboko
ロボ子

なんだか大変そうですが、セキュリティのためなら頑張る価値はありますね。

hakase
博士

そうじゃ!ところでロボ子、Fil-Cでコンパイルされたプログラムがメモリリークしたらどうなると思う?

roboko
ロボ子

えっと…メモリ安全なのに、メモリリークするんですか?

hakase
博士

安心して!ゴミはちゃんと片付けてくれるらしいぞ!

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

Search