Auto Linking on iOS & macOS
Sep 3, 2020, 7:00 PM
Auto Linking Explained
When object files get linked at the final build stage, the linker needs to know which libraries to link against. For example, if you add #import <AppKit/AppKit.h> to an implementation file, you need to also...
Distributed Caching & Compilation
Jun 6, 2020, 7:00 PM
Determinism plays an important role in the ability to cache output of compilation.
Distributed caching and compilation enable quick iteration on large scale software.
Computation of distributed cache keys is non-trivial as...
Apple’s Linker & Deterministic Builds
May 2, 2020, 7:00 PM
Universal deterministic builds require that all paths in artifacts must be repo checkout independent.
On Apple platforms, the linker will insert absolute paths to object files in executables.
In Xcode 11, Apple added a new linker...
xcode-select, xcrun & Friends
Mar 29, 2020, 7:00 PM
macOS Developer Directory
macOS has the notion of a system-wide active developer directory for Xcode and BSD tools. It contains necessary programs to be able build applications and perform supporting functions.
Inside /usr/bin, you will...
Swift, Module Maps & VFS Overlays
Mar 11, 2020, 8:00 PM
When compiling code in large non-trivial codebases, the filesystem directory layout might not be matching the structure that's encoded in the source code. There are multiple technical reasons why it would not be possible to make them...
Apple Linker Magic & Swift Runtime
Feb 8, 2020, 7:00 PM
Before Swift was ABI-stable, apps on Apple platforms had to embed the Swift runtime in their app bundles regardless of the targeted OS version.
With the release of the ABI-stable Swift 5, Apple started including the runtime as part of...
Swift Unsafe Pointers
Nov 5, 2016, 8:00 PM
Swift 3 has several different pointer-like types that allow interfacing with the outside world. This article provides a concise overview of UnsafeRawPointer, UnsafePointer, AutoreleasingUnsafeMutablePointer, Unmanaged and...
The Mac Platform Decline
Oct 29, 2016, 7:00 PM
David Owens II:
To me, Thursday’s event signaled one thing for me, and maybe I’m completely wrong, but the Mac is officially over.
Apple, the MacBook Pro is not a pro-level computer. It’s simply not.
Apple’s desktop Mac...
Live Photo API on iOS
Dec 29, 2015, 7:00 PM
What are Live Photos? From a marketing perspective, Live Photos record the moments just before and after you take a photo. Under the hood, a Live Photo is just a JPEG image together with a QuickTime file contaning an H.264...
Swift Generic Protocols
Sep 3, 2015, 7:00 PM
Protocols in Swift can be generic via abstract type members rather than parameterisation. Consequently, the protocol itself can no longer be used as a type but only as a generic constraint.
If you tried to use a generic...