November 2026 Newsletter

2026-11-03

⌘K
Ctrl+K
or
/
Contents

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), marking core: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.)
  • [#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, NDK and Java bindings, and APK/AAB bundling
    • Adds Android as a target: -subtarget:android for arm64, arm32, amd64, and i386, at API level 29 or higher.
      • An app starts at main, just like on every other platform.
      • odin bundle android makes a signed APK or AAB.
    • 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 android runs aapt2, adds a prebuilt classes.dex, aligns, and signs.
    • examples/android: a minimal app, with how to build, bundle, and run it.
    • A CI job that checks, builds , and bundles it for all four ABIs.
    • (more)
  • [#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:zlib 1.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.
  • [#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