Skip to content

Known Limitations

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

Runtime

  • Recursive spawnspawn 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 closuresspawn 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 speedwyn 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.
  • Mobilesystem()/popen() return stubs on iOS/Android.
  • WASM — not yet supported. Runtime has POSIX dependencies that need #ifdef guards.

MIT License