github odin-lang/Odin dev-2026-04

4 hours ago

New Language Features

New Compiler Improvements

  • Limit maximum exponent of integer literals to avoid unnecessary work
  • Add -in-source-order option to odin doc to show docs in source order within each file
  • Support clang-style +/- prefixes in target features
  • Fix #6396: handle full-width bit_field literal masks
  • Fix #6401: generic cycle deadlock in struct layout
  • Add support for other Android architectures
  • Fix #5602: "Internal Compiler Error: Type_Info for 'x' could not be found" for poly procs with named parameters
  • Continuous Compiler Improvements
  • Add initial LLVM 22 support on non-Windows platforms
  • More accurate -march:native feature selection
  • Allow pointers to types which have subtype fields at offset 0 to be assignable in proc parameters.
  • offset_of(some_bit_field) now raises a proper error
  • Add intrinsics.type_field_bit_offset(typeid, string) to get a compile-time bit_field field offset in bits
  • Add intrinsics.type_field_bit_size(typeid, string) to get a compile-time bit_field field size in bits (the value after |)
  • Fix #6407: Global unions do not get initialized correctly
  • Fix >= comparison base:runtime dependencies for string and cstring types
  • Fix GB_PANIC format string in lb_emit_conv invalid subtype cast
  • Fix [^]u16 to cstring16 transmute condition in lb_emit_conv
  • Remove Tilde backend
  • Fix #6484: Two when blocks which evaluate to true in a foreign block misses following decls
  • Fix declaration order bug #6506: False-positive where-clause failures in recursive polymorphic subtype cases
  • Fix declaration order bugs #5572 and #5961: Incorrectly rejecting valid in-progress/forward union references

New Packages

  • core:crypto/argon2id initial import
  • vendor:windows/wasapi
  • vendor:sdl3/mixer

Package Improvements

  • Add more JS to examples/all
  • Update Unicode database to newer version
  • Fix modular exponentiation in core:math/big
  • Fix assign_at documentation
  • core:fmt now formats time.Duration with a space between duration and unit when using % v
  • Correct SIMD shr example documention
  • Fix sync.Auto_Reset_Event signal deadlock
  • core:sys/darwin/Foundation: fix NSTimer binding
  • Partial 1.619.x d3d12 bindings
  • core:mem/virtual: Fix for virtual arena overcommit bug #5821
  • core:crypto: Add ARM AES hardware acceleration
  • core:crypto: Add ARM SHA256 hardware acceleration
  • core:fmt: Improve core:container/small_array formatting
  • vendor:stb/vorbis: Add WASM support
  • core:encoding/cbor: Fix order-dependent partial unmarshals
  • core:encoding/json: Fix user unmarshaler example
  • Fix possible OOM in core:os.get_working_directory() on Linux
  • Fix #6455: core:mem/virtual.map_file_from_path ignores flags
  • Fix for corner case in the core:mem scratch allocator.
  • Minor cleanup in base:runtime and core:mem
  • Fix #6495: Handle starting separator during name comparison in core:os
  • Improved delete_key documentation to mention it's safe to delete keys while iterating a map as long as no resizes take place
  • Fix source size check in core:crypto/aes ECB encrypt/decrypt

Full Change Log

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

Don't miss a new Odin release

NewReleases is sending notifications on new releases.