compile e bundle
Nesta página
Enquanto zolo build produz código de máquina nativo, os comandos compile
e bundle operam no pipeline VM/Lua — o mesmo que zolo run usa
internamente.
zolo compile imprime no stdout o código Lua gerado para o arquivo fonte.
É útil para inspecionar como o Zolo transpila expressões, closures ou
f-strings antes de a VM executá-las.
zolo bundle vai além: ele percorre a entrada e todos os seus módulos
importados, achata tudo em um único arquivo Lua autocontido e grava o
resultado no caminho indicado por -o. O arquivo resultante pode ser
enviado a qualquer runtime Lua 5.1 sem depender da toolchain do Zolo.
zolo compile mostra o Lua de greet; zolo bundle -o app.lua grava o programa completo em um arquivo portátil.
// Feature: source-level outputs — `zolo compile` and `zolo bundle`
// Syntax: `zolo compile file.zolo` | `zolo bundle file.zolo -o out.lua`
// When to use: `compile` shows the generated Lua source for the VM
// target; `bundle` flattens an entry file + its modules into one Lua
// file you can ship to any Lua 5.1 runtime.
// Run:
// zolo compile 30-compilation/05-compile-and-bundle.zolo
// # prints generated Lua to stdout
// zolo bundle 30-compilation/05-compile-and-bundle.zolo -o app.lua
// # writes a single self-contained Lua file
//
// These targets are about the VM/Lua pipeline (what `zolo run` uses),
// as opposed to `zolo build` which produces native machine code.
fn greet(name: str) -> str {
return "Hello, {name}!"
}
print(greet("world"))
// expected (when run): Hello, world!
Requer a CLI/host do Zolo — abra no playground ou rode localmente.
Use
zolo compile/zolo bundlequando precisar inspecionar a saída intermediária da VM ou gerar um artefato Lua para ambientes que não suportam o runtime nativo do Zolo. Para um binário standalone, prefirazolo build(capítulo 30) ouzolo build --emit zex(capítulo 31).
Veja também