Pular para o conteúdo

run vs build

Nesta página

O Zolo oferece dois modos principais de execução. zolo run interpreta o programa diretamente na VM — ideal para scripts, iteração rápida e para recursos que dependem do prelúdio da VM (signals, schemas, effects, channels, máquinas de estado). zolo build compila via Cranelift e produz um executável nativo real para a plataforma do host; não há Lua nem VM no binário de saída.

O mesmo programa funciona nos dois backends, desde que não use recursos exclusivos da VM:

zolo run interpreta; zolo build emite um binário nativo. Saída idêntica em ambos.

01-run-vs-build.zolo
Playground
// Feature: the two backends — VM (`zolo run`) vs native (`zolo build`)

// Syntax: `zolo run file.zolo`  |  `zolo build file.zolo`

// When to use: `run` for scripts, REPL-speed iteration, and VM-only

//   features (signals, schemas, effects, comptime-emit, channels,

//   machines). `build` for a standalone native executable.


// This program runs identically on both backends:

//

//   zolo run  30-compilation/01-run-vs-build.zolo   # interpreted (VM)

//   zolo build 30-compilation/01-run-vs-build.zolo  # native binary (Cranelift)

//   ./01-run-vs-build                               # then run the binary

//

// `zolo build` with no `--emit` defaults to a NATIVE executable compiled

// through Cranelift. There is no Lua/VM in the output — it is a real

// machine-code binary linked for the host platform.


let answer = 6 * 7
print("the answer is", answer)

// Gotcha: the native backend has no VM prelude. Globals the VM installs

// (signals, schemas, effects, channels, `machine`) are NOT available when

// you `zolo build`. Use `zolo run` for those. See the README capability

// matrix for the full VM-only list.

//

// expected (either backend):

//   the answer is	42

Requer a CLI/host do Zolo — abra no playground ou rode localmente.

Atenção: o backend nativo não carrega o prelúdio da VM. Globais como signal, schema, effect, machine e send/recv não existem no executável nativo — chamá-los retornaria nil em silêncio. Use zolo run durante o desenvolvimento e zolo build para distribuir o binário final.

Desafio

Adicione uma chamada a signal(0) ao exemplo e tente zolo build. O que acontece? Remova-a e repita o build — observe a diferença.

Veja também

Buscar no Zolo

9 resultados

enespt-br