Version Compatibility
Which features are available in which Wyn version.
v1.16.0 (Current)
The Batteries Release — a working C FFI: extern fn with correct int/float/bool/string/void type mapping, and C-library linking via a new [ffi] section in wyn.toml (libs/lib_dirs/include_dirs). Plus Pythonic sugar: range(a, b) / range(a, b, step) as a for-loop iterator (descending on a negative step), and if let <pattern> = <expr> { … } else { … } conditional binding on any Option/Result. Backward compatible — no source changes required. See What's New in v1.16.
v1.15.0
The Payloads Release — float? / bool? and Result<float, _> / Result<bool, _> now compile in every position (return, Some/None/Ok/Err, statement- and expression-position match, and the .is_some() / .unwrap() / .unwrap_or() methods); previously only int and string payloads worked. Function names can now shadow C standard-library symbols like connect, read, write, and socket. Backward compatible — no source changes required. See What's New in v1.15.
v1.14.0
The Polish Release — clean optional and result return types (-> int?, -> string?, -> Result<int, string> instead of the old mangled names), match as an expression on any Option/Result (var msg = match r { Ok(v) => …, Err(e) => … }), type-inferred default arguments (fn greet(who = "world")), println(array), negative string indexing (s[-1]), and if/else where all branches return no longer needs a trailing return. Backward compatible — no source changes required. See What's New in v1.14.
v1.13.0
The Pythonic Release — in / not in membership (arrays, strings, maps), negative indexing (a[-1]), open-ended slices (a[:2], a[2:], a[:]), map iteration (for k, v in map), tuple unpacking and swap (var a, b = 1, 2, a, b = b, a), and Some/None/Ok/Err for any payload type in any context. Backward compatible — no source changes required. See What's New in v1.13.
v1.12.0
The Hardening Release — memory-safety fixes (string use-after-free, print/println double-free, Db.query/Json.keys heap overflow, 512-byte interpolation truncation), cooperative Time::sleep for fire-and-forget spawn, and a warning-clean build. All memory fixes verified under AddressSanitizer. Drop-in upgrade — no source changes required. See What's New in v1.12.
v1.11.0
The Developer Experience Release — enum.to_string(), for i, v in arr, int? optionals, "ha" * 3 string repeat, wyn test cross-platform, wyn fmt, typed arrays, better error messages.
v1.10.0
The Quality Release — zero memory leaks, 2,024x faster string append, 189x faster sort, 49KB binaries. Switched to real OS threads (replacing v1.8 green threads).
v1.9.0
- Coroutine-based concurrency (
spawn/await) - Channels (
Task.send/Task.recv/Task.select_2) - I/O event loop (kqueue/epoll)
wyn benchwith statisticswyn doc --htmlwyn fmtcode formatterwyn testtest runnerwyn replinteractive modewyn watchauto-rebuild- Online playground
- Package lockfile (
wyn.lock) - WebSocket and JWT packages
- Source maps (
#linedirectives) Math.checked_add/sub/mulToml.parse/getBcrypt.hash/verifyLog.info/warn/error/debugBase64.encode/decodeRegex_match/replaceArgs.get/hasUuid.v4()--mem-statsflag- PGO support (
--pgo)
v1.7.0
- Generic functions (monomorphization)
- Pattern matching (
match) - Data enums with associated values
- Pipe operator (
|>) - String interpolation (
${expr}) - Package system (
wyn.toml) - 36 official packages
- VS Code extension
- Neovim plugin
- Extension methods on structs
v1.6.0
- Module system (
import) - Visibility (
pub) - Namespace imports
- Multi-file compilation
v1.5.0
- HTTP server (
Http.listen/Http.accept) - SQLite (
Db.open/Db.query) - JSON parsing
- File I/O
- Networking (TCP sockets)
- HashMap and HashSet
v1.4.0
- Structs with methods
- Enums (simple)
- For-in loops
- Array methods (push, pop, map, filter)
v1.3.0
- Float support
- String methods (upper, lower, trim, split, replace)
- Math module
- Error handling (Result type)
v1.2.0
- Functions with return types
- If/else expressions
- While loops
- Constants (
const)
v1.1.0
- Basic types (int, string, bool)
- Variables (
var) - Print/println
- Basic arithmetic
See Also
- What's New in v1.16 — latest release
- What's New in v1.15 — the Payloads Release
- What's New in v1.14 — the Polish Release
- What's New in v1.13
- What's New in v1.12
- What's New in v1.11
- Known Limitations — current limitations