Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Swift ABI Stability Manifestoを読む
Search
Yad
February 08, 2017
Programming
2
3k
Swift ABI Stability Manifestoを読む
2017/2/8 Kyobashi.swift x AKIBA.swift 合同勉強会 発表資料
Yad
February 08, 2017
Tweet
Share
More Decks by Yad
See All by Yad
ゲンバのクリーンアーキテクチャ - Scala play プロジェクト設計のお話 -
usrnameu1
15
4.6k
Other Decks in Programming
See All in Programming
Cap'n Webについて
yusukebe
0
150
從冷知識到漏洞,你不懂的 Web,駭客懂 - Huli @ WebConf Taiwan 2025
aszx87410
2
3.2k
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
460
tparseでgo testの出力を見やすくする
utgwkk
2
310
Patterns of Patterns
denyspoltorak
0
380
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
140
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
500
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
320
HTTPプロトコル正しく理解していますか? 〜かわいい猫と共に学ぼう。ฅ^•ω•^ฅ ニャ〜
hekuchan
2
540
ゆくKotlin くるRust
exoego
1
170
DevFest Android in Korea 2025 - 개발자 커뮤니티를 통해 얻는 가치
wisemuji
0
180
Cell-Based Architecture
larchanjo
0
150
Featured
See All Featured
The SEO Collaboration Effect
kristinabergwall1
0
310
Building Adaptive Systems
keathley
44
2.9k
Statistics for Hackers
jakevdp
799
230k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
33
Deep Space Network (abreviated)
tonyrice
0
26
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
220
Docker and Python
trallard
47
3.7k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
40
AI Search: Where Are We & What Can We Do About It?
aleyda
0
6.8k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
76
Transcript
4XJGU"#*4UBCJMJUZ .BOJGFTUPΛಡΉ ҆ୡ༐Ұ Ϋϥεϝιουגࣜձࣾ ݄ ⡥$MBTTNFUIPE *OD
҆ୡɹ༐Ұ • 2013/12 ೖࣾ • TwitterID: @UsrNameu1 • Github:
https://github.com/ UsrNameu1 • Blog: http://dev.classmethod.jp/ author/yad • ObjC/Swift/Scala/Python(R)
4XJGU"#*4UBCJMJUZ.BOJGFTUP ⡥$MBTTNFUIPE *OD IUUQTHJUIVCDPNBQQMFTXJGUCMPC NBTUFSEPDT"#*4UBCJMJUZ.BOJGFTUPNE
ຊͷτϐοΫ w 4XJGUͷকདྷతͳޓੑରԠ w "#*ΛֶͿಈػ w "#*ͱ w "#*҆ఆԽ
⡥$MBTTNFUIPE *OD
ຊͷτϐοΫ w 4XJGUͷকདྷతͳޓੑରԠ w "#*ΛֶͿಈػ w "#*ͱ w "#*҆ఆԽ
⡥$MBTTNFUIPE *OD
4XJGUͷকདྷతͳޓੑରԠ w ݹ͍όʔδϣϯͷ4XJGUίʔυͰ৽͍͠όʔδϣϯ ͷίϯύΠϥ͕ίϯύΠϧͰ͖ΔΑ͏ʹ w ϞδϡʔϧϑΝΠϧͷϑΥʔϚοτͷ҆ఆԽ w "#*ͷ҆ఆԽ ⡥$MBTTNFUIPE
*OD
⡥$MBTTNFUIPE *OD
ຊͷτϐοΫ w 4XJGUͷকདྷతͳޓੑରԠ w "#*ΛֶͿಈػ w "#*ͱ w "#*҆ఆԽ
⡥$MBTTNFUIPE *OD
"#*ΛֶͿಈػ w ඪ४ϥΠϒϥϦͷࣝΞοϓσʔτਏ͍ w Ұޙʹ͕ࣝݹ͘ͳͬͯΔͷਏ͍ ⡥$MBTTNFUIPE *OD 4XJGUͷΞοϓσʔτਏ͍
"#*ΛֶͿಈػ ⡥$MBTTNFUIPE *OD $ISJT-BUUOFSͷֶ w $ISJT-BUUOFS 4XJGUͱಉ࣌ʹ--7.ͷ࡞ऀ w "04"ຊষ--7.
w ޠ༁ϦϯΫ ɹIUUQNUBLBHJHJUIVCJPBPTBKB
"#*ΛֶͿಈػ ⡥$MBTTNFUIPE *OD $ISJT-BUUOFSͷֶ ͏ͻͱͭɺLLVMΛܰྔͳ··ʹอͪଓ͚͍ͯΔେ͖ͳಛ͕͋Δ (ϥΠϒϥϦΛ͏ΫϥΠΞϯτଆ͔ΒݟΔͱࢍ൱͕྆͋Δ)ɻ ͦΕɺաڈͷܾஅੵۃతʹݟͯ͠ɺաڈͱͷޓੑΛؾʹͤͣʹAPIΛ େ͖͘มߋ͍ͯ͘͠ͱ͍͏͜ͱͩɻ ͨͱ͑LLVM
IRࣗମʹେ෯ͳมߋΛՃ͑Δʹɺͯ͢ͷ࠷దԽύεͷมߋ ͕ඞཁʹͳΔɻ ͦͯͦ͠ΕɺC++ͷAPIʹେ͖ͳӨڹΛٴ΅͢ɻ LLVMͰաڈʹԿ͔ͦ͏͍͏͜ͱ͕͋ͬͨɻ ΫϥΠΞϯτଆʹͱͬͯਏ͔ͬͨͩΖ͏͕ɺࠓޙͷ։ൃΛॱௐʹਐΊ͍ͯ͘ ͨΊʹͦ͏͖ͩͬͨ͢ɻ
͏ͻͱͭɺLLVMΛܰྔͳ··ʹอͪଓ͚͍ͯΔେ͖ͳಛ͕͋Δ (ϥΠϒϥϦΛ͏ΫϥΠΞϯτଆ͔ΒݟΔͱࢍ൱͕྆͋Δ)ɻ ͦΕɺաڈͷܾஅੵۃతʹݟͯ͠ɺաڈͱͷޓੑΛؾʹͤͣʹAPIΛ େ͖͘มߋ͍ͯ͘͠ͱ͍͏͜ͱͩɻ ͨͱ͑LLVM IRࣗମʹେ෯ͳมߋΛՃ͑Δʹɺͯ͢ͷ࠷దԽύεͷมߋ ͕ඞཁʹͳΔɻ ͦͯͦ͠ΕɺC++ͷAPIʹେ͖ͳӨڹΛٴ΅͢ɻ LLVMͰաڈʹԿ͔ͦ͏͍͏͜ͱ͕͋ͬͨɻ ΫϥΠΞϯτଆʹͱͬͯਏ͔ͬͨͩΖ͏͕ɺࠓޙͷ։ൃΛॱௐʹਐΊ͍ͯ͘
ͨΊʹͦ͏͖ͩͬͨ͢ɻ "#*ΛֶͿಈػ ⡥$MBTTNFUIPE *OD $ISJT-BUUOFSͷֶ
⡥$MBTTNFUIPE *OD ͱ͍͑ɺਏ͍
"#*ΛֶͿಈػ w "#*ͷ҆ఆԽ w "#*෦ഁյతมߋ͕΄΅ͳ͘ͳΔ ⡥$MBTTNFUIPE *OD 4XJGUҎ߱
"#*ΛֶͿಈػ w "#*·ΘΓͷࣝḊͼͳ͍ w ଞͷਓ͕ͯ͠ͳ͍ωλ͕र͍͘͢ͳΔ ⡥$MBTTNFUIPE *OD ओཁͳಈػ
ຊͷτϐοΫ w 4XJGUͷকདྷతͳޓੑରԠ w "#*ΛֶͿಈػ w "#*ͱ w "#*҆ఆԽ
⡥$MBTTNFUIPE *OD
"#*ͱ ⡥$MBTTNFUIPE *OD w ࣮ߦ࣌ͷόΠφϦ͕ผϥΠϒϥϦΛ ݺͼग़࣌͢ʹ༻͍ΔΠϯλʔϑΣʔε 4XJGU4PVSDF #JOBSZ ֎෦ʹެ։͞Εͨ*'
֎෦ʹެ։͞Εͨ*'
"#*ͱ ⡥$MBTTNFUIPE *OD w ͭ·Γಠཱͨ͠όΠφϦͱͯ͠ίϯύΠϧ͞ΕɺϦϯ Ϋ͞ΕΔ࣌ʹຬ͖ͨ͢όΠφϦ --7.*3 ͷ༷ 4XJGU
4XJGU "#* #JOBSZ
ຊͷτϐοΫ w 4XJGUͷকདྷతͳޓੑରԠ w "#*ΛֶͿಈػ w "#*ͱ w "#*҆ఆԽ
⡥$MBTTNFUIPE *OD
"#*҆ఆԽ ⡥$MBTTNFUIPE *OD w ৽͍͠όʔδϣϯͷίϯύΠϥ͕ޓੑΛอͪͳ͕Β "#*ʹ४ڌͨ͠όΠφϦΛੜ͢ΔΑ͏ʹ"#*ʹറΓ Λ༩͑Δ #FGPSF "#*
#JOBSZ "GUFS
"#*҆ఆԽ ⡥$MBTTNFUIPE *OD w ҆ఆԽͷޙকདྷతʹ"#*BEEJUJWFͳՃ͕ߦΘΕ ΔՄೳੑ͋Γɻͨͩ͜͠ͷՃഁյతมߋͰͳ͍ Ճલ "#* #JOBSZ
Ճޙ
"#*҆ఆԽ ⡥$MBTTNFUIPE *OD w όʔδϣϯ͕ҧ͏ίϯύΠϥͰϏϧυͨ͠ΞϓϦʹ04 ඪ४ϥΠϒϥϦΛಉࠝ͢Δඞཁ͕ͳ͘ͳΔ #FGPSF "#* -JC
#JOBSZ "GUFS "QQ #JOBSZ OFX04 PME04 ͇ ҟͳΔ7FSͷϥΠϒϥϦͰ "#*ޓੑ͕ͳ͍ ɹɹɹɹɹɹɹˣ 04ͷΞοϓσʔτͰ-JCόΠφϦͷ *'Λҡ࣋Ͱ͖ͳ͘ͳΔ
"#*҆ఆԽ ⡥$MBTTNFUIPE *OD w όʔδϣϯ͕ҧ͏ίϯύΠϥͰϏϧυͨ͠ΞϓϦʹ04 ඪ४ϥΠϒϥϦΛಉࠝ͢Δඞཁ͕ͳ͘ͳΔ #FGPSF "#* -JC
#JOBSZ "GUFS "QQ #JOBSZ OFX04 PME04 0 OFX04 PME04
"#*҆ఆԽ ⡥$MBTTNFUIPE *OD w όʔδϣϯ͕ҧ͏ίϯύΠϥͰϏϧυͨ͠ΞϓϦʹ04 ඪ४ϥΠϒϥϦΛಉࠝ͢Δඞཁ͕ͳ͘ͳΔ #FGPSF "GUFS
0 OFX04 PME04 ҟͳΔ7FSͷϥΠϒϥϦͰ "#*ޓੑ͕͋Δ ɹɹɹɹɹɹɹɹˣ 04ͷΞοϓσʔτͰ-JCόΠφϦͷ *'ҡ࣋͞ΕΔ ɹɹɹɹɹɹɹɹˣ "QQόΠφϦ͔Β৽-JCόΠφϦΛ ݺͼग़ͯ͠ͳ͍
"#*҆ఆԽ ⡥$MBTTNFUIPE *OD w όʔδϣϯ͕ҧ͏ίϯύΠϥͰϏϧυͨ͠ΞϓϦʹ04 ඪ४ϥΠϒϥϦΛಉࠝ͢Δඞཁ͕ͳ͘ͳΔ #FGPSF "#* -JC
#JOBSZ "GUFS "QQ #JOBSZ OFX04 PME04 0 OFX04 PME04
"#*҆ఆԽ ⡥$MBTTNFUIPE *OD w ଞʹϥϯλΠϜɺΠϯϥΠϯԽʹؔ͢Δ༷͕҆ఆ Խͷ՝ʹͳ͍ͬͯΔ༷
ࢀߟαΠτ ⡥$MBTTNFUIPE *OD w 4XJGU"#*4UBCJMJUZ.BOJGFTUPSFWGE IUUQTHJUIVCDPNBQQMFTXJGUCMPCNBTUFSEPDT"#*4UBCJMJUZ.BOJGFTUPNE w 4XJGUͷ։ൃͷৼΓฦΓͱ4XJGUͷܭը͕ه͞Εͨϝʔϧͷհ IUUQRJJUBDPNNPOPJUFNTDCGBFFFEC
w 4XJGUΛ͍·͔ΒֶͿ4XJGU&WPMVUJPOΥονϯά IUUQEFWFMPQFSIBUFOBTUB⒎DPNFOUSZMFBSOBCPVUTXJGUQPJOUGSPNTXJGUFWPMVUJPO
ࢀߟαΠτ ⡥$MBTTNFUIPE *OD w 5IF4XJGU"#* IUUQTHJUIVCDPNBQQMFTXJGUCMPCNBTUFSEPDT"#*STU w 5IF4XJGU3VOUJNF IUUQTHJUIVCDPNBQQMFTXJGUCMPCNBTUFSEPDT3VOUJNFNE