2026年7月26日(日)掲載 2,955本日 0
HN9093

Fil-Cで実現する究極のメモリ安全性!既存コードを安全に変貌させる魔法

Fil-C: Garbage In, Memory Safety Out [video]

Bootvis2日前

議論

5
0Bootvisスレ主902日前

Fil-Cの紹介動画です。既存のC言語プログラムに手を入れることなく、自動的にメモリ安全性を付加する画期的なアプローチについて解説されています。C言語のパフォーマンスを維持しつつ、セグフォ(セグメンテーションフォールト)やバッファオーバーフローといった脆弱性から解放されたいエンジニアは必見の内容です。

1wasmperson1日前

彼はすべてのシステムコールが自作のlibcによって実装されているから安全だと主張してるけど、そのlibcは結局システム側のlibcを呼び出していて、そこでのシステムコールはアンセーフなままなんだよね。それに、Rustではシステムコールを行うのがアンセーフだという点とは違うとも言ってる。でも、fil-cのプログラムがfil-cの標準ライブラリに従うのと同じやり方でRustの標準ライブラリに従うなら、Rustの「システムコール」だって全部安全になるでしょ。

会場の誰かも指摘してたけど、こういうツールはCプログラムだけじゃなくRustプログラムをコンパイルするのにも使えるはず。そう考えると、Fil-CをRustの対抗馬として繰り返し位置づけるよりも、Rustを補完するツールとして捉える方が自然な気がするな。

2LugosFergus約21時間前

ちょうど、そろそろHNでFil-Cの投稿があってもいい頃だなと思ってたところだよ。

3dang約21時間前

かなり数が増えてきたから、CPS(継続渡し)スタイルでまとめておくよ:

Memory Safe Context Switching - https://news.ycombinator.com/item?id=48727177 - 2026年6月 (30コメント)

Memory Safe Inline Assembly - https://news.ycombinator.com/item?id=48606096 - 2026年6月 (47コメント)

The Fil-C Optimized Calling Convention - https://news.ycombinator.com/item?id=48162876 - 2026年5月 (32コメント)

A simplified model of Fil-C - https://news.ycombinator.com/item?id=47810872 - 2026年4月 (136コメント)

Pizlix: Memory Safe Linux from Scratch - https://news.ycombinator.com/item?id=46260852 - 2025年12月 (30コメント)

Linux Sandboxes and Fil-C - https://news.ycombinator.com/item?id=46259064 - 2025年12月 (156コメント)

Ported freetype, fontconfig, harfbuzz, and graphite to Fil-C - https://news.ycombinator.com/item?id=46090009 - 2025年11月 (56コメント)

A Note on Fil-C - https://news.ycombinator.com/item?id=45842494 - 2025年11月 (210コメント)

Fil-C: A memory-safe C implementation - https://news.ycombinator.com/item?id=45842242 - 2025年11月 (1コメント)

Notes by djb on using Fil-C - https://news.ycombinator.com/item?id=45788040 - 2025年11月 (246コメント)

もっと見たいなら https://news.ycombinator.com/item?id=45792588 へどうぞ。

4tialaramex約18時間前

ハハ、dangが追加してくれたリンクを眺めてたら、12月に自分が書いた内容を見つけたよ。

(多少恣意的だけど)セーフなRustなら、64ビットポインタ(モダンなPCなど)にUTF-8テキスト「LAUGHING」から作られた値が入っていてもOKだ、という例を出したんだ。これは8バイト、つまり64ビットでぴったり収まる。もちろん、ポインタのデリファレンスが許されているアンセーフなRustなら、このLAUGHINGポインタを絶対にデリファレンスしてはいけないことは指摘してるよ。実際にはどこも指していないんだからね。でもセーフなRust内であれば、存在すること自体は許されるんだ。

偶然にも今年の2月頃、Redditで知らない誰かが「ColdString」という新しいサードパーティ製のRust型を紹介してたんだ。読んでみたら面白そうだったから作者を応援したよ。ColdStringは中身がポインタだから(モダンなハードウェアでは)64ビットになる。ColdStringに格納したいテキストが「LAUGHING」なら、まさに12月の投稿で書いた通り、単なるUTF-8エンコードされたテキストとしてそのまま収められるんだ。ColdStringの賢いトリックは、長い文字列の場合にその64ビットポインタが本当にポインタとして機能しているのかをどうやって判別するかという点にある。それと同時に、0〜8バイトのUTF-8テキスト文字列なら、そのままColdString自体に直接エンコードできるようにしているのも上手いよね。