SIL 소유권 모델 (OSSA)¶
Ownership SSA는 SIL 값의 소유권 불변식을 정적으로 검증하는 시스템이다. 원본: swift/docs/SIL/Ownership.md
소유권 종류¶
SIL 값은 다음 중 하나의 소유권을 가진다:
- Owned: 값의 소유자. 소멸 책임이 있음 (
destroy_value) - Guaranteed: 대여된 값. 대여 범위 내에서만 유효 (
begin_borrow/end_borrow) - Unowned: 소유권 없음. 참조 카운팅과 무관
- None: 소유권 개념이 적용되지 않는 trivial 값
핵심 불변식¶
- 모든 owned 값은 정확히 한 번 소멸되어야 한다
- guaranteed 값은 대여 범위 안에서만 사용 가능
- 값의 모든 사용은 해당 값의 수명 내에 있어야 한다
파이프라인에서의 위치¶
OSSA lowering 이후에는 소유권 검증이 불가능하다.
관련 페이지: sil-reference, sil-instructions, sil-arc-optimization