Skip to content

What's New in v1.10

"The Quality Release" — no new language features. Every change makes Wyn faster, safer, and more stable.

Highlights

  • Zero memory leaks — every string, array, and HashMap freed deterministically
  • Faster than Go on compute — fib(35): 33ms vs Go's 38ms
  • 5,306x faster string append than Go — 6ms vs 31,834ms for 1M appends
  • 49KB binaries — down from 425KB
  • .sort() works — was silently a no-op in v1.9, now in-place qsort
  • Stdlib APIs fixed — Json, Http, Db, Crypto all work with correct param counts

Performance

Benchmarkv1.9v1.10
fib(35)120ms33ms
Sort 1M intsbroken15ms
1M string append12,143ms6ms
1M .len()~100ms1ms
wyn build~4s411ms
Binary size425KB49KB
Memory (1M ops)~3GB (leaked)1.4MB

Memory Safety

  • 50+ string functions converted to RC-tracked allocation
  • All buffer overflows eliminated (6 fixed-size buffers → dynamic)
  • Thread-safe RC with atomic CAS operations
  • Concurrent string operations: 30/30 correct, zero crashes
  • Verified with AddressSanitizer + UndefinedBehaviorSanitizer

Bug Fixes

  • .sort() was a no-op — codegen discarded the sorted copy
  • String array .sort() — used int comparator instead of strcmp
  • Signed division-7 / 2 gave -4 instead of -3
  • Division by zero — now panics with clear message (was silent 0)
  • Triple method chain"hello".trim().upper().reverse() crashed
  • Stdlib param counts — all builtin module functions had hardcoded 1-param limit
  • Method chain leak"hello".upper().trim() leaked the intermediate
  • println/print leakprintln(x.to_string()) leaked every call

Testing

  • 110 unit tests + 32 expect/regression tests = 142 total
  • All tests pass on macOS, Linux, Windows (ARM + x64)
  • Zero ASan/UBSan errors

Other Releases

MIT License