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

AstonJ
This is a good guide about what to look for when getting a retina/non-retina monitor for your Mac. In short, around 110PPI is a good fit...
New
First poster: bot
TLDR: Render Disney’s Moana scene in less than 10.000 lines of Swift code. After Walt Disney Animation Studios released the scene descri...
New
Cellane
In the recent forum thread about shells people use, I got asked to elaborate a bit about the shell configuration I’ve been using for the ...
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
Apple Makes OS X Lion and Mountain Lion Free to Download. Apple recently dropped the $19.99 fee for OS X Lion and Mountain Lion, making ...
New
First poster: bot
Executive Summary TCC is meant to protect user data from unauthorized access, but weaknesses in its design mean that protections are eas...
New
First poster: bot
The report speculates that Apple’s increased use of Google Cloud suggests the company’s rising cloud storage requirements have outpaced i...
New
First poster: Maartz
Until its recent demise, Internet Explorer was the browser hated most by web developers. Internet Explorer is now a thing of the past, r...
New
First poster: bot
The release of M1 Macs marked a turning point for the open-source operating system community on Apple hardware. Now, the whole hardware s...
New
First poster: bot
macOS has a wonderful input mechanism where you press and hold a key on your keyboard to display the accent menu. It’s easy to internaliz...
New

Other popular topics Top

Exadra37
I am thinking in building or buy a desktop computer for programing, both professionally and on my free time, and my choice of OS is Linux...
New
dasdom
No chair. I have a standing desk. This post was split into a dedicated thread from our thread about chairs :slight_smile:
New
PragmaticBookshelf
Design and develop sophisticated 2D games that are as much fun to make as they are to play. From particle effects and pathfinding to soci...
New
AstonJ
I’ve been hearing quite a lot of comments relating to the sound of a keyboard, with one of the most desirable of these called ‘thock’, he...
New
AstonJ
Thanks to @foxtrottwist’s and @Tomas’s posts in this thread: Poll: Which code editor do you use? I bought Onivim! :nerd_face: https://on...
New
PragmaticBookshelf
“Finding the Boundaries” Hero’s Journey with Noel Rappin @noelrappin Even when you’re ultimately right about what the future ho...
New
AstonJ
If you are experiencing Rails console using 100% CPU on your dev machine, then updating your development and test gems might fix the issu...
New
mafinar
Crystal recently reached version 1. I had been following it for awhile but never got to really learn it. Most languages I picked up out o...
New
AstonJ
Continuing the discussion from Thinking about learning Crystal, let’s discuss - I was wondering which languages don’t GC - maybe we can c...
New
PragmaticBookshelf
Author Spotlight Jamis Buck @jamis This month, we have the pleasure of spotlighting author Jamis Buck, who has written Mazes for Prog...
New