New Language Features
- Allow custom
-collections to be used forforeign 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
-subtargetissue 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
switchfallthrough inlb_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
mmapresult toMAP_FAILEDrather thannullptr(#7053) in #7065 - Stricter type coercions in
convert_to_typedin #7056 - Fix backend deadlock where
func_raw_types_mutexandtypes_mutexwere waiting on each other by in #7060 - Add
typeidconstant case tocheck_comparison(#7027) in #7064 - Fixes compile time equality comparison for
string16in #7071 - Allow fixed-capacity arrays in constant unions (#7089) in #7090
- Fixes spurious
#no_aliascompile 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_valuespanic on type expressions in #7157 - Handle spaces in args for 'odin run . -- ' 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
nilforunion{}in #7139 - Allow
#caller_expressionon constant parameters which are procedures in #7119 - Fixes compile error due to
#no_aliasshifting 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_distancein #7218 - Fix signed Int Constants being permitted to exceed size in #7220
- Fix
string16oob 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-packagesnot 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]Matchfind_or_insertsemantics with AVL in #6988 -
[core:container/rbtree]Addupsertin #7002 -
[vendor:box3d]Fix missing return value of*_GetUserDatafunctions in #7006 -
[core:sys/windows]Add additional bindings in #7022 -
[vendor:raylib]Updaterlglbindings 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 newcore:osin #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)etDefaultTextureScaleModein #7133 -
[core:unicode]Fix duplicated entries withinunicode_spacesandspace_rangesin #7142 -
[base:runtime]Fixes growth check for SoA dynamic arrays in #7145 -
[core:debug/trace]Sync tracking allocator withcore:memin #7147 -
[core:debug/trace]Sync allocator withcore:memin #7200 -
[core:sys/windows]FixLoadLibraryEx_Flagsoff-by-one in #7151 -
[core:mem/virtual]Close dangling handle inmapimplementation on Windows in #7159 -
[core:testing]RespectTERM=dumbin test runner to prevent ANSI sequences, color in #7160 -
[core:thread]Addget_nameandset_namein #5464 -
[base:runtime]Shrinkmapto minimum capacity withshrinkin #7152 -
[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 ofshrink_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 staleos.flagsfile doc in #7187 -
[core:mem]Zerotracking_allocator.allocation_mapandtracking_allocator.bad_free_arrayindestroyin #7195 -
[base:runtime]Make soa builtins go vroom in #7196 -
[base:runtime]Cleans up obsolete comments in_append_soa_elemsin #7204 -
[base:runtime]Annotates the array parameter of dynamic array builtins with#no_aliasin #7149 -
[core:simd/arm]Impl fix simd arm SHA in #7205 -
[core:os]Fixglobnot cloning pattern when no meta characters present in #7206 -
[core:crypto/_fiat]Fix conditional inensurein #7211 -
[vendor:box3d]Update box3d (#7177) to erincatto/box3d@3fc20f5 in #7212 + #7231 -
[core:crypto]Minor fixes in #7228 -
[core:os]Resolve relative path beforeSHFileOperationWin_remove_allin #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_2026Q1in #7085 - Improve build scripts portabability and make them
pwdindependent in #7084 - CI: Make NetBSD CI less prone to breaking when scheduled on old CPUs
What's Changed
Full Changelog: dev-2026-07a...dev-2026-08