Swiftのジェネリクスはどうやって動いているのかコンパイラのソースから探る @omochimetaru #iosdc #a
https://fortee.jp/iosdc-japan-2018/proposal/3d60b2ae-5841-4f60-8dd7-830377dc110e
Swiftにはジェネリクスという言語機能があり、
利用時の型が不確定なコードを書くことできます。
Swiftには厳密な型システムや、余計なメタ情報を持たない値型などがあるのに、
続きを読む
あつや🍳
@n_atmark
コンパイラ、理解した気持ちがあったものの、いきなりコード読んでも分からなくてモチベーションも湧かなかったけど、コンパイラの途中状態の出力をちょっとずつ観察してけばいいのか #iosdc #a
2018-09-02 11:49:20
Naomichi Okada🛴LUUP CTO
@7omich
実際のソースコード上ではもっと数倍拡散するはずなのに、大胆に要点以外を削ぎ落としていてわかりやすい…! Value Witness Table の擬似コードによる説明など、単純化の努力がたくさんされているお陰で脱落せずに聞けた #iosdc #a
2018-09-02 11:49:26
あつや🍳
@n_atmark
コンパイラ、理解したい気持ちがあったものの、いきなりコード読んでも分からなくてモチベーションも湧かなかったけど、コンパイラの途中状態の出力をちょっとずつ観察してけばいいのか #iosdc #a
2018-09-02 11:50:10
takasek
@takasek
発表聞いてるとコード読めそうな気がしてくるけど、Value Witness Tableの添字と中身を対応づけながら読むの考えると辛いな #iosdc #a
2018-09-02 11:50:45
shindyu
@shindyu
無限に必要そうだけどどうなのか?→必要なValueWitnessTableがコンパイル時に生成される。なるほど。 #iosdc #a
2018-09-02 11:51:07
椎名夏希
@417_72ki
Value Witness Tableとは別にprotocol用のWitness Tableがある(ってことで合ってる?) #iosdc #a
2018-09-02 11:55:07
椎名夏希
@417_72ki
associated typeはprotocolのWitness Tableに入ってる(ってこと?) だんだん混乱してきたぞい #iosdc #a
2018-09-02 11:57:02