You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
🤘 metal: Migrate to objc2 architecture with objc2-metal bindings (#225)
* metal: Migrate to `objc2` architecture with `objc2-metal` bindings
The current `objc` crate stack is completely unmaintained and has
severely fallen out of date with no updates for over 4 years. The
`metal-rs` crate, built on top of this architecture, is completely
written by hand which is tedious to keep up-to-date, not to mention
has inconsistencies in its implementation.
All of this is superseded by the new `objc2` crate stack built by
@madsmtm. Beyond providing what seems like a better, safer abstraction
over Objective-C, _all_ bindings are completely autogenerated meaning
we'll no longer lag behind upstream bindings (requiring painstaking
manual patching) or have inconsistencies in the implementations, as long
as the generator is properly able to represent the bindings.
* Use `target_vendor = "apple"` instead of many custom `target_os`es
* Work around unused_qualifications lint for Rust 1.80 prelude extension
`size_of(_val)()` was added to the prelude in Rust 1.80, causing
`unused_qualifications` warnings whenever we qualify a call to it with
via `std::mem::size_of_val()`.
The easiest workaround is to remove the prefix and explicitly import the
function in scope. We annotate the import with a `TODO` to remove it
once bumping our MSRV on or past 1.80.
0 commit comments