Skip to content

Pin mlx ff4bb35b and mlx-c 004c735f (#40, #43), and regenerate - #63

Merged
davidtai merged 2 commits into
mainfrom
pin/mlx-c51f9f32
Oct 24, 2026
Merged

davidtai merged 2 commits into
mainfrom
pin/mlx-c51f9f32

Conversation

@davidtai

@davidtai davidtai commented Oct 24, 2026 •

Copy link
Copy Markdown

What changes

Commits: 8d927e6d pinned mlx c51f9f32 and mlx-c f1a489c9 (with the regeneration) while #43 was in CI. eedca444 moves to mlx ff4bb35b and mlx-c 004c735f; the script re-run changed only the Metal.hpp stamp.

Pin chain

PR Pin
Layr-Labs/mlx#43 (head ff4bb35b)
Layr-Labs/mlx-c#19 mlx ff4bb35b
this PR (mlx-swift) Source/Cmlx/mlx = ff4bb35b, Source/Cmlx/mlx-c = 004c735f
Layr-Labs/mlx-swift-lm#358 mlx-swift = eedca444 (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

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>
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>
@davidtai davidtai changed the title Pin mlx c51f9f32 and mlx-c f1a489c9 (#40), and regenerate Pin mlx ff4bb35b and mlx-c 004c735f (#40, #43), and regenerate Oct 24, 2026
@davidtai
davidtai merged commit 99101de into main Oct 24, 2026
13 checks passed
@davidtai
davidtai deleted the pin/mlx-c51f9f32 branch October 24, 2026 17:35
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants