Skip to content

Known Limitations

Wyn is honest about what works and what doesn't.

Runtime

  • Recursive spawn - spawn inside 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, spawn for parallel leaf work.
  • Spawn with closures - spawn requires 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 build takes ~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 #ifdef guards.

See Also

MIT License - v1.19.1