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 路径作为输出,并且 ELF64 relocatable 包含 section、symbol 和 relocation 创建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 命令将原始字节放入 ELF64 .text 部分,并在偏移量 0 处添加全局 start 符号。它将原始机器代码包装在 ELF 对象文件中。

可选 IR socket

仅当使用 socket-cli 功能构建 Whale 时,才包含 ir 命令。

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读取Whalesocketschema的JSON,将其转换为WhaleIR,并验证模块。文本IR输出到路径stdout或-o。 --target <triple> 替换目标字符串,--no-verify 省略验证。

要使用 IR 命令,Whale 必须使用 socket-cli 功能构建。 Socket JSON 生产者和 Whale 必须使用相同的 socket schema version。