Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Swift5.0 ABI安定化について
Search
t.goda
October 25, 2019
Programming
390
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Swift5.0 ABI安定化について
Swift5.0 と Swift5.1 のABI安定化とModule安定化について
t.goda
October 25, 2019
More Decks by t.goda
See All by t.goda
Distribute Binary Framework with Swift Package Manager
nivisunder7
0
140
XCTestでAPIのテストコードを書く
nivisunder7
0
420
App Clipについて
nivisunder7
1
82
SwiftUIの紹介
nivisunder7
0
43
Watch Kitのはまりどころ
nivisunder7
0
63
Docker in Docker Tips
nivisunder7
0
63
iOS11のここが素晴らしい
nivisunder7
0
88
iPhoneX時代のレイアウト
nivisunder7
0
100
SpriteKitでゲーム開発
nivisunder7
0
120
Other Decks in Programming
See All in Programming
Foundry Localでエージェント開発
seosoft
0
190
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
150
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
700
LLMは4年分のCompose移行を再現できるのか?実プロダクト279件のXMLで探る自動化の境界線
makun
0
640
AI × TiDD / 2026.09.05 Redmine 大阪
tokudiro
1
140
Swift愛好会100回記念 第1回を振り返る
jollyjoester
0
120
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
4
660
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
150
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
450
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
0
230
Security issues being discussed on Web Platforms
petamoriken
0
840
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
460
Featured
See All Featured
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
320
Visualization
eitanlees
152
17k
Side Projects
sachag
456
43k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Prompt Engineering for Job Search
mfonobong
0
450
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Optimising Largest Contentful Paint
csswizardry
37
4k
Designing for Timeless Needs
cassininazir
1
470
Google's AI Overviews - The New Search
badams
0
1.6k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
570
Code Review Best Practice
trishagee
74
20k
Transcript
Swift5におけるABI安定化 2019/10/25
ABIとは? • Application Binary Interfaceの略 • アプリケーションプログラムとシステム間のバイナリレベルのインタフェー スのこと(by Wikipedia)
SwiftにおけるABI安定化の歴史 • Swift3でABI安定化めざすよ!! • だめでした • Swift4でABI安定化今度こそいれるよ! • 間に合いませんでした •
3度目の正直、Swift5で安定化するよ! • ついに達成!!!
ABI安定化したらどうなるの? • バージョンの異なるSwiftでビルドされたバイナリをそのまま使用できる • “Swift 5 provides binary compatibility for
apps: a guarantee that going forward, an app built with one version of the Swift compiler will be able to talk to a library built with another version” • もういちいちライブラリのビルドされてるバージョンとか確認しなくてよくな るんだ!!! • やった!!! • 我々は解き放たれた!!!
は?
前ページ解説 • Swift5.1でSwift5.0(でコンパイルされた)ライブラリをインポートするとエ ラーが発生した • 5.0時点でABI安定化しているので5.1なら動くはずでは?
ABI安定化についてもう少し • SwiftのABI安定化はランタイム時のSwiftバージョンの混在を許容するもの • “ABI stability is about mixing versions
of Swift at run time” • ではコンパイル時のバージョン差分は……? • 吸収してくれない • Swift5.0でコンパイルされたものとSwift5.1でコンパイルされたものは混在 できない
おわかりいただけただろうか
なにそれ
意味ある?
意味あるよ • ダウンロードサイズが小さくなる • Swiftランタイムライブラリを一緒に配布しないでよくなるため • ホストOSにより最適化されるのでSwiftで書かれたプログラムがより早く なってメモリ消費量も小さくなる • ほんとぉ?
• Module安定化が供給された場合、サードパーティ製のSwiftライブラリも バイナリ形式で提供して問題なくなる • これですよこれ!!
Module安定化とは • あるバージョンのコンパイラで作成されたバイナリフレームワークを別の バージョンのコンパイラでコンパイル可能になること • Swift5.1以降のコンパイラで作成されているならSwift5.2以降ならコンパ イルバージョンをあわせなくてよくなる
我々はついに解放される(多分) 執筆時点で5.1が最新だから 試せない……
まとめ • Swift5.0でABI安定化が実装された • ABI安定化だけではコンパイラのバージョン差分は吸収できない • Swift5.1でModule安定化が実装された • これによりバイナリフレームワーク等、コンパイラのバージョン差分を気 にしなくてよくなる
• SwiftのABI安定化 ≠ Module安定化