github odin-lang/Odin dev-2025-11

15 hours ago

Licensing Changes

  • Change Odin's LICENSE to zlib from BSD 3-clause

New Language Features

  • intrinsics.concatenate
    • Concatentation of constant slices, strings, and some arrays at compile time
  • intrinsics.objc_super & @(objc_superclass=<type>)

New Compiler Improvements

  • Objective-C interface improvements
    • intrinsics.objc_super and automatically emit objc_msgSend calls where necessary for @(objc_superclass) attribute
    • Fix block symbols naming conflict across modules
  • LLVM backend fixes
    • #simd vector only uses bit cast when elements are not pointers
    • Fix bitcasting context pointer to prevent compilation errors on LLVM-14
    • Numerous constant union improvements
    • Prefer the Type * ver LLVMTypeRef when looking up struct_field_remapping due to lack of uniqueness
  • Default parameter exclusion counting improvement for procedure groups
  • Improved -target-features flag by allow the user to disable a target feature
    • -target-features:-sse,-sse2,-avx
  • -export-linked-libs-file:<string> flag to export the linked libraries to a file
  • Fix a few compiler hangs on macOS.
  • LLVM 21 support for non-Windows platforms
  • Fix: #load alignment bug
    • set minimum alignment to 16-bytes
  • Fix orca linking path
  • Add #subtype/using to name canonicalization rules
  • Numerous frontend bugs fixed

New Packages

Package Improvements

  • More documentation improvements across the core library
  • General improvements and more documentation for core:os/os2
  • Add inject_at_soa and append_nothing_soa
  • vendor:wgpu update to 27.0.2.0
  • core:unicode/utf8: Add Grapheme_Iterator
  • New slice.sort implementation to allow for better code generation and general API
  • Deprecate the C style procedures in strconv (e.g. iota, atoi, etc`)
  • WASM: Fix odin.js undefined this.mem
  • Fix sRGB <-> linear RGB conversion
  • core:encoding/json fixes
    • Fix null parsing in certain cases
  • core:encoding/cbor: Fix epoch tag with small values
  • core:container/rbtree add find_or_insert
  • Fix bindings generator for vendor:vulkan for extensions and ~0 style constants
  • Disable bounds checking where appropriate for Unicode and UTF-8 procedures
  • vendor:fontstash: Fix crash with .TTC files
  • core:simd : Fix incorrectly named calls in bit_not
  • vendor:sdl3: Add PointInRectFloat
  • vendor/egl
    • add a few more procedures and constants
    • Fix GetPlatformDisplay and CreatePlatformWindowSurface to use int instead of i32
  • vendor:box2d
    • fixes to bindings mismatches
    • Add targetAngle to RevoluteJoint struct/procs
  • core:odin/parser
    • fixes for end_pos
    • parse empty identifiers after selector as a selector expression with an empty field
  • core:hash: add CCITT CRC-16
  • Make packed conditional on EPoll_Event to match kernel
  • core:math/linalg/hlsl: support half types
  • core:math/ease: Add inverse ease procedures
  • vendor:raylib: add MAX_MATERIAL_MAPS constant
  • core:sys/darwin/Foundation: add additional AppKit bindings
  • core:text/scanner allow for octal prefix style parsing for C-style ints

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

Don't miss a new Odin release

NewReleases is sending notifications on new releases.