# Modular 26.6 is here

**URL:** <https://forum.modular.com/t/modular-26-6-is-here/3505>\
**Category:** Official Announcements\
**Created:** [September 17, 2026, 5:36pm UTC](https://forum.modular.com/t/modular-26-6-is-here/3505 "2026-09-17T17:36:10Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Modular](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/modular/32/17_2.png) [@Modular](https://forum.modular.com/u/Modular)\
**Post date:** [September 17, 2026, 5:36pm UTC](https://forum.modular.com/t/modular-26-6-is-here/3505/1 "2026-09-17T17:36:10Z")

</div>

**Modular 26.6 is here:** Mojo 1.1 opens the compiler to external contributions and adds developer experience improvements, while MAX 26.6 brings audio generation, new model architectures, and faster performance. [Read more here.](https://www.modular.com/blog/modular-26-6-open-compiler-contributions-audio-generation-and-expanded-model-support)

---

<div class="post-metadata">

**Author:** ![Caroline](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/caroline/32/8_2.png) [@Caroline](https://forum.modular.com/u/Caroline)\
**Post date:** [September 17, 2026, 5:38pm UTC](https://forum.modular.com/t/modular-26-6-is-here/3505/2 "2026-09-17T17:38:07Z")

</div>



---

<div class="post-metadata">

**Author:** ![randyzwitch](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/randyzwitch/32/982_2.png) [@randyzwitch](https://forum.modular.com/u/randyzwitch)\
**Post date:** [September 17, 2026, 7:47pm UTC](https://forum.modular.com/t/modular-26-6-is-here/3505/3 "2026-09-17T19:47:56Z")

</div>

Congrats!

Just a heads-up…Mojo 1.1 appears to have some breaking changes in it, so at minimum you’ll probably want to change the upper limit for Mojo in your pixi.toml:

```auto
# Had this in my packages, some of them broke
# [dependencies]
# mojo = ">=1.0.0,<2"

[dependencies]
mojo = ">=1.0.0,<1.1" 

```

---

<div class="post-metadata">

**Author:** ![Ehsan](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/ehsan/32/142_2.png) [@Ehsan](https://forum.modular.com/u/Ehsan)\
**Post date:** [September 18, 2026, 3:24am UTC](https://forum.modular.com/t/modular-26-6-is-here/3505/4 "2026-09-18T03:24:03Z")

</div>

For the sake of my own understanding, could you please be more specific? what’s got broken after upgrade?

---

<div class="post-metadata">

**Author:** ![Doby](https://avatars.discourse-cdn.com/v4/letter/d/58f4c7/32.png) [@Doby](https://forum.modular.com/u/Doby)\
**Post date:** [September 18, 2026, 11:04am UTC](https://forum.modular.com/t/modular-26-6-is-here/3505/5 "2026-09-18T11:04:18Z")

</div>

My `sort` dependent codes got broken because of this change:

> <https://github.com/modular/modular/commit/7d158211bd8b3a39d7d2d5cfb5317fcbbc9377cf>
>
> Migrate std.builtin.sort off legacy capturing parameter closures onto
> unified cl…osures. The comparison function is now a runtime argument of
> type Some\[def(T, T) -\> Bool\] threaded through the private helpers
> instead of a compile-time capturing\[\_\] closure parameter. Public sort()
> and partition() take the comparator as a trailing runtime argument:
> prefer sort(span, cmp\_fn) over sort\[cmp\_fn\](span), and partition(span,
> k, cmp\_fn) over partition\[cmp\_fn\](span, k). The stable flag stays a
> compile-time parameter, so a stable custom sort is
> sort\[stable=True\](span, cmp\_fn). The Comparable overloads sort(span) and
> sort\[stable=True\](span) are unchanged.
> 
> In-tree callers of sort/partition are updated to the new argument form.
> 
> MODULAR\_ORIG\_COMMIT\_REV\_ID: c9437410606c59870a9ca1dfd52ef56804c4cc12

---

<div class="post-metadata">

**Author:** ![randyzwitch](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/randyzwitch/32/982_2.png) [@randyzwitch](https://forum.modular.com/u/randyzwitch)\
**Post date:** [September 18, 2026, 11:22am UTC](https://forum.modular.com/t/modular-26-6-is-here/3505/6 "2026-09-18T11:22:11Z")

</div>

- 

> 1. The async task API is private: `std.runtime.asyncrt` became `std.runtime._asyncrt`. The public `std.runtime` keeps only `parallelism_level` and `initialize_runtime`, and the docs say the async system “carries no stability guarantees” and is “deliberately not part of this package’s public API”.
> 
> 2. There is no public replacement. `std.algorithm` has `map`, `vectorize`, `tile` and `unswitch`; `map` is sequential (checked in the stdlib source, `Mojo/stdlib/std/algorithm/backend/cpu/map.mojo`). Nothing public in `std` runs a closure over work items on the thread pool.
> 
> 3. `InlineArray` is gone; `Array` is the name, on 1.0 too.
> 
> 4. A `stat` timespec’s sub-second field is `tv_subsec` on 1.0 and `tv_nsec` on 1.1.

---

<div class="post-metadata">

**Author:** ![BradLarson](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/bradlarson/32/62_2.png) [@BradLarson](https://forum.modular.com/u/BradLarson)\
**Post date:** [September 18, 2026, 3:25pm UTC](https://forum.modular.com/t/modular-26-6-is-here/3505/7 "2026-09-18T15:25:34Z")

</div>

Sorry about the change in some of these interfaces, but there were good reasons for all of them. With 1.0, we had worked to stabilize the core of the language, but only a relatively small surface area of the Mojo standard library is currently marked as `@stable`. We are [increasing this coverage over time](https://mojolang.org/releases/v1.1.0/#1-1-0-library-stabilizations), and will be doing so over the 1.x span. The library components marked as `@stable` can be built on with a high degree of confidence.

Given that much of what we think of as Mojo is defined at the library level, you can see changes impacting your code between point releases even though core language features themselves are stable. We’ll try to do our best to call those out in the changelog, and if we’re not communicating them as well as we could be, please let us know. Again, more of the standard library should be stabilizing as we progress through the 1.x series, but stability is a commitment and we need to carefully review each of these.

In your case, I want to highlight that the current async functionality in Mojo is not where we would like it to be and is a known area that will be fully revamped in the near term. That’s why we placed it behind the underscored interfaces you mention above: we wanted to convey that these interfaces may break, be reworked, or removed entirely in favor of something else. Anything with an underscore is something that is likely to change, so just know that going in when incorporating those into your projects. We unfortunately only caught these interfaces post-1.0, as part of our open-sourcing preparation, thus the migration you saw in 1.1.

---

<div class="post-metadata">

**Author:** ![randyzwitch](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/randyzwitch/32/982_2.png) [@randyzwitch](https://forum.modular.com/u/randyzwitch)\
**Post date:** [September 18, 2026, 3:28pm UTC](https://forum.modular.com/t/modular-26-6-is-here/3505/8 "2026-09-18T15:28:59Z")

</div>

No problem at all, I originally just wanted to point it out to everyone as the quick solution as they evaluated what the actual changes were 🙂

---

<div class="post-metadata">

**Author:** ![Caroline](https://sea1.discourse-cdn.com/flex001/user_avatar/forum.modular.com/caroline/32/8_2.png) [@Caroline](https://forum.modular.com/u/Caroline)\
**Post date:** [October 3, 2026, 2:24pm UTC](https://forum.modular.com/t/modular-26-6-is-here/3505/9 "2026-10-03T14:24:42Z")

</div>


