Download Latest Version dev-2026-10 source code.zip (154.8 MB) Google Add to Preferred Sources
Home / dev-2026-10
Name Modified Size InfoDownloads / Week
Parent folder
odin-linux-amd64-dev-2026-10.tar.gz 2026-10-06 70.3 MB
odin-linux-arm64-dev-2026-10.tar.gz 2026-10-06 68.3 MB
odin-macos-arm64-dev-2026-10.tar.gz 2026-10-06 62.0 MB
odin-windows-amd64-dev-2026-10.zip 2026-10-06 149.4 MB
dev-2026-10 source code.tar.gz 2026-10-06 153.3 MB
dev-2026-10 source code.zip 2026-10-06 154.8 MB
README.md 2026-10-06 10.5 kB
Totals: 7 Items   658.2 MB 7

New Language Features

  • [#7664]: Allow bit_set to be backed by arrays of integers

New Compiler Improvements

Speedups

  • [#7720]: LLVM Backend Performance Improvements to Reduce Compile Times Part 1
  • [#7729]: LLVM Backend Performance Improvements to Reduce Compile Times Part 2
  • [#7747]: Compiler Performance Improvements to Reduce Compile Times Part 3
  • [#7685]: Complete Parapoly Rewrite + Race condition fixes
  • [#7694]: Make global checking codegen order-independent
  • [#7686]: Parse integer literals without allocating per digit and reject non digits in their exponent
  • [#7739]: Make radlink default linker on Windows
  • [#7701]: Multithread The Entire Semantic Checker
  • [#7728]: map performance improvements

General fixes and improvements

  • [#7654]: Experimental support for cross-linking Windows executables
  • [#7788]: Add the new -windows-sdk-root to the odin help build command
  • [#7497]: Fix [#7488]: -vet error in core_builtin_soa.odin when appending multiple empty structs to #soa[dynamic]
  • [#7500]: Fix [#5851]: Detect and error on chained offset_of expressions
  • [#7505]: Apply mojibake magic to test runner, too
  • [#7509]: Fix [#7499]: Add ctrl-c handler to run_subprocess
  • [#7070]: Fix vendor:ENet.Buffer data/length ordering issue
  • [#7524]: Fix alias nullptr ICE
  • [#7528]: intrinsics.type_elem_type() added case for Type_FixedCapacityDynamicArray
  • [#7531]: Improve error message for constant indexing
  • [#7530]: simd_abs codegen improvement + fix for unsigned integers
  • [#7545]: Fix [#6917]: LLVM IR va_arg instruction uses wrong stride for C varargs on Windows
  • [#7548]: Fixes simd_approx_recip and simd_approx_recip_sqrt
  • [#7549]: Fixes simd_select and simd_runtime_swizzle operand construction
  • [#7574]: Fix [#7573]: Check Enumerations iota fits explicit base type
  • [#7570]: Fix [#7544]: Constant bit_field field access returning zero value
  • [#7568]: Fix side_effects vs volatile typo in error message
  • [#7561]: Fixes [#6888]: SIMD gather/scatter and masked load/store randomly crashing the compiler
  • [#7550]: Fix syntax error type with -json-errors
  • [#7577]: Fix #location in global variable initializers
  • [#7582]: Fix [#7581]: Compiler crash when checking code with swizzled SOA fields
  • [#7605]: Fix [#7604]: Allow building at /
  • [#7607]: Fix [#7598]: Keep entity iteration valid across a scope map rehash
  • [#7623]: Add -file suggestion when main is duplicated or package names differ
  • [#7628]: Fix quadratic type checking case: don't cache polymorphic record specializations
  • [#7631]: Fix record instantiated poly proc on selector when used as a proc value
  • [#7629]: Fix [#7596] and [#7511]
  • [#7621]: Fixes the attributes of the context parameter in dummy procedures
  • [#7641]: Fix field sorting for bit_field literals
  • [#7656]: Fix [#7609]: Emit union constants for non-constantable unions
  • [#7658]: Fixes #must_tail on WASM targets
  • [#7652]: Fix [#6951] and [#5214]: $ procedure arguments matching the wrong instantiation
  • [#7639]: Fix [#6302]: Broadcasting arrays of matrices and matrices
  • [#7661]: Fix [#7587]: Full length swizzles through a pointer keeping the pointer type
  • [#7594]: Fix [#7583]: -strict-style requires comma before newline after proc parameters which have a default value
  • [#7588]: Fix [#7427] and [#7193]: Error on OOB tuple element in compound literals
  • [#7668]: Fix [#5318]: Procedures passed to $ parameters share an instantiation's name
  • [#7666]: Add ExactValue_Rational to improve precision on compiler float computation
  • [#7602]: Adds lifetime markers for named locals
  • [#7674]: Fix [#5105] and [#5569]: Deferred call in short circuits causes LLVM codegen failure
  • [#7682]: Fixes the nocapture attribute on LLVM >= 21
  • [#7679]: Fix [#7477] and [#7506]: Casts between nested arrays of the same depth
  • [#7697]: Fix compound literals of array backed bit_fields
  • [#7692]: Disallows the "odin" calling convention with #must_tail
  • [#7706]: Fix [#7430]: Fixed capacity dynamic array literals lose their length
  • [#7709]: Fix [#7708]: Compare a polymorphic record's constant parameters by value in subst_unify
  • [#7711]: Fix [#7700]: Constant #soa field access yields the per-element field array; compare and canonicalize typeid constants
  • [#7716]: Fix intrinsics.procedure_of with parapoly specializations
  • [#7714]: Fixes [#3995], [#4337], [#5950], [#7197], and [#7640]: Handle globals initialized with the address of a non constant literal
  • [#7718]: Fix [#7490]: Preserve zero-initialized arrays in intrinsics.concatenate
  • [#7722]: Use a response file for MSVC-style linkers (link.exe and radlink.exe) when the command line exceeds the CreateProcess limit of 32KiB
  • [#7723]: Fix mark a generated polymorphic procedure before publishing it to other threads
  • [#7520]: Fix #soa pointer field access through using
  • [#7743]: Allow using on #soa pointers, and make the fields a using #soa pointer parameter promotes assignable
  • [#7746]: Fix -linker:radlink being rejected on Windows
  • [#7740]: Fix [#7689]: Incorrect debug source location at the end of if/else chains

New Packages

  • [#7523]: asm: Generalize memory operand syntax to a flat term list

Package Improvements

Speedups

  • [#7630]: core:strconv: Ported Eisel-Lemire's fast float algorithm to Odin
  • [#7672]: core:strconv: Second part of the Fast Float port (SWAR based scanning)
  • [#7725]: core:strconv: Adds a #config to opt out of fast float (and its table)
  • [#7726]: core:hash/xxhash: Add a few more #no_bounds_check to XXH3
  • [#7728]: base:runtime: map performance improvements

General fixes and improvements

  • [#7496]: core:sys/windows: Add bindings for advanced mouse/pointer/pen manipulation
  • [#7508]: vendor:windows/wasapi: Fixes
  • [#7516]: core:mem: Revert [#6476], which misunderstood the mem.Scratch allocator's semantics
  • [#7517]: core:mem: Implement tests for the mem.Scratch allocator
  • [#7489]: core:simd/arm: Implement SIMD Arm Neon shift left
  • [#6787]: core:fmt: Improved fmt_os documentation
  • [#7527]: core:simd/x86: Fixed typo in avx.odin
  • [#7539]: vendor:curl (Linux): Remove import declarations for crypto libraries that differ by distro
  • [#7532]: core:sys/windows: Add line-drawing functions in gdi32.odin
  • [#7563]: core:simd/arm: Implement SIMD Arm Neon shift right
  • [#7576]: vendor:sdl3/ttf: Use [^]byte rather than cstring and add ExpandString wrapper
  • [#7572]: vendor:libc-shim: Replace mem_zero with null termination in strncpy
  • [#7565]: core:sys/windows: Add performance counter PSAPI bindings
  • [#7553]: vendor:box2d: Add missing GetVersion binding
  • [#7546]: vendor/box3d: Support BOX3D_SHARED on Windows
  • [#7543]: vendor:egl: Bind more procedures and constants
  • [#7599]: core:os: Fix the 0th env var being duplicated on Linux
  • [#7600]: vendor:OpenEXRCore Fixes
  • [#7536]: core:odin: Fix [#7526]: Handle triple quote/tick string
  • [#7603]: core:simd/arm: Implement SIMD Arm Neon zip unzip extract
  • [#7615]: base:runtime: Fix [#7562]: Windows AMD64 no-CRT stack probe support
  • [#7620]: core:dynlib: Improvements and explanations in example
  • [#7622]: core:strconv: Fixes three bugs in hex float parsing
  • [#7624]: core:math/big: Fix squaring path writing the denominator into the numerator
  • [#7633]: core:encoding/json: Size the unquote buffer for replaced invalid UTF-8
  • [#6722]: core:sys/linux: Fix Time_Val precision comment
  • [#7634]: core:crypto/_fiat: Fix P-256 fe_sqrt addition chain, unblocking compressed SEC1 point decoding
  • [#7627]: core:rexcode: Add 512bit vmovntdq(a)
  • [#7659]: core:encoding/base64: Add strict decoding options
  • [#7663]: core:simd/x86: Implement simd x86 avx2 avx512 shift logical
  • [#7632]: core:simd/arm: Implement simd arm neon transpose reverse
  • [#7579]: core:c: Fixes [#7540]: fastX type widths
  • [#7584]: core:sys/windows: Extend Win32 common dialog bindings
  • [#7610]: core:sys/windows: Fix [#7547]: Double-null-terminate path in SHFileOperationW
  • [#7665]: core:container/bit_array: Add create_from_enum helper. Improve documentation, fix examples.
  • [#7671]: core:container/xar: Fix chunk slot count capping Array capacity
  • [#7484]: core:sort: Document all public procedures and Interface types
  • [#7676]: core:crypto/aegis: Minor documentation cleanups
  • [#7673]: core:encoding/json: Removes @(private) from unmarshal_value for use in user unmarshalers
  • [#7590]: core:os: Allocate the long-path buffer in the caller's allocator
  • [#7320]: vendor:sdl3: WASM foreign import library configurable
  • [#7684]: core:rexcode: Changed append to append_elem for a sizable improvement
  • [#7683]: core:simd/x86: Implement simd x86 avx512 evex512
  • [#7690]: core:encoding/base64: Add unpadded base64 encoding
  • [#7695]: core:simd/x86: Implement simd x86 avx512 typo fix
  • [#7703]: core:encoding/csv: Preserve final CSV records in multiline mode
  • [#7704]: core:encoding/cbor: Fix bit_set byte order
  • [#7643]: vendor:sdl2: Add RenderSetVSync
  • [#7721]: core:sync/chan: Accept .Recv channels in chan.recv and chan.try_recv
  • [#7733]: core:odin: Fix parser assert with invalid for-in stmt
  • [#7731]: core:time/timezone: Preserve fractional timestamps in timezone conversions
  • [#7738]: core:math/linalg/glsl: Fix mix_vec4 and mix_dvec4 implementations
  • [#7753]: core:fmt: Fix incorrect number of bytes written returned when formatting floats with h/H
  • [#7751]: core:simd/x86: Implement simd x86 sse2 _mm_insert_epi16 fix
  • [#7755]: core:sys/windows: Add GetCursor and GetDpiForSystem
  • [#7756]: vendor:box3d: Fixing typo from userMateriald to userMaterialId

Miscellaneous

  • [#7495]: macOS Intel removed from CI tests and releases, due to general flakiness of the CI. Odin can still be built from source on Intel Macs.
  • [#7569]: Fix [#7525]: Add test coverage for inline-asm label definitions on AMD64
  • [#7670]: Update NetBSD CI from 2026Q1 -> 2026Q3
  • [#7707]: Adjust doc comments that misrender as CommonMark
  • [#7754]: Upgrade Ubuntu CI to LLVM 22
  • [#7744]: Update test_core_runtime.odin

Full Changelog: https://github.com/odin-lang/Odin/compare/dev-2026-09...dev-2026-10

Source: README.md, updated 2026-10-06