github odin-lang/Odin dev-2026-01

4 days ago

New Language Features

New Compiler Improvements

  • Undetected type declaration cycles work-around
  • Fix misleading error messages for init, fini and test attributes
  • Fix automatic objc_msgSend on static methods via selector expression not resolving aliased types
  • Fix #packed #all_or_none
  • Fix auto objc_msgSend incorrectly treating certain class methods as instance methods.
  • Fix handling of #force_inline
  • Fix literal endianness

New Packages

Package Improvements

  • Fix duplicate jpeg.load on JS
  • Added more NSApplication and NSWindow bindings
  • Update kb_text_shape to v2.03
  • Fix default temp allocator underflow bug
  • SDL2: Use multi-pointer so you can pass array
  • Fix function signature for memmove in vendor:libc
  • Freebsd: Fixed 'write' syscall to cause 'ESPIPE' on the pipe fd
  • Update Box2d to 3.1.1
  • Fix core:debug/trace example
  • Make linux.IO_Vec.base a multipointer
  • Ensure libc is linked on Windows for vendor:compress/lz4
  • Change Return Type of sdl2.GetWindowFlags from u32 to Existing WindowFlags bit_set
  • Fix minor issues within curl bindings
  • core:time/timezone added additional search paths to match musl
  • More bindings for Darwin
  • Add @builtin to missing builtin procedure group procs
  • os/os2: fix stale errors on windows when reading from console
  • os/os2: better fix for the stale errors
  • Fix runtime.print_i64 using an OOB index when min(i64) is given.
  • os/os2: use ReadFile for Console reads too, at least for now
  • core:sys/linux Add timerfd syscall wrappers
  • Fix nfds_t alias for Linux
  • core:io/utils: fix buffer size in write_* procs
  • core:net docs: recv of 0 bytes with no error is a graceful close
  • core:math/rand small documentation fix
  • Address issue identifying CDATA in XML file
  • encoding/base32: Fix padding validation for malformed input
  • Fix standard json parsing / unmarshalling issue for pure arrays
  • Add user32 scroll bar related bindings, and FrameRect
  • Add missing 'caller_location' to several procedures in 'slice' package
  • Update letter.odin
  • WebGL binding additions
  • Add JSON5/SJSON Comments When Marshalling
  • Fix Unicode Output When Marshalling JSON
  • Allow Unmarshalling to rune
  • Custom json (un)marshalling, similar to core:fmt's custom formatters
  • Fix net.map_to_ip6 offset
  • [vendor/sdl3] update to sdl 3.4.0

Other

Full Changelog: dev-2025-12a...dev-2026-01

Don't miss a new Odin release

NewReleases is sending notifications on new releases.