18 · Módulos
C / C++ · Clang · C ABI
Prepare bibliotecas C17 e C++17 com Clang. C++ expõe classes concretas suportadas; ownership nativo e ponteiros ou templates não suportados exigem adapters explícitos. O código preparado executa sem o compilador de fontes.
Nesta página
Execute localmente com o plugin e runtime correspondentes. Estes exemplos não rodam no playground do navegador.
C / C++ / Clang · C ABI.
use plugin native::{cpp}
extern cpp from "./native_fixtures/Person.cpp" use {Person}
extern cpp fn greet(name: str) -> str {
return "Hello " + name;
}
extern cpp async fn later(value: int) -> int {
#include <chrono>
#include <thread>
std::this_thread::sleep_for(std::chrono::milliseconds(10));
return value + 1;
}
extern cpp fn call(callback: fn(int) -> int) -> int {
return callback(40);
}
let person = Person.new(name: "Ana", age: 30)
print(person.greet()) // expected: Hello Ana
print(person.birthday()) // expected: 31
person.age = 32
print(person.age) // expected: 32
print(Person.twice(21)) // expected: 42
print(greet("C++")) // expected: Hello C++
print(await later(41)) // expected: 42
print(call(|value| value + 2)) // expected: 42
Requer a CLI/host do Zolo — abra no playground ou rode localmente.
Preparação e distribuição
O empacotamento sem fontes pode preservar artefatos estrangeiros preparados, mas não remove dependências de runtime ou plataforma. Hospedagem na VM, native e LLVM está coberta; bindings estrangeiros rejeitam alvos WebAssembly não suportados. A aceitação recente dos providers cobre Windows x64. Python está verificado especificamente com CPython 3.12; outras plataformas precisam de validação própria.