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.
fn fib(n: int) -> int {
if n <= 1 { return n }
return fib(n - 1) + fib(n - 2)
}
fn main() -> int {
// Each fib(38) takes ~150ms
var a = spawn fib(38)
var b = spawn fib(38)
var c = spawn fib(38)
var d = spawn fib(38)
// All 4 complete in ~150ms total
await a; await b; await c; await d
return 0
}| Metric | v1.9 | v1.10 |
|---|---|---|
| 4x fib(38) parallel | serial (no speedup) | ~150ms - same as one fib(38) |
| 4x sleep(100ms) | 400ms (serial) | 103ms (parallel) |
| Spawn overhead | ~20μs | ~2μs (re-measured on current hardware) |
| Thread pool | None | CPU-count threads, 512KB stacks |
50KB 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 50KB helloAchieved via -ffunction-sections -fdata-sections + linker dead-stripping + strip. Before v1.10 an unstripped dev build was around 425KB; today's dev build is 51KB and --release is 50KB.
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.9 | v1.10 | |
|---|---|---|
wyn build | ~4s | 288ms dev / 1.17s --release (current hardware) |
| 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 convertNo 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
wyn upgradeRelated Posts
- 50KB Hello World - binary size deep-dive
- Wyn Benchmarks - updated performance numbers
Related Docs
- Spawn & Await - the new real-parallelism model
- Memory Management - zero-leak ARC system
- What's New in v1.10 - detailed release notes