Skip to content

What's New in v1.9

Wyn v1.9 is the biggest release yet — focused on expressiveness, completeness, and reliability.

Method Chaining

Every method that returns a value can be chained. Arrays, strings, everything.

wyn
var top3 = [5, 3, 8, 1, 9, 2, 7].sort().reverse().slice(0, 3)
var clean = "  HELLO WORLD  ".trim().lower().replace("world", "wyn")
var count = nums.filter(fn(x: int) -> bool { return x > 3 }).sort().len()

Multiline Lambdas

Lambda bodies can now contain multiple statements.

wyn
var processed = nums.map(fn(x: int) -> int {
    var squared = x * x
    var adjusted = squared + 1
    return adjusted
})

Named Arguments

Call functions with named parameters in any order.

wyn
fn create_user(name: string, age: int, role: string = "member") -> string {
    return name + " (" + role + ")"
}

create_user(name: "Alice", age: 30)
create_user(role: "admin", name: "Bob", age: 25)

Tuple Types

Functions can return multiple values.

wyn
fn divmod(a: int, b: int) -> (int, int) {
    return (a / b, a % b)
}

var result = divmod(17, 5)
println(result.0.to_string())  // 3
println(result.1.to_string())  // 2

Generic Structs

Structs with type parameters.

wyn
struct Pair<T> {
    first: T
    second: T
}

var p = Pair { first: 10, second: 20 }
println(p.first.to_string())  // 10

New Stdlib Methods

TypeNew Methods
Arrayfirst(), last(), min(), max(), sum(), each(fn), every(fn), flat_map(fn)
Inttimes(fn), clamp(min, max)
Mathpow(b, e), ceil(x), floor(x), round(x), min(a, b), max(a, b)
Stringpad_left(n, ch), pad_right(n, ch)

Cross-Compilation

Build Linux binaries from macOS:

bash
wyn build --target linux-x64 app.wyn    # → ELF x86_64
wyn build --target linux-arm64 app.wyn   # → ELF ARM64

Package Lockfiles

bash
wyn pkg install redis          # writes wyn.lock
wyn pkg restore                # installs from wyn.lock

Improved Lambda Captures

Lambdas now correctly capture variables from method calls, function calls, and nested expressions — not just binary operands.

Memory Management

  • Block-scoped RC release — strings in loops/if/while no longer leak
  • await_all correctly handles string-returning spawns

Test Suite

90 tests, zero flakes. Build sequentially, run concurrently.

Other Releases

MIT License