Whale 명령 참조
Whale assembler, object wrapper, 진단 출력과 선택적 IR 명령을 설명합니다.
Wave Foundation
Whale 빌드
Whale 저장소에서 다음을 실행합니다.
cargo build --release
최상위 실행 파일에는 네 가지 명령 계열이 있습니다.
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는 .o 경로를 출력으로 받고, section, symbol과 relocation을 담은 ELF64 relocatable object를 만듭니다.
상세 진단 출력은 --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는 처리 과정을 출력합니다.
Object wrapper
whale object input.bin -o output.o
object 명령은 raw byte를 ELF64 .text section에 넣고 offset 0에 전역 start symbol을 추가합니다. 이 명령은 raw code를 ELF object로 감싸는 용도입니다.
선택적 IR socket
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 socket schema의 JSON을 읽고 Whale IR로 변환한 뒤 모듈을 검증합니다. 텍스트 IR은 stdout 또는 -o 경로에 출력됩니다. --target <triple>은 대상 문자열을 바꾸고 --no-verify는 검증을 생략합니다.
IR 명령을 사용하려면 Whale을 socket-cli 기능과 함께 빌드해야 합니다. Socket JSON 생산자와 Whale은 같은 socket schema version을 사용해야 합니다.