Pulse 게시 ·

Kotlin Multiplatform, IDE·컴파일러 해석 맞추는 분리 컴파일 실험 기능

JetBrains가 9월 28일 Kotlin 2.5.0-Beta1의 실험적 분리 컴파일을 소개했다. 공통 코드를 의존 라이브러리의 공통 선언만으로 해석해 IDE와 컴파일러의 오버로드 선택·타입 추론을 맞춘다. 기본값은 꺼짐이며, 기존에 통과하던 플랫폼 전용 호출이 컴파일 오류가 될 수 있다.

gradle.properties에 kotlin.kmp.separateCompilation=true를 추가해 활성화한다.

기존 방식에서는 commonMain·commonTest가 의존 모듈의 플랫폼 전용 선언을 호출해 IDE 분석과 실제 컴파일 결과가 달라질 수 있었다.

분리 컴파일은 공통 소스 세트의 증분 컴파일을 구현할 기반도 제공한다.

라이브러리 배포에 메타데이터 KLIB가 필수이며, C 상호운용 관련 알려진 문제가 남아 있다.

공통 소스 세트와 단일 타깃만 있는 KMP 모듈에는 현재 적용되지 않는다.

공통 코드에서 플랫폼 구현을 쓰려면 expect·actual 연결을 명시해야 하므로, 전환 과정에서 숨겨진 플랫폼 의존성을 찾을 수 있다.

원문