Whale-Befehlsreferenz
Beschreibt die Diagnoseausgabe Whale assembler, object wrapper und die optionalen IR-Befehle.
Wave Foundation
Whale Bauen
Führen Sie im Whale-Repository Folgendes aus:
cargo build --release
Eine ausführbare Datei der obersten Ebene verfügt über vier Befehlsfamilien:
whale asm [--amd64 | --aarch64] <input> -o <output>
whale object <input> -o <output>
whale ir <subcommand> [options]
AMD64 assembler
whale asm --amd64 input.asm -o output.o
AMD64 assembler erhält den Pfad .o als Ausgabe und ELF64 relocatable enthält section, symbol und relocation Erstellen object.
Schalten Sie die detaillierte Diagnoseausgabe mit --debug-whale ein.
whale asm --amd64 input.asm -o output.o \
--debug-whale --token --ast --bytes --dump-hex --stats
Zu den Diagnoseflags gehören --token, --ast, --bytes, --dump-hex, --dump-bin, --dump-json und --stats. --trace druckt den Verarbeitungsfortschritt.
Object wrapper
whale object input.bin -o output.o
Der Befehl object platziert Rohbytes in einem ELF64-Abschnitt .text und fügt ein globales start-Symbol am Offset 0 hinzu. Er umschließt rohen Maschinencode in einer ELF-Objektdatei.
Optional IR socket
Der Befehl ir ist nur enthalten, wenn Whale mit der Funktion socket-cli erstellt wird.
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 liest JSON von Whale socket schema, wandelt es in Whale IR um und überprüft das Modul. Der Text IR wird in den Pfad stdout bzw. -o ausgegeben. --target <triple> ersetzt die Zielzeichenfolge und --no-verify lässt die Validierung aus.
Um den Befehl IR verwenden zu können, muss Whale mit der Funktion socket-cli erstellt werden. Socket JSON Hersteller und Whale müssen dasselbe socket schema version verwenden.