November 2026 Newsletter
2026-11-03
⌘K
Ctrl+K
or/
Odin release highlights #
There are a couple of breaking changes this release.
Be sure to read the full release notes this month. It’s an absolute banger!
New Language Features #
- [#7809] General Feature Improvements
@(align=N)for variables: globals, locals,@(static),@(thread_local)- New intrinsics:
return_address,frame_address,stack_pointer,address_of_return_address
- [#7816] Rejects atomics that LLVM cannot lower, and checks atomic memory orderings across the whole program (which many C/C++ compilers do not do).
#+analysis, e.g.#+analysis escape !atomic@(futex=.Wait)/@(futex=.Wake), markingcore:sync’s futex procedures, so the analysis checks futex words instead of skipping them.
New Packages #
- [#7963]
core:diff- Inputs:
- Slices of any comparable type
- Slices with your own equality and hash
- Text by lines, words, or runes
- Text can ignore carriage returns, trailing whitespace, all whitespace, or case
- Algorithms:
.Myers(the default, with a cost cap).Minimal.Histogram.Ratcliff_Obershelp(And more. Read PR for more information.)
- Inputs:
- [#8172]
core:image/bng, an implementation of the BNG format. - [#8157]
core:compress/lz4, a cleanroom implementation of the LZ4 compression algorithm.
High Impact (Compiler + Packages) #
- [#8006] Add Android support:
core,NDKandJavabindings, andAPK/AABbundling- Adds Android as a target:
-subtarget:androidfor arm64, arm32, amd64, and i386, at API level 29 or higher.- An app starts at
main, just like on every other platform. odin bundle androidmakes a signed APK or AAB.
- An app starts at
- Android target triples now name a vendor. Without one, LLVM got the ABI wrong (x86 stack alignment, arm64’s x18).
- Links use
--no-undefined: a symbol newer than the target API level is a link error. odin bundle androidruns aapt2, adds a prebuiltclasses.dex, aligns, and signs.examples/android: a minimal app, with how tobuild,bundle, andrunit.- A CI job that
checks,builds , andbundles it for all four ABIs. - (more)
- Adds Android as a target:
- [#8153]
core:compress: Deflate compression added, rewritten Inflate,core:compress overhaul.
- Speed (Silesia, 5950X / M4 Pro):
- Inflate: 2.1-2.2x the old core inflate; 1.26-1.33x / 1.39-1.46x
vendor:zlib1.3.2. - Deflate L1-9: 1.54-2.43x / 1.18-1.86x zlib 1.3.2, sizes 3% smaller to 1.1% larger than
vendor:zlib. - Level 10 (new
Best): 0.64% smaller than zlib -9 over the corpus, at about 1.4x the time of level 9. Adds 3-byte matches and cost-based block splitting.
- Inflate: 2.1-2.2x the old core inflate; 1.26-1.33x / 1.39-1.46x
- [#7878] Update Windows’ version of LLVM to 22.1.8
- And much more..
Full Changelog: https://github.com/odin-lang/Odin/compare/dev-2026-10...dev-2026-11