Skip to content

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 bench with statistics
  • wyn doc --html
  • wyn fmt code formatter
  • wyn test test runner
  • wyn repl interactive mode
  • wyn watch auto-rebuild
  • Online playground
  • Package lockfile (wyn.lock)
  • WebSocket and JWT packages
  • Source maps (#line directives)
  • Math.checked_add/sub/mul
  • Toml.parse/get
  • Bcrypt.hash/verify
  • Log.info/warn/error/debug
  • Base64.encode/decode
  • Regex_match/replace
  • Args.get/has
  • Uuid.v4()
  • --mem-stats flag
  • 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

MIT License — v1.16