Skip to content

Limitations

This page exists so you do not discover these the hard way. vow 0.1.0 is the first native release.

  • 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.0async fn, await, block_on, thread-pool offload for db_query and files. HTTP handlers in vow-web-server are sync; use block_on inside them. See Async / await.
  • No SMT contract provingrequires / ensures are runtime checks only.
  • dyn interfaces ship — static + vtables; see tests/lang/dyn_shapes.vow.
  • print / eprint are 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 yetfile_mtime is poll-based.
  • 29 libraries + vow-web-server on vpm.vowlang.dev — see Package ecosystem.
  • Native C compiler at lang/native/ — zero Python under lang/. Install via curl -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-lang on the Marketplace.
  • HTTP routing in vow-web-server v0.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_concurrent are stubs until v0.3.

See /BENCHMARKS.md. Expect losses vs hand-tuned C on some microbenchmarks.