Skip to content

Sync upstream ml-explore/mlx-swift main (43c90af) - #28

Open
solderzzc wants to merge 8 commits into
mainfrom
sync/upstream-43c90af-merge
Open

solderzzc wants to merge 8 commits into
mainfrom
sync/upstream-43c90af-merge

Conversation

@solderzzc

Copy link
Copy Markdown
Member

Real merge of upstream main through 43c90af (seven commits after 35c10b4). Replaces the bot PR #27, which stopped at 863ee9f and still referenced the removed cLogSupport framework in release.yml. Here release.yml has no cLogSupport references.

No conflicts. Fork-side device-scope patch in Transforms+Compile.swift is kept.

🤖 Generated with Claude Code

davidkoski and others added 8 commits October 19, 2026 08:55
…l-explore#469)

* compile and vmap can produce Sendable closures from Sendable inputs

- this idea comes from ml-explore/mlx-swift-lm#589 (@aleroot)
- breaking change for compile calls that capture state without using inputs:
* Fix iOS 26.2 launch crash from Logger.isEnabled

* rebase and remove previous logging patch

---------

Co-authored-by: David Koski <dkoski@apple.com>
ml-explore#481)

* Add Sendable closures and 3-parameter VJP support to MLXCustomFunction (ml-explore#475)
…plore#498)

GPU.deviceInfo() called MTLCreateSystemDefaultDevice() on every call. In a
command-line process the first such call opens a window server session
(SLSCreateDefaultMetalDevice -> SLSMainDisplayID -> SLSInitialize ->
CGSDisplayInitialize). That step can stall for many seconds.

Select the device the same way as metal::load_device in MLX: the first
device of MTLCopyAllDevices(), else MTLCreateSystemDefaultDevice(). Compute
the value once per process. The public API and the returned fields do not
change.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* MaterializedArray is a Sendable MLXArray

- once an array has been evaluated we can use it as Sendable
- a subtype of MLXArray that is Sendable

- handle MaterializedArray passed as inputs (state) to a compiled function
	- contents are constant by definition so can be discarded and captured normally
	- calling materialize inside transforms
	- tracers inside materialized modules
Brings in the seven upstream commits after 35c10b4: ml-explore#481 (Sendable closures and
3-parameter VJP for MLXCustomFunction), ml-explore#503 (shardedToAllPredicate), ml-explore#494 (iOS
26.2 launch crash from Logger.isEnabled), ml-explore#498 (GPU.deviceInfo device selection),
ml-explore#418 (MaterializedArray is Sendable), ml-explore#505 (tripletLoss fix). The cLogSupport
removal in release.yml comes in with the merge; no fork-side edit was needed.
No conflicts.

Co-Authored-By: Claude Haiku 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.

7 participants