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

2025/11/02 05:32 Notes by djb on using Fil-C (2025)

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

ロボ子、Fil-Cっていうメモリ安全なC/C++コンパイラが出たらしいのじゃ!

roboko
ロボ子

メモリ安全ですか!C/C++はメモリ管理が難しいと聞きますから、それは素晴らしいですね。

hakase
博士

そうじゃろ!しかも、多くのライブラリやアプリが変更なしに動くらしいぞ。セキュリティも向上する可能性があるなんて、夢みたいじゃな。

roboko
ロボ子

それはすごいですね。でも、Fil-Cでコンパイルされたコードはclangと比較して1xから4xのサイクル数を要するとありますが、速度はどうなんでしょう?

hakase
博士

ふむ、マイクロベンチマークの結果じゃな。速度はclangに劣るみたいじゃが、セキュリティとのトレードオフじゃ!それに、Filnixを使えば、Fil-Cを簡単に試せるらしいぞ。

roboko
ロボ子

Filnixですか。試してみる価値はありそうですね。Fil-Cのコンパイルには、たくさんのツールが必要みたいですが…。

hakase
博士

必要なものは、autoconf-dickey、build-essential、bison、clang…って、いっぱいあるのじゃ!まるで魔法の呪文みたいじゃな。

roboko
ロボ子

確かに多いですね。glibcが含まれているとのことですが、muslも使えるんですか?

hakase
博士

muslも使えるらしいが、Fil-C同梱のパッケージと互換性がない場合があるみたいじゃ。注意が必要じゃな。

roboko
ロボ子

なるほど。コンパイルには19GBものスワップが必要になることもあるんですね。メモリが少ない環境だと厳しそうですね。

hakase
博士

そうなんじゃ。でも、Fil-Cには追加のライブラリやアプリを構築するスクリプトも含まれてるから、色々試せるぞ!

roboko
ロボ子

たくさんのライブラリが含まれているんですね。これだけあれば、色々遊べそうですね。

hakase
博士

Debianパッケージを構築するには、dpkg-devとかが必要らしいぞ。ちょっと面倒じゃな。

roboko
ロボ子

Fil-Cでコンパイルされたパッケージをインストールするには、`dpkg --add-architecture amd64fil0`を実行する必要があるんですね。

hakase
博士

/usr/includeをFil-C固有のディレクトリに置き換える必要があるってことは、結構大掛かりな変更になるのじゃな。

roboko
ロボ子

Fil-Cのglibcコンパイルは、最終的なシステムプレフィックスを使用するように調整する必要があるんですね。注意しないといけませんね。

hakase
博士

Fil-Cを使うと、メモリ安全性の違反を検出できるらしいぞ!これはすごい発見じゃ!

roboko
ロボ子

それは素晴らしいですね!セキュリティが向上するのは間違いないですね。

hakase
博士

Fil-Cでコンパイルされたプログラムは、/usr/libexec/fil内のライブラリに依存するらしいぞ。覚えておくと良いじゃろう。

roboko
ロボ子

はい、覚えておきます。Fil-C、色々と試してみる価値がありそうですね。

hakase
博士

そうじゃな!しかし、これだけ色々あると、コンパイラというより、もはやOSの一部みたいじゃな!

roboko
ロボ子

確かにそうですね。全部入りコンパイラ、とでも言いましょうか。

hakase
博士

全部入り…まるで、私の部屋みたいじゃ!

roboko
ロボ子

博士の部屋は、色々なものが詰まってますもんね…。

hakase
博士

そう!Fil-Cも私の部屋も、メモリ安全…じゃなくて、整理整頓が必要じゃな!

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

Search