Repository navigation
Pin mlx ff4bb35b and mlx-c 004c735f (#40, #43), and regenerate - #63
Merged
Merged
Conversation
Source/Cmlx/mlx moves from 83dbdb04 to c51f9f32, the Layr-Labs/mlx main merge commit of #40 (float16 and bfloat16 floor divide in float32). Source/Cmlx/mlx-c moves from cb19abf6 to f1a489c9, the head of the mlx-c PR whose GIT_TAG is the same mlx commit. tools/update-mlx.sh output: - mlx-generated/metal/binary_ops.h, binary_ops.cpp, scan.cpp and compiled_preamble.cpp carry the #40 half-type floor divide. - mlx-generated/cuda/cuda_jit_sources.h catches up with the int64_t stride products in gemm_sm70 and qmm_sm80. That change was already in 83dbdb04; main had not regenerated it. - include-framework/Metal.hpp: the generated commit stamp only. The mlx-c headers do not change. fork.yaml: the Submodule pins prose names the new pins. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This was referenced Oct 24, 2026
Source/Cmlx/mlx moves from c51f9f32 to ff4bb35b, the head of Layr-Labs/mlx#43 (a freed compiled closure is erased from every thread compile cache). Source/Cmlx/mlx-c moves from f1a489c9 to 004c735f, the mlx-c#19 head whose GIT_TAG is the same mlx commit. tools/update-mlx.sh changes only the Metal.hpp commit stamp: #43 changes mlx/compile.cpp and a C++ test, not a JIT source or a header. fork.yaml: the Submodule pins prose names the new pins. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
jonathan308
approved these changes
Oct 24, 2026
jonathan308
added a commit
that referenced
this pull request
Oct 26, 2026
…ack (#56) Forward merge of the refreshed #54 (main 6959486 merged into the JACCL fixes pin) into this branch. This branch already carried main up to the #58 squash 67dc752, so the new main content is the upstream ml-explore/mlx-swift merge ce46846 (#59, with #60 and #62), the core and C repin with regenerated sources (#63) and the wrapped external buffer test (#64). Conflicts: - Source/Cmlx/mlx and Source/Cmlx/mlx-c (gitlinks): kept this branch's pins, core 360d11b9 and mlx-c 8a50797b. They are restitched to the merged core and C heads separately. - fork.yaml, "Submodule pins": one paragraph that states main's pins (mlx ff4bb35b, mlx-c 004c735f, merges of upstream main) and then what the cluster core and C add on top. Every other section merged without conflict; the cluster's startup-wait section is kept. Merged without conflict and checked: the mirrored fast.h keeps the fenced kernel and prepared launch declarations next to main's math-mode entry point, distributed_group.h keeps the bootstrap, startup-wait and sealed-codec declarations, and MLXArray.sharingArray() still calls copyContext(), which main keeps. The tree is main plus this branch's own delta: the two gitlinks, those two headers, MLXArray.swift, MLXFastKernel.swift, docs/startup-wait-budget.md and fork.yaml. Main's Transforms+Eval.swift now schedules under evalLock and waits outside it (upstream ml-explore#474). withSerializedEvaluation still runs its body under evalLock, so native evaluation, fences and collectives stay serialized against scheduling; a Swift eval's wait no longer excludes them. Tests (Ultra A, Xcode 27.1). These ran on this merge with the two follow-up commits on top (swift-format and fork.yaml). The committed gitlinks are not changed. For the build, the nested repos were checked out at merged heads: core 2b5253ad (the core merge into mlx#35; 69c0a0f6 gave the same results) and a temporary merge of mlx-c main 004c735f into 8a50797b. Its C sources merge cleanly; CMakeLists.txt and fork.yaml are taken from 8a50797b. - swift build --build-tests: complete. - Fork Tests, all 3 shards of the CI plan, with an AOT mlx.metallib from that core: - XCTest: 852 listed, 848 passed, and the 2 permitted skips. - The fresh-process allocation-cap test and both multi-process ring suites passed. - Swift Testing: 749 of 749 passed. - test-shards.py verify: every test ran exactly once. - check-generated-metal-sources.py passes against that core. - The mirrored mlx/c headers are byte-identical to the merged C headers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
jonathan308
added a commit
that referenced
this pull request
Oct 26, 2026
Brings in main up to 6959486 (2026-10-24): the upstream ml-explore/mlx-swift merge ce46846 (#59, with #60 and #62), the core and C repin with regenerated sources (#63) and the wrapped external buffer test (#64). Conflicts: - Source/Cmlx/mlx and Source/Cmlx/mlx-c (gitlinks): kept this branch's pins, core fdae3174 and mlx-c 489e9654, as the cluster stack has them. Main pins core ff4bb35b and mlx-c 004c735f. The cluster pins are restitched to the merged core and C heads separately; the Swift layer of this merge needs main's C API and does not link against the old pins. The merged tree is main plus this branch's own delta: the two gitlinks and the mirrored distributed_group.h copies that declare mlx_distributed_init_jaccl_with_bootstrap (main did not change those headers). Tests (Ultra A, Xcode 27.1). The committed gitlinks are not changed. For the build, the nested repos were checked out at merged heads: core 187b6c67 (the core merge of main f78f0fa9 into mlx#33) and a clean, temporary merge of mlx-c main 004c735f into 489e9654. - swift build --build-tests: complete. - Fork Tests, all 3 shards of the CI plan, with an AOT mlx.metallib from that core: - XCTest: 852 listed, 848 passed, and the 2 permitted skips. - The fresh-process allocation-cap test and both multi-process ring suites passed. - Swift Testing: 749 of 749 passed. - test-shards.py verify: every test ran exactly once. - check-generated-metal-sources.py passes against that core. At the committed core it fails, because main regenerated the quantized sources. - check_forkdiff.py --upstream-ref upstream/main: 211 of 211 files described. - Lint: this branch changes no Swift file against main. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes
Source/Cmlx/mlx:83dbdb04->ff4bb35b60c3aadafb9e0bd30b6180cef646fb1a, the head of compile: a freed closure leaves every thread's compile cache mlx#43 (a freed compiled closure is erased from every thread compile cache). It is based on Layr-Labs/mlxmainc51f9f32, the merge commit of Compute float16 and bfloat16 floor divide in float32 mlx#40 (float16 and bfloat16 floor divide in float32).Source/Cmlx/mlx-c:cb19abf6->004c735f505893ee21b0153316fdc18a82dbbb12, the head of Pin mlx ff4bb35b (#43 on main with #40) mlx-c#19, whoseGIT_TAGis the same mlx commit.tools/update-mlx.shoutput, committed as the script wrote it:mlx-generated/metal/binary_ops.h,binary_ops.cpp,scan.cpp,compiled_preamble.cpp: the fix(nn): use the normalized sum as post-norm decoder cross-attention queries #40 half-type floor divide.mlx-generated/cuda/cuda_jit_sources.h: catches up with theint64_tstride products ingemm_sm70.cuhandqmm_sm80.cuh. That change was already in83dbdb04;mainhad not regenerated it.include-framework/Metal.hpp: the generated commit stamp only.mlx/compile.cppand a C++ test only, so it changes no generated file. The mlx-c headers do not change.fork.yaml: the "Submodule pins" prose names the new pins.Commits:
8d927e6dpinned mlxc51f9f32and mlx-cf1a489c9(with the regeneration) while #43 was in CI.eedca444moves to mlxff4bb35band mlx-c004c735f; the script re-run changed only the Metal.hpp stamp.Pin chain
ff4bb35b)ff4bb35bSource/Cmlx/mlx=ff4bb35b,Source/Cmlx/mlx-c=004c735feedca444(this PR's head)Merge order
Layr-Labs/mlx#43 -> Layr-Labs/mlx-c#19 -> mlx-swift (this PR) -> Layr-Labs/mlx-swift-lm#358.
Use "Create a merge commit" for every PR in the chain. Do not squash. A squash makes the pinned SHAs unreachable from
main.🤖 Generated with Claude Code