CommunityNews

CommunityNews

How Swift achieved dynamic linking where Rust couldn't (2019)

For those who don’t follow Swift’s development, ABI stability has been one of its most ambitious projects and possibly it’s defining feature, and it finally shipped in Swift 5. The result is something I find endlessly fascinating, because I think Swift has pushed the notion of ABI stability farther than any language without much compromise.

So I decided to write up a bunch of the interesting high-level details of Swift’s ABI. This is not a complete reference for Swift’s ABI, but rather an abstract look at its implementation strategy. If you really want to know exactly how it allocates registers or mangles names, look somewhere else.

Also for context on why I’m writing this, I’m just naturally inclined to compare the design of Swift to Rust, because those are the two languages I have helped develop. Also some folks like to complain that Rust doesn’t bother with ABI stability, and I think looking at how Swift does helps elucidate why that is…

This thread was posted by one of our members via one of our news source trackers.

Where Next?

Popular Macos topics Top

First poster: bot
mikelxc/Workarounds-for-ARM-mac. This repository describes how I get most of my configurations work on the new Apple Silicon Mac - mikel...
New
First poster: bot
Apple Silicon M1: A Developer’s Perspective. The excitement around Apple’s new M1 chip is everywhere. I bought a MacBook Air 16GB M1 to ...
New
First poster: bot
How Apple’s rivals plan to catch up with the mighty M1 chip. Apple Silicon is just getting started yet the initial reaction has been rap...
New
First poster: bot
1 Background 1.1 Swift TLDR 1.2 What Is ABI Stability and Dynamic Linking 1.3 Swift’s Stable ABI 1.4 Resilience and Library Evolution ...
New
First poster: bot
Apple Now Selling More M1 Macs Than Intel-Based Models, Says Tim Cook. Despite only being released in November, sales of the M1-powered ...
New
First poster: bot
Swift 5.5 is here with Xcode 13 Beta and with it comes my favorite new addition to Swift: Async/Await. Async/await is a high level, stru...
New
First poster: bot
Made a small video today showing the creation of a macOS Droplet using AppleScript. I made it just for fun, and because I realised that m...
New
First poster: bot
The ARM architecture defines rules for how to call functions, manage the stack, and perform other operations. If part of your code includ...
New
First poster: bot
My journey from macOS to FreeBSD. Personal experience with moving away from Apple’s world.
New
First poster: bot
Recommended settings for Wi-Fi routers and access points. For the best security, performance, and reliability, we recommend these settin...
New

Other popular topics Top

Devtalk
Reading something? Working on something? Planning something? Changing jobs even!? If you’re up for sharing, please let us know what you’...
1052 22283 402
New
PragmaticBookshelf
Brace yourself for a fun challenge: build a photorealistic 3D renderer from scratch! In just a couple of weeks, build a ray tracer that r...
New
PragmaticBookshelf
From finance to artificial intelligence, genetic algorithms are a powerful tool with a wide array of applications. But you don't need an ...
New
AstonJ
We have a thread about the keyboards we have, but what about nice keyboards we come across that we want? If you have seen any that look n...
New
AstonJ
There’s a whole world of custom keycaps out there that I didn’t know existed! Check out all of our Keycaps threads here: https://forum....
New
dimitarvp
Small essay with thoughts on macOS vs. Linux: I know @Exadra37 is just waiting around the corner to scream at me “I TOLD YOU SO!!!” but I...
New
DevotionGeo
The V Programming Language Simple language for building maintainable programs V is already mentioned couple of times in the forum, but I...
New
mafinar
This is going to be a long an frequently posted thread. While talking to a friend of mine who has taken data structure and algorithm cou...
New
New
CommunityNews
Open-source implementation of the classic GTA engine now running directly in your browser. Experience the reVC technology demo on DOS.Zon...
New