github odin-lang/Odin dev-2026-05

4 hours ago

New Language Features

  • Native Array Casting Semantics, e.g. cast([4]f32)4x_u32 (PR #6605)
  • Increase matrix limit from 16 to 64 elements, allowing for up to matrix[8, 8]T

New Compiler Improvements

  • Add -debug default behavior usage docs (PR #6511)
  • Fix output of filename when outputting docs with the -in-source-order option (PR #6536)
  • Fix #no_bounds_check regression (PR #6541)
  • Fix target feature lookup, canonicalize target_features_set (PR #6544)
  • Fix (Issue #6344) - Field-first index writes on #soa[dynamic]T and #soa[]T (PR #6539)
  • Fix aligned_alloc not defined on Android/Bionic (PR #6519)
  • Fix break/continue being allowed in a nested unrolled range loop (PR #6521)
  • SROA and simplification passes on -o:minimal (PR #6553)
  • Fix array counts for floats that are exactly representable as integers e.g. [1.1e4]int (PR #6583)
  • Prevent coredump when child process gets killed by signal (PR #6586)
  • Support multiple return values within compound literal elements (PR #6596)
  • Fix (Issue #5422) - Make @(rodata) on constants yield "not supported" message (PR #6601)
  • Fix (Issue #6594) - Report cycle when assigning variable to itself (PR #6599)
  • Fix (Issue #6621) - Report cycle for type_of (PR #6624)
  • Removed moribund Essence OS from supported targets (PR #6623)
  • Add intrinsics.c_va_* (PR #6629)
  • Fix type info not being generated for types only used in []typeid literals (PR #6630)
  • Fix compiler warning on Linux (PR #6638)

New Packages

  • [core:crypto/noise] Add Noise implementation (PR #6573)

Package Improvements

  • [core:os] Add dir procedure (PR #6517, PR #6528)
  • [base:runtime] Native simd width (PR #6545)
  • [core:os] Fix _volume_name_len to handle paths of purely path separators (PR #6547)
  • [core:math/linalg] Faster dot, cross3, floor, ceil, and add trunc (PR #6549)
  • [core:math/linalg] More matrix related calls: pseudo_inverse, inverse_lu_decomposition, matrix_inverse_gauss_jordan
  • [core:mem/virtual] Fix arena overcommit bug (PR #6552)
  • [core:sys/linux] Fix missing argument in adjtimex syscall (PR #6502)
  • [vendor:wgpu] Update to v29.0.0.0 (PR #6551)
  • [core:sys/freebsd] Add ioctl and stdio FILENO constants (PR #6537)
  • [core:nbio] Handle EOF in poll on Posix (PR #6556)
  • [core:container/xar] Fix a typo in example (PR #6559)
  • [core:testing] Ensure make_* style bounds traps are handled in test runner expect_signal on Windows (PR #6563)
  • [core:sys/windows] Add I/O Ring API bindings (PR #6562)
  • [vendor:directx/d3d12] Fix D3D12_BARRIER_SUBRESOURCE_RANGE struct (PR #6557)
  • [core:testing] Fix stop reason being wrong for OOB on Windows (PR #6570)
  • [core:fmt] Remove redundant 'defer bufio.writer_flush' from fprint procs (PR #6567)
  • [vendor:zlib] Fix signature of inflateInit_ (PR #6566)
  • [vendor:sdl3] Mixer: Removed #by_ptr from args that are valid as nil (PR #6576)
  • [core:mem/virtual] Fix map_file usage example (PR #6577)
  • [core:mem/virtual] Add address_hint to reserve (PR #6558)
  • [core:os] Fix stem on empty path (PR #6579)
  • [core:path/filepath] Create wrappers for allocating procedures (PR #6575)
  • [core:fmt] Omit value when formatting map[T]struct{} sets (PR #6581)
  • [vendor:vulkan] Add version macros (PR #6565)
  • [core:sys/windows] Add Registry Association API (PR #6525)
  • [core:sys/windows] Fix LockFileEx and UnlockFileEx (PR #6625)
  • [core:math/linalg] Fix negated quaternions in angle_from_quaternion (PR #6607)
  • [core:sys/linux] Emulate dup2 better on arm64 and riscv (PR #6632)

Full Change Log

Full Changelog: dev-2026-04...dev-2026-05

Don't miss a new Odin release

NewReleases is sending notifications on new releases.