<!-- llms-explorer concept facts · https://llms-explorer.com/tree/mlx-0-32-0-jaccl-patch-inventory/ · pack 2026-10-05 · ~1375 tokens -->

# mlx 0.32.0 JACCL patch inventory

> The "0.32.0 JACCL patch inventory" is the list of JACCL, launcher and Metal-synchronisation changes that a user of PyPI `mlx==0.32.0` has, lacks, or must carry as a fork patch.

Parent: [Mac local LLMs: MLX kernels, numerics and internals](https://llms-explorer.com/tree/mac-local-llms-mlx-kernels-numerics-and-internals/) · 1 facets · 24 facts · page: https://llms-explorer.com/tree/mlx-0-32-0-jaccl-patch-inventory/

## Facts

- The "0.32.0 JACCL patch inventory" is the list of JACCL, launcher and Metal-synchronisation changes that a user of PyPI `mlx==0.32.0` has, lacks, or must carry as a fork patch. — [source](https://github.com/ml-explore/mlx/releases/tag/v0.32.0)
- In 0.32.0: PR 3459 "Add barrier to JACCL", PR 3451 "[jaccl] Fix race on local_staging in MeshImpl::all_reduce", PR 3654 "Fix multi-wire recv prefill deadlock in jaccl ring backend", PR 3523 "Catch error in CommandBuffer and poison the events", and PR 3783 "Quote hostname in mlx.launch ssh commands". — [source](https://github.com/ml-explore/mlx/releases/tag/v0.32.0)
- Already in earlier releases (so also in 0.32.0): PR 3412 "Jaccl refactor" with "JACCL is now a standalone lib" and PR 3418 "Fix jaccl init bug" in v0.31.2; PR 3174 "JACCL mesh bandwidth improvements" in v0.31.0; "Much faster bandwidth with JACCL on macOS >= 26.3" (PR 3094) in v0.30.6. — [source](https://github.com/ml-explore/mlx/releases)
- In 0.32.1: PR 3899 "Making JACCL coordinator optional", PR 3900 "Refactor the JACCL ring and add threads for the multiple rings", PR 4005 docs "Do not pass MLX_METAL_FAST_SYNCH=1 by default", PR 4026 (crash when reporting partial rings in `mlx.distributed_config`), PR 4027 (unique rank per host in `Hostfile.from_list`), PR 4002 (`mlx.launch --python` flag forwarded), PR 3675 (state corruption when a primitive throws during eval). — [source](https://github.com/ml-explore/mlx/releases)
- In 0.32.2: PR 4284 "Check malformed jaccl hostfile that miss rdma in pairs" and PR 4338 "Raise cpu stream errors from synchronize". — [source](https://github.com/ml-explore/mlx/releases)
- In 0.32.3: PR 4443 "Fix jaccl ring all_gather: direction 1 slice was not mirrored" and PR 4552 "[BUG][Metal] Deadlock in fence". — [source](https://github.com/ml-explore/mlx/releases)
- Not found in any release note from v0.30.4 to v0.32.3: PR 3152 (check `ibv_wc.status`), PR 4530 (JACCL liveness and progress timeout), PR 3468 (GID fallback), PR 3742 (propagate CPU errors to events), PR 4060 (ring peer loss) and PR 4191 (report when no usable GID). — source: `asserted`
- The exo fork commit that said PyPI 0.32.0 has #3451 and #3654 is confirmed by the release notes. — [source](https://github.com/ml-explore/mlx/releases/tag/v0.32.0)
- The JACCL changes arrive in three groups: a refactor and speed work in 0.30.6 to 0.31.2, correctness fixes in 0.32.0, and ring, launcher and hostfile hygiene in 0.32.1 to 0.32.3. — source: `asserted`
- 0.32.0 has no JACCL peer-loss handling and no completion-status check: a dead peer or a failed work request still hangs or corrupts silently on 0.32.0 to 0.32.3 (see jaccl-silent-hang-on-peer-loss.md). — source: `asserted`
- 0.32.0 to 0.32.2 lack the Metal fence deadlock fix of PR 4552, which first appears in 0.32.3. — [source](https://github.com/ml-explore/mlx/releases)
- The ring `all_gather` fix (PR 4443) means 0.32.0 to 0.32.2 ring all_gather results can be wrong in direction 1; the notes do not give the trigger. — source: `asserted`
- The `/releases` listing page truncates the 0.32.0 entry; its tag page `/releases/tag/v0.32.0` is the complete list. — [source](https://github.com/ml-explore/mlx/releases/tag/v0.32.0)
- None found between sources. The exo dossier's "patch stack removed reboots" attribution to PR 3451 is already disputed in jaccl-meshimpl-all-reduce-race-fix-mlx-3451.md. — source: `asserted`
- Whether PR 4191 reached a release, since it merged on 2026-08-12 but is not in the v0.32.1 notes. — source: `asserted`
- Whether the release-note titles omit PRs that touch JACCL under a generic title. — source: `asserted`
- MLX v0.32.0 (2026-07-07) includes JACCL PRs 3459 (barrier), 3451 (all_reduce staging race) and 3654 (multi-wire ring recv deadlock). — [source](https://github.com/ml-explore/mlx/releases/tag/v0.32.0)
- MLX v0.32.0 also includes PR 3523 (poison events on command-buffer error) and PR 3783 (quote hostname in `mlx.launch` ssh commands). — [source](https://github.com/ml-explore/mlx/releases/tag/v0.32.0)
- The JACCL refactor (PR 3412) and init fix (PR 3418) shipped in v0.31.2, not in 0.32.0. — [source](https://github.com/ml-explore/mlx/releases)
- MLX v0.32.1 (2026-08-17) includes PRs 3899 (optional JACCL coordinator), 3900 (ring refactor with threads per ring), 4005 (docs: do not pass `MLX_METAL_FAST_SYNCH=1` by default), 4026, 4027 and 4002. — [source](https://github.com/ml-explore/mlx/releases)
- MLX v0.32.2 includes PR 4284 (reject a JACCL hostfile with unpaired rdma entries). — [source](https://github.com/ml-explore/mlx/releases)
- MLX v0.32.3 (2026-09-29) includes PR 4443 (ring `all_gather` direction-1 slice fix) and PR 4552 (Metal fence deadlock). — [source](https://github.com/ml-explore/mlx/releases)
- None of PR 3152, 4530, 3468, 3742, 4060 or 4191 appears in the release notes for v0.30.4 to v0.32.3. — source: `asserted`
- The MLX `/releases` listing page truncates the v0.32.0 entry; the tag page is complete. — [source](https://github.com/ml-explore/mlx/releases/tag/v0.32.0)
