Whale コマンドリファレンス

AMD64 アセンブリ、ELF64 オブジェクト構築、開発者向け調査、任意の Whale IR ソケットコマンドを説明します。

Wave Foundation

Whale のビルド

Whale リポジトリで次を実行します。

cargo build --release

コマンドラインのワークフローは、アセンブリ、オブジェクト構築、任意の IR インターフェースを提供します。

whale asm --amd64 <input> -o <output>
whale object <input> -o <output>
whale ir <subcommand> [options]

AMD64 アセンブラ

whale asm --amd64 input.asm -o output.o

AMD64 アセンブラは、入力で表現されたセクション、シンボル、リロケーションを含む ELF64 再配置可能 .o ファイルを書き出します。

開発者向けの調査には、まず --debug-whale を使います。

whale asm --amd64 input.asm -o output.o \
  --debug-whale --token --ast --bytes --dump-hex --stats

利用できる調査フラグには --token--ast--bytes--dump-hex--dump-bin--dump-json--stats があります。--trace はパイプラインの進行を表示します。

オブジェクトラッパー

whale object input.bin -o output.o

object は生のバイト列を読み込み、ELF64 の .text セクションに配置し、オフセット 0 にグローバルな start シンボルを追加します。実行ファイルが必要な場合は、ターゲットプラットフォームのリンカーを使います。

任意の IR ソケット

ir コマンドは、Whale の socket-cli 機能を有効にした場合にだけコンパイルされます。

cargo run -p whale --features socket-cli -- ir lower program.json
cargo run -p whale --features socket-cli -- ir lower program.json -o program.wir

ir lower は Whale フロントエンドスキーマに合うソケット JSON を読み込み、Whale IR へ変換し、既定でモジュールを検証して、テキスト IR を標準出力または -o へ書き出します。--target <triple> はターゲット文字列を選択し、--no-verify は検証を省略します。

socket-cli がない場合、whale ir は再ビルド方法を説明するエラーで終了します。ソケット JSON はバージョン付きの内部交換形式であり、生成側は Whale ビルドが使用するソケットバージョンに合わせる必要があります。