Limitations
This page exists so you do not discover these the hard way. vow 0.1.0 is the first native release.
Language
Section titled “Language”- No garbage collector, and no manual free() — arenas +
region { }scopes; the compiler works out when memory is no longer needed. Analysis is intraprocedural and conservative. - No FFI — by design for v1 (FFI would punch a hole in capability-oriented API confinement).
- Async runtime ships in 0.1.0 —
async fn,await,block_on, thread-pool offload fordb_queryand files. HTTP handlers in vow-web-server are sync; useblock_oninside them. See Async / await. - No SMT contract proving —
requires/ensuresare runtime checks only. dyninterfaces ship — static + vtables; seetests/lang/dyn_shapes.vow.print/eprintare ambient — stdout/stderr via libc with no Caps grant (debug/DX).- Map keys — non-String keys supported in 0.1.0 (
map_new<int, String>()etc.). - JSON is opaque
JsonValue— parse/stringify ship; deep field accessors are still thin. - No inotify yet —
file_mtimeis poll-based. - 29 libraries + vow-web-server on
vpm.vowlang.dev— see Package ecosystem.
Tooling
Section titled “Tooling”- Native C compiler at
lang/native/— zero Python underlang/. Install viacurl -fsSL https://install.vowlang.dev | sh. vow fmt,vow lsp,vow new/vow init,vow inspect,vow profile, curl installer, and bundled lld ship in 0.1.0.- vpm native CLI — default registry
vpm.vowlang.dev. 30 packages seeded. - VS Code extension
vowlang.vow-langon the Marketplace. - HTTP routing in
vow-web-serverv0.2.1 — blocking accept by default; runtime emits HTTP/1.1 + keep-alive when the client sends HTTP/1.1 (chunked for bodies ≥ 1MB).listen_async/listen_concurrentare stubs until v0.3.
Performance and size
Section titled “Performance and size”See /BENCHMARKS.md. Expect losses vs hand-tuned C on some microbenchmarks.