プログラミング言語Rustで書かれたC言語のコンパイラ。
linux系の場合、Rustツールチェインのインストールは次を実行することでできる。
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
参考 : https://www.rust-lang.org/ja/tools/install
環境変数の設定のためにシェルを再起動したりするのを忘れないようにしましょう。
-
ソースを書き込んだCファイルを
src.c
とする。 -
そのソースへのパスを ironcc の引数にとって実行する。
例:
cargo run src.c
こうすることで
src.s
が生成される。 -
src.s
はアセンブリ言語が書かれたファイルである。中身をみたいときはcat src.s
などをすると中身を見ることができる。
-
clang などを用いてアセンブルする。
例:
clang src.s
また、他に ironcc で実装していない機能を部分的に使うときは、clang を用いて、コンパイル、リンクすると良い。
例(
link.c
にリンクしたい関数などを切り出している場合):clang src.s link.c
-
実行する。clang のアセンブル、リンク時になにも引数を渡していない場合、
a.out
という名前で出力される。例:
./a.out
make を用いて自動化されているため、次を実行することで、すべてのテストが実行される。
make testall
また、このリポジトリの Github Actions の欄からもテストの実行を見ることができる。
このコンパイラには自動生成されたドキュメントがあります。たまにコメントもついています。
各 pull requests ごとに ChangeLog を書いています。
make life
Thanks to @uint256_t
make life2
lemolatoon自身による実装
make donut
Thanks to @a1k0n, @hsjoihs
make sl
ref: https://github.com/mtoyoda/sl
このコンパイラはセキュリティキャンプ2022のゼミで開発が始められ、その際には講師の uint256_t さん、 hsjoihs さん、チューターのみなさんによるレビュー、助言、そして同じCコンパイラ受講生のみんなとの切磋琢磨によって開発が進みました。この場を借りて感謝します。