Avatar
omochimetaru 8/9/2018 3:01 AM
https://forums.swift.org/t/value-ownership-when-reading-from-a-storage-declaration/15076 John McCallが新しいオーナーシップ付きのプロパティをどういう文法にしよう?ってピッチを投げてる
Background: Ownership Manifesto As part of preparing the Swift ABI for getting locked down in Swift 5, I am changing some aspects of the implementation strategy for storage accesses in Swift 5. A lot of this is purely implementation-level and has no effect on the language, ...
3:04 AM
このピッチの中で、秘密のアクセサの materializeForSet について解説されているのも面白い
3:06 AM
materializeForSet は Swift で setter のある property を作ると生成される第3のアクセサで
3:07 AM
ストレージのポインタを取得できる関数。 property が stored property で実装されている場合に、それが inout T を取る関数などに渡される場合に、
3:07 AM
stored property の実メモリのポインタを materializeForSet を使って取得してやることで、
3:07 AM
getter / setter のオーバヘッドを回避できるっていうハックなんだけど
3:10 AM
これが modify アクセサ として再設計されるとのこと。 materializeForSet はポインタ参照先が死んでいることが無いように、ユーザは直接使えないけど、 modify アクセサは言語機能として搭載されるコルーチンを使った実装になるので、 言語仕様として見えるようになる。
😃 1