New Language Features
New Compiler Improvements
- Improvements to building with Android
- Add more asan support to the odin runtime and sanitizing for various allocators
- Fix to compile-time and variable NaN comparisons
- Fix to syscalls on NetBSD ARM64
- Fix Darwin version reporting on older macOS versions
- General compiler bug fixes
intrinsics.type_elem_type(simd_vector)- Fix Global/Static Variable Alignment
- Fixes assigning null as a type if it's an alias but the base type is null
@(no_sanitize_address)- Support Objective-C class implementation
- Add debug info for labels to Odin
intrinsics.type_integer_to_unsignedandintrinsics.type_integer_to_signed- Use
--sysrootinstead of-Wl,-syslibrooton Darwin - Fix global and static
anyusage - Re-enable static map calls on AMD64 SysV due to ABI fixes
- Make
odin helpmore precise -dynamic-literals- Do not call disabled deferred procedures
- Add
/usr/local/libto FreeBSD linker path - Add error with a suggestion when trying to extract an element from a
#simdarray, and prefersimd.extract - Only trim
.odinfrom build filename - Keep shared libraries from calling main program's startup/cleanup procs on Linux
- Add
-build-only,-keep-test-executable, delete test executable after running - Enable all sanitizers on FreeBSD
- RAD Debugger support through custom
.raddbgsection- Default views for slices and matrices
- Error on unterminated multi-line comment
- Fix output of object names (#5241)
- Add suggestions for
quaternionNorcomplexNconversions
New Packages
base:sanitizervendor:windows/XAudio2vendor:sdl3/ttfcore:terminalcore:encoding/ansi->core:terminal/ansi
Package Improvements
- Vectorize
base:runtime.memory_* core:net- Rework errors to be cross-platform
- Replace
default_tcp_optionswith a constant
core:container/small_array: Improve documentation forcore:sync/chan: Improve documentationcore:mem/tlsf: refactor, addfree_allsupport, add automatic new poolscore:fmt: Fix printing forbit_set[Enum]whenmin(Enum) != 0vendor/glfw- fix
SetMonitorCallbackandMonitorProctype definition - use
b32where appropriate
- fix
core:text/regex: Add iteratorcore:math: Fixmath.nextafterskipping from 0 to 1vendor:wgpu:- Update to 25.0.2.1
- Fix function name for wgpu.js
genericGetAdapterInfo - Correct
mipmpaFilterfield name in wgpu.js
core:time/timezone: preserve nanoseconds on callsvendor:box2d:- Update to 3.1.0
- Add missing field in
box2d.BodyDef - Make
build_box2d.shmore flexible
core:container/priority_queue- let it return
runtime.Allocator_Error - Fix off-by-one error in
remove
- let it return
core:sys/darwin/Foundation: Loads of additions and related stuffvendor:sdl2: correct RWwrite signaturevendor:sdl3:- Fix
countoutput parameter ofGetFullscreenDisplayModes - Add
SemaphoreAPI
- Fix
core:encoding/*, fix parsing of CDATA tagscore:time: addtick_addcore:encoding/cbor, fix slice overflowcore:os/os2: general improvementsvendor:wasm/WebGL: Fix incorrect parameter typescore:bufio: Fix typo fromb.w-b.wtob.w-b.rcore:simd/x86: BMI/BMI2 intrinsicsbase:intrinsics: alternatereduce_add/reduce_mulintrinsicscore:strconv, add support for hex-floats (0h)vendor:raylib/rlgladd some missing functionsvendor:directx/d3d12- add more FEATURE_DATA_OPTIONs
- Fix RESOURCE_STATE_ALL_SHADER_RESOURCE flags and add new HEAP_TYPE
core:encoding/json: when unmarshalling, only match on struct tags if presentvendor/miniaudio: update to 0.11.22core:math/big: fix range check inint_atoi- Add comments to
builtin.odin, documenting ODIN_* constants vendor:windows/GameInput: fixes and tweakscore:encoding/csv: Fix incorrect CSV reader settings for example- Vectorize
strings.prefix_length
Full Changelog: dev-2025-04...dev-2025-06