Limitations
This page exists so you do not discover these the hard way. Vow is pre-1.0.
Language
- No garbage collector, and no manual free() — arenas; the compiler works out when memory is no longer needed. Analysis is intraprocedural and conservative; escaping values live until the root arena is destroyed.
- No FFI — by design for v1 (FFI would punch a hole in the capability model).
- No async runtime — blocking I/O only.
- No SMT contract proving —
requires/ensuresare runtime checks only. - Small surface — syntax and stdlib are still moving; do not assume every example on this site is in the shipped compiler the same day.
Tooling
- Compiler is Python + llvmlite (not self-hosted).
vow fmtis a simple token formatter.- No central package registry yet.
Security model caveats
- Capabilities protect stdlib effect entry points. A bug in the runtime C shim is still a bug.
- Granting a wide path (for example
file-read:/) is still powerful — attenuation is your responsibility.
Source notes:docs/limitations.mdin the repo.