github odin-lang/Odin dev-2025-12

5 hours ago

Breaking changes

  • BREAKING: Use chacha8rand as the default RNG.

The old default generator is available under core:math/rand in rand_pcg.odin in case you require a seed to return the same sequence as before.

New Language Features

  • Introduce #all_or_none for structs, which requires that struct literals have all or none of the fields set

New Compiler Improvements

  • Use SIP hash as name canonicalization hash
  • Moved checking of -vet-unused-procedures and -vet-packages flags to after all flags are parsed
  • Fixes for 32 bit with regards to typeid
  • Fix #5894
  • Remove #no_copy
  • Don't check proc signature similarity for imported Objective-C methods
  • Ubuntu arm ci and posix fixes
  • Fix allocation of anonymous globals
  • Fix #5967: Incorrect stack overflow warning for by ref switches over unions
  • Skip collision panic when package names aren't unique

New Packages

  • Add vendor:curl

Package Improvements

  • Improve docs for stable sort procedures
  • Fix: linalg.quaternion_from_forward_and_up
  • Clone unquoted strings in encoding/json
  • Add missing SetLayeredWindowAttributes
  • Add io uring API
  • Add FreeLibraryAndExitThread in kernel32. Add EnumProcessModules in psapi
  • Fix typo in NS.String_initWithCString
  • Remove the Darwin-specific paths from thread_unix
  • Fix thread_act_t size
  • Fix: make choice_bit_set respect bit_set domain
  • math/rand: Add range-based number generation procedures
  • Fix is_pointer_internally not handling Named Types
  • Faster big.itoa
  • Add Xoshiro256 RNG
  • Add LockFileEx/UnlockFileEx and related flags
  • Fix vendor:stb/image resize alpha_channel parameter type to c.int
  • Move some OS General_Error values to io.Error
  • Fix out of bounds access when parsing end_pos
  • Add WSASendTo and WSARecvFrom
  • Update d3d12 bindings for D3D12_FEATURE_D3D12_TIGHT_ALIGNMENT
  • Add NSWindow coordinate space conversion bindings
  • Don't build log allocator file on freestanding targets
  • Adjust docs links for satellite SDL libraries
  • Increase base64 decoding table size to 256, preventing out of bounds reads
  • vendor/xlib: a few more IM-related procedures and constants
  • add math.sign and math.sign_bit overloads for int types
  • Implement more Linux syscalls
  • Add SIO_UDP_CONNRESET winsock constant
  • os2.File_Stream

Other

  • Fix up macOS CI

Full Changelog: dev-2025-11...dev-2025-12

Don't miss a new Odin release

NewReleases is sending notifications on new releases.