$ hive build main.hive
Compiled main.hive -> main (1s)
$ hive build main.hive --target linux/arm64
Compiled main.hive -> main-linux-arm64 (2s)
$ hive build main.hive --target=windows/amd64
Compiled main.hive -> main-windows-amd64.exe (2s)$ hive build main.hive --target linux/sparc
hive: `--target linux/sparc` is not a platform the Go toolchain builds for. A target is a `goos/goarch` pair — `linux/arm64`, `darwin/arm64`, `windows/amd64` — and `go tool dist list` names every one it knows.
$ hive build main.hive --target
hive: `--target` was given no platform to build for. It takes a `goos/goarch` pair — `hive build <entrypoint.hive> --target linux/arm64`.
$ hive check main.hive --target linux/arm64
hive: `--target` is a flag of `hive build` and `hive export`. `check` builds nothing for another platform.O último passo de um build é a toolchain do Go, então um programa Hive é construído para outra plataforma do jeito que qualquer programa Go é: dizendo à toolchain qual. hive build recebe um --target, um par goos/goarch, e o par é verificado antes de qualquer coisa ser compilada. go tool dist list nomeia toda plataforma que a toolchain conhece, e uma que ele não nomeia é recusada ali mesmo, como um erro no que foi digitado — e não dez segundos depois, por um build falhando numa linguagem que você não escreveu. A lista é perguntada em vez de guardada, então uma plataforma que o Go aprender amanhã não exige mudança nenhuma aqui.
main.hive é main, e um build cruzado é main-linux-arm64, então um build cruzado nunca substitui o local em silêncio. O .exe segue o target e não a máquina: --target windows/amd64 escreve main-windows-amd64.exe de qualquer lugar.CGO_ENABLED=0, e um build para esta máquina não recebe ambiente nenhum — byte a byte o build que sempre foi.build e export o recebem, os dois comandos que escrevem algo para uma plataforma. check, emit, test e container recusam a flag em vez de ignorá-la em silêncio. No hive run, tudo depois do ponto de entrada pertence ao programa, então um --target escrito ali é repassado direto para ele.