Known Limitations
Wyn is honest about what works and what doesn't.
Runtime
- Recursive spawn —
spawninside recursive functions works reliably up to ~28K outstanding tasks (e.g.,fib(22)). Beyond that, the thread pool can deadlock. Use sequential recursion for deep trees,spawnfor parallel leaf work. - Spawn with closures —
spawnrequires a function pointer. Closures (which capture variables) can't be spawned directly. Workaround: use a regular function with explicit parameters. - Integer overflow — silent wrap-around. Use
Math.checked_add()for detection. string.len()returns bytes — UTF-8 byte count, not character count.- Sort performance —
[int].sort()is ~15x slower than Go for 1M elements due to tagged-union array representation. Fast enough for most use cases (15ms for 1M).
Compile Time
- Compile speed —
wyn buildtakes ~400ms (dev) or ~1.1s (release). The bottleneck is the C compiler (clang/gcc), not Wyn's codegen (11ms). Go's purpose-built compiler is ~3x faster.
Platform Notes
- Windows cross-compilation — not yet supported from macOS. Linux x64/ARM64 work.
- Windows regex — uses built-in NFA engine. No backreferences.
- Mobile —
system()/popen()return stubs on iOS/Android. - WASM — not yet supported. Runtime has POSIX dependencies that need
#ifdefguards.