クイックスタート
これは、コンパイラを動作させるためのクイックスタートガイドです。各手順の詳細については、この章の他のページを参照してください。
まず、リポジトリをクローンします。
git clone https://github.com/rust-lang/rust.git
cd rust
コンパイラをビルドするときは、cargo を直接使うのではなく、“x” というラッパーを使います。これは ./x で呼び出します。
ビルド用の設定を作成する必要があります。適切なデフォルト設定を作成するには ./x setup を使用します。
./x setup
次に、コンパイラをビルドできます。コンパイラ、標準ライブラリ、およびいくつかのツールをビルドするには ./x build を使用します。また、単にチェックするだけであれば ./x check も使用できます。これらのコマンドはいずれも、特定のコンポーネントやパスを引数として受け取ることができます。たとえば、コンパイラだけをチェックするには ./x check compiler を使用します。
./x build
標準ライブラリのコンパイル方法に影響しないコンパイラの変更を行う場合(たとえば、エラーメッセージの変更など)は、再コンパイルを避けるために
--keep-stage-std 1を使用してください。
コンパイラと標準ライブラリをビルドすると、動作するコンパイラツールチェーンが手元にできます。リンクすることで、rustup から使用できます。
rustup toolchain link stage1 build/host/stage1
注: ./x setup tools を使用した場合、デフォルトのステージは 1 ではなく 2 に設定されます。コマンドをそれに合わせて調整してください。
rustup toolchain link stage2 build/host/stage2
これで、ビルドにリンクされた stage1 という名前のツールチェーンができました。これを使ってコンパイラをテストできます。
rustc +stage1 testfile.rs
変更を行った後は、./x test でコンパイラのテストスイートを実行できます。
./x test はテストスイート全体を実行しますが、これは遅く、通常は必要なものではありません。通常、コンパイラを変更した後に必要なのは ./x test tests/ui です。これは、特定のテストファイルに対してコンパイラを呼び出し、その出力を確認するすべての UI テストをテストします。
./x test tests/ui
変更を行い、新しい出力で .stderr ファイルを更新したい場合は、--bless を使用してください。
おめでとうございます。これでコンパイラに変更を加える準備ができました! さらに質問がある場合は、章全体に答えが含まれているかもしれません。含まれていない場合は、Zulip で気軽に助けを求めてください。
VSCode、Vim、Emacs、Helix、または Zed を使用している場合、./x setup はエディター設定をセットアップするかどうかを尋ねます。詳細については、推奨ワークフローを確認してください。