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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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.7k
Other Decks in Programming
See All in Programming
AtCoder Conference 2025
shindannin
0
1.1k
CSC307 Lecture 03
javiergs
PRO
1
490
AI時代の認知負荷との向き合い方
optfit
0
150
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6k
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
190
Grafana:建立系統全知視角的捷徑
blueswen
0
330
OCaml 5でモダンな並列プログラミングを Enjoyしよう!
haochenx
0
140
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
200
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
190
なるべく楽してバックエンドに型をつけたい!(楽とは言ってない)
hibiki_cube
0
140
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
610
CSC307 Lecture 09
javiergs
PRO
1
830
Featured
See All Featured
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
110
It's Worth the Effort
3n
188
29k
The SEO Collaboration Effect
kristinabergwall1
0
350
Utilizing Notion as your number one productivity tool
mfonobong
3
220
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
77
AI Search: Where Are We & What Can We Do About It?
aleyda
0
6.9k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
0
110
Designing for Timeless Needs
cassininazir
0
130
New Earth Scene 8
popppiees
1
1.5k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
320
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
3.9k
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