코틀린 컴포넌트의 안정성
코틀린 컴포넌트의 안정성 (1.4 이전)
참고: 이 문서는 코틀린 1.4 이전 시기의 컴포넌트 안정성 격조를 다루는 역사적 페이지예요. 컴포넌트가 얼마나 빠르게 진화하느냐에 따라 안정성 모드는 여러 가지로 나뉠 수 있어요.
안정성은 컴포넌트가 얼마나 빨리 진화하고 있느냐에 따라 여러 모드로 나뉘어요.
- Moving fast (MF): 증분 릴리스 사이에도 어떤 호환성도 기대해서는 안 돼요. 어떤 기능이든 경고 없이 추가되거나 제거되거나 변경될 수 있어요.
- Additions in Incremental Releases (AIR): 증분 릴리스에서 기능을 추가할 수 있어요. 제거나 동작 변경은 피해야 하고, 필요하다면 이전 증분 릴리스에서 미리 공지해야 해요.
- Stable Incremental Releases (SIR): 증분 릴리스는 완전히 호환돼요. 최적화와 버그 수정만 일어나요. 모든 변경은 언어 릴리스(language release)에서 가능해요.
- Fully Stable (FS): 증분 릴리스는 완전히 호환되고, 최적화와 버그 수정만 일어나요. 기능 릴리스(feature release)는 하위 호환이 보장돼요.
같은 컴포넌트라도 소스 호환성과 바이너리 호환성이 서로 다른 모드를 가질 수 있어요. 예를 들어 소스 언어는 완전히 안정화됐는데 바이너리 형식은 아직 안정화되지 않았을 수 있고, 그 반대일 수도 있어요.
코틀린 진화 정책(Kotlin evolution policy)의 조항은 오직 Fully Stable(FS)에 도달한 컴포넌트에만 완전히 적용돼요. 그 시점부터 호환되지 않는 변경은 언어 위원회(Language Committee)의 승인을 받아야 해요.
| 컴포넌트 | 상태가 입력된 버전 | 소스 모드 | 바이너리 모드 |
|---|---|---|---|
| Kotlin/JVM | 1.0 | FS | FS |
| kotlin-stdlib (JVM) | 1.0 | FS | FS |
| KDoc 문법 | 1.0 | FS | N/A |
| Coroutines | 1.3 | FS | FS |
| kotlin-reflect (JVM) | 1.0 | SIR | SIR |
| Kotlin/JS | 1.1 | AIR | MF |
| Kotlin/Native | 1.3 | AIR | MF |
| Kotlin Scripts (*.kts) | 1.2 | AIR | MF |
| dokka | 0.1 | MF | N/A |
| Kotlin Scripting APIs | 1.2 | MF | MF |
| Compiler Plugin API | 1.0 | MF | MF |
| Serialization | 1.3 | MF | MF |
| Multiplatform Projects | 1.2 | MF | MF |
| Inline classes | 1.3 | MF | MF |
| Unsigned arithmetics | 1.3 | MF | MF |
| 그 외 모든 실험적 기능(기본값) | N/A | MF | MF |