Pular para o conteúdo

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.

05-compile-and-bundle.zolo
Playground
// 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 bundle quando 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, prefira zolo build (capítulo 30) ou zolo build --emit zex (capítulo 31).

Veja também

Buscar no Zolo

9 resultados

enespt-br