winget install --id odin-lang.Odin
About Odin Programming Language
Odin is a general-purpose programming language with distinct typing built for high performance, modern systems and data-oriented programming.
What's new in dev-2025-12
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...
Version history
| Version | Updated | Notes |
|---|---|---|
| dev-2025-12 | Unknown | 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... |
| dev-2025-11 | Unknown | 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 & @... |
| dev-2025-09 | Unknown | New Language Features - Native support for UTF-16 strings: string16 and cstring16 - Mostly for interfacing with Windows code, and other foreign code - Define Integer Division By Zero #5556 New Compiler Improvements - @(i... |
| dev-2025-08 | Unknown | No notes |
| dev-2025-06 | Unknown | No notes |
| dev-2025-03 | Unknown | ## New Language Features - ## New Compiler Improvements - Name Canonicalization - Deterministic Name Mangling Rules for Symbols (Procedures, Variables, Debug Types, etc) - typeid layout change - Always 8-bytes in size -... |
| dev-2025-02 | Unknown | New Language Features - Support #unroll(N) for with arrays Compiler Improvements - Enable -use-separate-module as default for all platforms (except wasm based ones) - General Bug Fixes - Remove erroneous warnings regardi... |
| dev-2025-01 | Unknown | New Language Features - `#+feature dynamic-literals` - All dynamic literals (maps and dynamic arrays) are disallowed by default to remove implicit allocations from Odin - If the user wants to allow this, it can be enable... |
| dev-2024-12 | Unknown | New Language Features N/A Compiler Improvements - Fix windows args parser problem from issue https://github.com/odin-lang/Odin/pull/4393. - Suggestion when assigning `enum` to `bit_set`. - Suggest `-microarch:native` if... |
| dev-2024-11 | Unknown | New Language Features - Compiler Improvements - General bug fixes - Fix 128-bit ABI issues caused by LLVM changes - Fix `#load_directory` containing directories - Add warning for `unsigned >= 0` like conditions in a `for... |
| dev-2024-10 | Unknown | New Language Features - Replace `//+` syntax with `#+` - Used in cases like `#+build windows` - `#min_field_align` and `#max_field_align` - deprecate `#field_align` in favour of `#min_field_align` - `#max_field_align` us... |
| dev-2024-09 | Unknown | New Language Features - Add support for linux_riscv64 and freestanding_riscv64 Compiler Improvements - Support RISC-V for the compiler itself - Fix crash if referencing import "aliased" in other file - Added a hint at en... |
| dev-2024-08 | Unknown | New Language Features Compiler Improvements - Update to LLVM 18.1.8 - Force compiler source to be parsed as UTF-8 (Windows) - Improve various compiler-internal asserts - Fix `#soa` assignment bug - Add error for `type_of... |
| dev-2024-07 | Unknown | New Language Features - Allow for constant strings in `foreign import`s - `#exists(<string>) -> bool` - `@(rodata)` - `context.random_generator` - Brand new `runtime.Random_Generator` interface Compiler Improvements - Br... |
| dev-2024-06 | Unknown | New Language Features - `intrinsics.type_is_matrix_row_major` + `intrinsics.type_is_matrix_column_major` - `#hash(<string>[, algo])` - `@(link_suffix=<string>)` Compiler Improvements - New NetBSD target support - Experim... |
| dev-2024-05 | Unknown | New Language Features - Compiler Improvements - `odin root` command - Normalize `ODIN_ROOT` path - Improvements to arm64 ABI for returning 0 sized types - Allow compiling with LLVM 18 (non-Windows targets) - Fix linking... |
| dev-2024-04 | Unknown | New Language Features - `bit_field` type ``` Foo :: bit_field u16 { // backing type must be an integer or array of integers x: i32 | 3, // signed integers will be signed extended on use y: u16 | 2 + 3, // general express... |
| dev-2024-04a | Unknown | Minor Update from dev-2024-04 For the full release notes of dev-2024-04, see its release (https://github.com/odin-lang/Odin/releases/tag/dev-2024-04) New Language Features - Compiler Improvements - nasm check fixes - Kee... |
| dev-2024-03 | Unknown | Distribution Changes - MacOS ARM releases and CI support - MacOS releases self-contained / bundle LLVM New Language Features - Compiler Improvements - General bug fixes in the compiler - Fix `-no-crt` on Darwin and Linux... |