Skip to content

Wyn v1.10: The Quality Release

v1.10 focuses on what matters most: speed, correctness, and developer experience. No new syntax — just making everything faster and more reliable.

Spawn/Await: Real Parallelism

The biggest change: spawn now uses real OS threads via a thread pool. Previous versions used cooperative coroutines — which meant zero parallelism for CPU-bound work.

wyn
fn fib(n: int) -> int {
    if n <= 1 { return n }
    return fib(n - 1) + fib(n - 2)
}

fn main() -> int {
    // Each fib(38) takes ~240ms
    var a = spawn fib(38)
    var b = spawn fib(38)
    var c = spawn fib(38)
    var d = spawn fib(38)
    
    // All 4 complete in ~240ms total
    await a; await b; await c; await d
    return 0
}
Metricv1.9v1.10
4x fib(38) parallel960ms (no speedup)240ms (4x speedup)
4x sleep(100ms)400ms (serial)103ms (parallel)
Spawn overhead~20μs6μs
Thread poolNoneCPU-count threads, 512KB stacks

49KB Binaries

wyn build --release now produces stripped, dead-code-eliminated binaries:

$ wyn build --release hello.wyn
$ ls -la hello
-rwxr-xr-x  1 user  staff  49KB  hello

That's 88% smaller than the dev build (425KB). Achieved via -ffunction-sections -fdata-sections + linker dead-stripping + strip.

Faster Compilation

make now auto-builds a precompiled runtime library (libwyn_rt.a). User programs link against it instead of recompiling 33 source files:

v1.9v1.10
wyn build~4s~1s
Test suite (110 tests)~460s~97s (Linux)

Source-Line Error Messages

Errors now show the source line with a caret:

Error: Type mismatch at line 6:0
  --> app.wyn:6:0
     6 |     var result: string = add(1, 2)
       | ^
  Expected: string (text string)
  Got:      int (integer)
  Suggestion: use .to_string() to convert

No More Name Collisions

Users can now define functions named swap, clamp, input, sign, or any of the ~200 runtime function names without C linker errors. The codegen automatically prefixes user-defined names that collide.

String Concat Optimization

The s = s + x pattern is now optimized: when the string has a single owner, it's grown in-place with 2x capacity instead of copying.

50K char-by-char concat: 314ms → 163ms (48% faster)

CI: 4 Platforms Green

All tests pass on macOS ARM, macOS Intel, Ubuntu, and Windows.

Playground

Try Wyn in your browser at play.wynlang.com.

Upgrade

bash
wyn upgrade

MIT License