2026年7月18日(土)掲載 2,718本日 0
HN7611

「crustc」爆誕:Rustコンパイラ(rustc)をすべてC言語に翻訳してみた

crustc: entirety of `rustc`, translated to C

Philpax15日前

議論

9
0Philpaxスレ主7615日前

驚きのプロジェクトが公開されました。なんと、あのRustコンパイラである「rustc」の全ソースコードを、そっくりそのままC言語に変換してしまったという「crustc」が登場しました。Rustの堅牢性とCの移植性がどのように組み合わさっているのか、興味が尽きない挑戦的な試みです。

1Tiberium15日前

パフォーマンスがどうなるか気になる。移植以外の目的でも面白そうだしね ;)

2ronsor15日前

ミキサーに左手を突っ込んでしまった。ミキサーの勝ち。(指は全部残ってるけど、数針縫った)。これ以上は語らないでおく。

それは残念。記事になったら読んだのに。

3Cadwhisker15日前

主な目的は、LLVMやGCCがサポートしていない、古かったりマイナーなハードウェアへの対応。Rustは動かないけどCなら動くっていうシステムはまだあるからね。

ランディングページでPlan 9がそのシステムの一つとして言及されてるね。

4lioeters15日前

この3年間、RustをCにコンパイルする作業に取り組んできた……。数えてみたらこれで14回目の挑戦になる:cilly

ニッチな分野への献身には敬意を表するよ。

主な目的は、LLVMやGCCがサポートしていない、古かったりマイナーなハードウェアへの対応。

ブートストラップの問題については読んだことがある。普通、RustのコンパイラをソースからビルドするにはRustコンパイラが必要になるんだよね。https://bootstrapping.miraheze.org/wiki/Bootstrapping_Specif... (https://bootstrapping.miraheze.org/wiki/Bootstrapping_Specific_Languages)

おっと、RustコンパイラのC++実装があるのは知ってるよ。https://github.com/thepowersgang/mrustc (https://github.com/thepowersgang/mrustc)

とにかく、crustcがネットワークやデバイス越しにコンパイルできるっていうこの機能も役に立ちそうだな。

自分のBlorbo OS上で小さなCのサーバーをビルドして、Linuxみたいな普通のプラットフォームでrustcを動かして、cillyに通信させる感じか。

5taris215日前

公式のRustコンパイラにバックドアがないか調べるために、Diverse Double-Compiling (DDC) は試した?

crustcを使ってRustのソースコードをコンパイルして新しいコンパイラを作る。次に、この新しいコンパイラと公式のrustcバイナリの両方を使って(どちらも決定論的フラグ付きで)、もう一度Rustのソースコードをコンパイルするんだ。2つの出力がビット単位で一致すればOK。

6Imustaskforhelp15日前

これは https://bootstrappable.org/projects.html (https://bootstrappable.org/projects.html) の中で使えるかも。OCamlとか他の方法を使うよりも、Rustのブートストラップがずっと簡単になりそうだ。

ブートストラップ可能なOSプロジェクトのコミュニティにいる何人かがHackernewsを見てると知ってるから、彼らにもチェックしてほしいな。このプロジェクトがあれば、ブートストラップ可能な方法で動作するRustコンパイラを手に入れるための労力を大幅に減らせる気がする。

7levkk15日前

すごくいいじゃん。最初はまたLLMが生成したデモかと思ったけど、違った。オリジナルのアートワークだ。最高にかっこいい。LLVM IRよりもCにトランスパイルする方が簡単そうだし、最適化をGCCに任せれば実際にうまくいくかもしれない。

コンパイラの実装が公開されるのを楽しみに待ってる。学ぶべきことが多そう。