Language status

Built from status.json. Last updated (2026-08-02T03:22:10Z). Graded as: typechecker + native codegen (interpreter.run_source deprecated, not graded).

Milestone
M9
Version
0.1.0
Commit
c5914ce
Features working
51 of 52 (51 works · 1 partial · 0 not started)
Vow language feature status
FeatureStateNote
functionsworkssimple.vow native exit 3 (1+2); compile+run OK
let/varworksvar_ok.vow exit 2; let_assign_err type error
assignmentworksvar reassignment; let/params reject
if/elseworksMinimal native exit 7
whileworksSum 0..4 native exit 10
forworksC-style for var+i++; for-in collection; for-in range 0..n; grammar_loops.vow exit 39
compound assignmentworks+=/-=/*=/= in phase4_syntax.vow
lambda expressionsworks(x: int) -> x * 3 in closure_map.vow
parens around conditionsworksif/while/for/match/switch reject if (cond); expr grouping OK (parens.vow exit 27)
arithmeticworksNative ops; parens.vow exit 27
comparisonsworksRelational ops in arithmetic programs
booleansworksand/or/not short-circuit (test_logic.py)
integersworksint ops; int64+as on native
floatsworksf32/f64 + casts; phase2_collections.vow
stringsworksConcat/len/index native
string opsworksstr_trim/replace/split/join in phase2_collections.vow
Phase 1 stdlibworksphase1_stdlib.vow exit 0 with --grant clock:; docs/stdlib/README.md
arraysworksIndex + .len() native
array mutationworksarray_push + index assign in phase2_collections.vow
mapsworksMap<String,V> via map_new/map_get/map_set; string keys v1
struct mutationworksField assign p.x = 5 in phase2_collections.vow
structs/classworksself-methods exit 9; class≡struct; builtin shadow → decl error (test_method_shadow.py)
enumsworksshape.vow exit 24; constructors Shape::Circle(n)
match + exhaustivenessworksPatterns use Circle(r) not Shape::Circle(r); exhaustive OK
genericsworksoption.vow exit 49; monomorphization
Option/ResultworksPrelude via option.vow
modules/importsworksmod_main.vow exit 42
interfacesworksinterface_basic.vow 12; dyn_shapes.vow prints 21 (exit 0)
print/stdoutpartialPARTIAL by design — ambient print/eprint (no Caps); see docs/limitations.md
no-implicit-conversionworksint64+int type error
unused-Result errorworksignored_result.vow type error
capabilities (needs/with/--grant)workscaps_poc exits 3/2 with fixture; cap_hardening FIX1-4 PASS
Phase 3 caps (attenuation/audit)worksphase3_caps.vow; scoped_to narrows (denies /etc/passwd); --audit-log
Phase 3 grants manifestworksvow.grants.toml via grants_manifest.py
Phase 3 budgetsworks--budget cpu-ms:N; needs budget(cpu)
Phase 3 profileworksvow profile file.vow --samples N
Phase 3 asyncworksphase3_async.vow; async fn + await (blocking MVP desugar)
Phase 3 inspectworksvow inspect <binary> --json
Db / Log / Rand capsworksphase2_caps.vow + cap_hardening test_db_log.sh + test_rand.sh
contracts (requires/ensures)workswithdraw.vow exit 70; withdraw_bad native trap
arena memory + escape analysisworksarena_local.vow exit 9; region { }; vow explain LOCAL
machine-readable JSON errorsworksvow check --json
vow explainworksvow explain arena_local.vow exit 0
type aliasesworkstype Score = int in closure_map.vow
function values + lambdasworksfn refs + lambdas in closure_map.vow
array_map / array_filterworksclosure_map.vow stdout [2,4,6,8] etc.
syntax polishworksfunction alias, +=, optional ; — phase4_syntax.vow
tooling (fmt/LSP/install/new)worksvow fmt/lsp/new/init; install.sh; test_project_new.py
concurrency modelworksthreads_sum.vow with --grant threads (test_threads.py)
process spawn/wait (Proc)worksprocess_echo.vow with --grant proc: (test_process.py)
file_mtimeworkstest_file_mtime.py
HTTP framework (vow-web-server)worksframeworks/vow-web-server/tests/ (separate tree)
method chainingworksmethod_chain.vow (test_method_chain.py)
function overloadingworksoverload.vow (test_overload.py)
class inheritanceworksinheritance.vow (test_inheritance.py)
constructors (new Type)worksergonomics.vow (test_ergonomics.py)
switch / caseworksDesugars to match; ergonomics.vow
try / catch (Result)worksergonomics.vow
parenthesized expressionsworksGrouping OK; condition parens rejected
rand_next / clock_nowworksphase5_time.vow (test_phase5.py)