Skip to content

FAQ

Common questions about the Wyn programming language.

What is Wyn?

Wyn is a compiled programming language that transpiles to C. It combines the simplicity of Python with the performance of Go — structs with inline methods, spawn/await concurrency, and a batteries-included standard library.

Is Wyn production ready?

Yes. Wyn v1.8.0 ships with 27 stdlib modules, 270+ methods, a comprehensive test suite (48 tests), and active development.

What can I build with Wyn?

  • CLI tools and system utilities
  • Web servers and APIs
  • Desktop apps (via GUI module)
  • Games
  • Data processing pipelines
  • Python libraries (via --python flag)

How does compilation work?

Wyn uses a two-stage process:

  1. Wyn → C (the Wyn compiler)
  2. C → native binary (bundled TCC or your system's C compiler)
sh
wyn run hello.wyn         # compile + run (~300ms)
wyn build hello.wyn       # compile to binary
wyn build hello.wyn --release  # optimized binary

Does Wyn have garbage collection?

No. Wyn uses Automatic Reference Counting (ARC) — deterministic, no GC pauses, minimal overhead.

How do I handle errors?

wyn
fn safe_div(a: int, b: int) -> ResultInt {
    if b == 0 { return Err("divide by zero") }
    return Ok(a / b)
}

var result = safe_div(10, 0)
var value = result.unwrap_or(-1)    // -1

Does Wyn support concurrency?

Yes — lightweight tasks with spawn/await (3μs overhead, pooled coroutine stacks) and channels:

wyn
var f1 = spawn compute(100000)
var f2 = spawn compute(200000)
var total = await f1 + await f2

Can I see the generated C code?

Yes:

sh
wyn run hello.wyn --debug
cat hello.wyn.c

What are the system requirements?

  • OS: Linux, macOS, or Windows
  • No external dependencies (TCC is bundled)
  • Optional: GCC/Clang for --release builds

File extensions

Both .wyn and .🐉 are supported everywhere — CLI, imports, editor extensions.

MIT License