Download Latest Version dev-2026-08 source code.zip (153.1 MB)
Email in envelope

Get an email when there's a new version of Odin

Home / dev-2026-08
Name Modified Size InfoDownloads / Week
Parent folder
odin-linux-amd64-dev-2026-08.tar.gz 2026-08-06 69.2 MB
odin-linux-arm64-dev-2026-08.tar.gz 2026-08-06 67.3 MB
odin-macos-amd64-dev-2026-08.tar.gz 2026-08-06 64.8 MB
odin-macos-arm64-dev-2026-08.tar.gz 2026-08-06 61.0 MB
odin-windows-amd64-dev-2026-08.zip 2026-08-06 147.9 MB
dev-2026-08 source code.tar.gz 2026-08-06 151.7 MB
dev-2026-08 source code.zip 2026-08-06 153.1 MB
README.md 2026-08-06 7.3 kB
Totals: 8 Items   715.0 MB 14

New Language Features

  • Allow custom -collections to be used for foreign imports in [#6999]

New Compiler Improvements

  • Disallow proc group assignment to blank identifier in [#6996]
  • Increase stack size for threads in [#6997]
  • Reject chained deferred procedures in [#7013]
  • Fix arm64 ABI: '#simd' vectors and vector aggregates not passed in registers (#7010) by in [#7015]
  • Fix darwin arm64 argument passing abi in [#7030]
  • Fix playdate -subtarget issue where floats were incorrectly compiled in [#7026]
  • Make object and assembly file extensions user-changeable again in [#7041]
  • Fix subtype comparisons (#6151, [#3689], [#7020] and [#4734]) in [#7039]
  • Fix constant aggregate rebuild in [#7046]
  • Keep polymorphic probes read-only in [#7052]
  • Fix switch fallthrough in lb_emit_struct_ev (#7050) in [#7051]
  • Fix arm64 argument alignment abi for composite type of size <= 16 bytes in [#7045]
  • Preserve recursive struct aliases in [#7042]
  • Compare mmap result to MAP_FAILED rather than nullptr (#7053) in [#7065]
  • Stricter type coercions in convert_to_typed in [#7056]
  • Fix backend deadlock where func_raw_types_mutex and types_mutex were waiting on each other by in [#7060]
  • Add typeid constant case to check_comparison (#7027) in [#7064]
  • Fixes compile time equality comparison for string16 in [#7071]
  • Allow fixed-capacity arrays in constant unions (#7089) in [#7090]
  • Fixes spurious #no_alias compile errors during polymorphic overload resolution in [#7116]
  • Reject the use of labels as expressions (#5830 and [#7108]) in [#7130]
  • Fix hang for poly procs with default proc literal params in [#7146]
  • Fix expand_values panic on type expressions in [#7157]
  • Handle spaces in args for 'odin run . -- <args>' on Windows in [#7162]
  • Don't assert on -define: values with an exponent in [#7164]
  • Fix error hint for vet tag in [#7132]
  • RISC-V fixes/improvements in [#7144]
  • Fix LLVM codegen for matching on nil for union{} in [#7139]
  • Allow #caller_expression on constant parameters which are procedures in [#7119]
  • Fixes compile error due to #no_alias shifting position in procs with indirect return in [#7214]
  • Fixes a compiler segfault with zero sized parameters on targets that ignore these in the LLVM signature in [#7215]
  • Fix every named argument in "Given argument types" being labelled with the first argument's name in [#7217]
  • Fix levenstein_distance in [#7218]
  • Fix signed Int Constants being permitted to exceed size in [#7220]
  • Fix string16 oob in [#7221]
  • Fix new line suppression by @kalsprite in [#7222]
  • Improve grammar on import name error in [#7223]
  • Fix matrix col error message that said rows instead in [#7224]
  • Minor typos in [#7225]
  • Fix crash on poly in [#7226]
  • Fix -vet-packages not working in certain cases in [#7210]
  • Pack tuple results into variadic arguments (#7167) in [#7185]
  • Polymorphic procedures resolving to nil (#6753 and #) in [#7208]

New Packages

  • [core:crypto/rsa] Add RSA support in [#6857]
  • [core:encoding/asn1] Add strict DER + [core:crypto/x509] (X.509 v3) in [#6838]
  • [core:crypto/turboshake] Add TurboSHAKE in [#7043]
  • [core:rexcode] Add rexcode, a high-performance multi-architecture instruction encoder/decoder/printer package in [#6839]
  • [core:debug/trace] Replaced with a much improved implementation in [#7141]

Package Improvements

  • [core:container/rbtree] Match find_or_insert semantics with AVL in [#6988]
  • [core:container/rbtree] Add upsert in [#7002]
  • [vendor:box3d] Fix missing return value of *_GetUserData functions in [#7006]
  • [core:sys/windows] Add additional bindings in [#7022]
  • [vendor:raylib] Update rlgl bindings to raylib 6 in [#7023] and [#7028]
  • [core:strings] Add @(require_results) where useful in [#7038]
  • [core:log] Make multi logger use all loggers instead of breaking on first non match in [#7057]
  • [core:encoding/csv] Update example to use the new core:os in [#7076]
  • [base:runtime] Fix markdown table in docs in [#7077]
  • [base:runtime] Fix map reporting incorrect capacity after shrinking in [#7097]
  • [core:os] Fixes file open emulation of posix open behavior on mode/perm mismatch on Windows in [#7098]
  • [base:runtime] Fixes SoA dynamic arrays not zeroing all elements after shrink + grow in [#7103]
  • [core:odin/tokenizer] Set token kind to float for hex floats in [#7117]
  • [vendor:sdl3] Fix (S/G)etDefaultTextureScaleMode in [#7133]
  • [core:unicode] Fix duplicated entries within unicode_spaces and space_ranges in [#7142]
  • [base:runtime] Fixes growth check for SoA dynamic arrays in [#7145]
  • [core:debug/trace] Sync tracking allocator with core:mem in [#7147]
  • [core:debug/trace] Sync allocator with core:mem in [#7200]
  • [core:sys/windows] Fix LoadLibraryEx_Flags off-by-one in [#7151]
  • [core:mem/virtual] Close dangling handle in map implementation on Windows in [#7159]
  • [core:testing] Respect TERM=dumb in test runner to prevent ANSI sequences, color in [#7160]
  • [core:thread] Add get_name and set_name in [#5464]
  • [base:runtime] Shrink map to minimum capacity with shrink in [#7152]
  • [core:text/scanner] Fix [#7153] and add a test in [#7165]
  • [core:rexcode/x86] Label addressing for RIP-relative disp and movabs imm in [#7168]
  • [core:simd/arm] Implement simd arm crc32 in [#7174]
  • [core:compress/gzip] Fix example code in [#7178]
  • [core:simd/arm] Implement simd arm pmull in [#7184]
  • [base:runtime] Follow up fix of shrink_map [#7182]
  • [core:odin/parser] Correct end position for fields with a specialization in [#7180]
  • [core:text/scanner] Fix octal escape parsing in [#7176]
  • [core:os] Update stale os.flags file doc in [#7187]
  • [core:mem] Zero tracking_allocator.allocation_map and tracking_allocator.bad_free_array in destroy in [#7195]
  • [base:runtime] Make soa builtins go vroom in [#7196]
  • [base:runtime] Cleans up obsolete comments in _append_soa_elems in [#7204]
  • [base:runtime] Annotates the array parameter of dynamic array builtins with #no_alias in [#7149]
  • [core:simd/arm] Impl fix simd arm SHA in [#7205]
  • [core:os] Fix glob not cloning pattern when no meta characters present in [#7206]
  • [core:crypto/_fiat] Fix conditional in ensure in [#7211]
  • [vendor:box3d] Update box3d (#7177) to https://github.com/erincatto/box3d/commit/3fc20f5b453ba9e14cdf54ecafa87a2a4bcdf53c in [#7212] + [#7231]
  • [core:crypto] Minor fixes in [#7228]
  • [core:os] Resolve relative path before SHFileOperationW in _remove_all in [#7230]
  • [core:net] Fix percent encoding for bytes < 0x10 (#7109) in [#7234]
  • [core:simd/arm] Implement simd arm neon bit manipulation in [#7216]

  • Various typo fixes across the packages

Miscellaneous

  • [vendor:*] Replace makefiles in with shell scripts in [#7034]
  • CI: Update NetBSD to 10_2026Q1 in [#7085]
  • Improve build scripts portabability and make them pwd independent in [#7084]
  • CI: Make NetBSD CI less prone to breaking when scheduled on old CPUs

What's Changed

Full Changelog: https://github.com/odin-lang/Odin/compare/dev-2026-07a...dev-2026-08

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