2018년 6월 14일
Kotlin 1.2.50 버전의 출시를 기쁜 마음으로 알려드립니다. 이 버그 수정 및 도구 업데이트는 Kotlin 1.2의 새로운 업데이트입니다. 이번 업데이트는 다음과 같은 내용을 포함하고 있습니다:
- Eclipse IDE 플러그인의 Kotlin 지원 업데이트
- 표준 라이브러리의 common 및 JS 부분에 새로운 함수 추가
- kotlin.test에 JUnit 5 지원 추가
- 실험적인 스크립팅 지원 개선
- IntelliJ IDEA에서 실행 가능한 Kotlin 스크래치 파일 도입
- Gradle을 사용하여 다중 모듈 Android 프로젝트 빌드 속도 향상
- 바이너리 호환성 모드와 함께 실험적인 @JvmDefault 지원 업데이트
- 진화하는 컴파일러 모드 도입
- 컴파일러와 IDE 플러그인에서 알려진 문제를 해결하고 성능을 개선
이 업데이트는 IntelliJ IDEA 2017.2부터 2018.2 EAP까지의 모든 버전과 Android Studio 3.0, 3.1, 3.2 Canary와 호환됩니다.
이번 업데이트에는 다음과 같은 새로운 기능이 포함되어 있습니다:
Eclipse IDE 플러그인 업데이트
저희는 Eclipse IDE용 플러그인의 새로운 0.8.5 버전을 자랑스럽게 발표합니다. 이 업데이트는 Kotlin 1.2.50 컴파일러 지원을 포함하여 다음과 같은 여러 기능과 개선 사항을 가져왔습니다:
- kotlin-allopen 및 kotlin-spring과 같은 Kotlin 컴파일러 플러그인의 지원
- 생성된 JVM 바이트 코드 버전을 구성하는 환경 설정
- 디버거와 J2K 변환기에서의 버그 수정
환경 설정 | Kotlin | 컴파일러에서 찾을 수 있는 작업 공간 전체의 Kotlin 컴파일러 환경 설정 기능. 또한 프로젝트 수준의 설정만 구성하는 것도 가능합니다.
업데이트된 Kotlin Eclipse 플러그인은 Eclipse Marketplace에서 사용 가능합니다. 자세한 내용은 "시작하기" 튜토리얼을 참조하십시오.
라이브러리 업데이트
이 업데이트에서는 Byte, Short, Int, Long에 대한 toString(radix: Int) 확장 함수 집합이 표준 라이브러리의 공통 및 Kotlin/JS 부분에 추가되었습니다. 이 확장 함수들은 Florian Steitz라는 기여자에 의해 추가되었으며, 실험적인 멀티플랫폼 프로젝트 및 JavaScript를 대상으로 하는 프로젝트에서 사용할 수 있습니다.
또한 공통 및 Kotlin/JS 표준 라이브러리 부분에는 CharArray를 String으로 효율적으로 변환하기 위한 두 개의 생성자, String(chars: CharArray)와 String(chars: CharArray, offset: Int, length: Int)가 추가되었습니다. 이 변경 사항은 Valeriy Zhirnov라는 기여자에 의해 제공되었습니다.
또한, kotlin.test 라이브러리는 이제 JUnit 5 프레임워크를 kotlin-test-junit5라는 별도 모듈을 통해 지원합니다. 이 모듈은 JUnit 5 위에서 Asserter의 구현을 제공하며, kotlin-test-annotations-common의 테스트 주석을 JUnit 5 테스트 주석으로 매핑합니다.
개선된 실험적인 스크립팅 지원
이번 업데이트에서는 더 쉬운 Kotlin 스크립트 사용자 정의, 표준 컴파일러 및 IDEA 플러그인에서 스크립트 사용을 더 간단하게 만들고 스크립팅 호스트 생성 및 임베딩을 더 쉽게 만드는 새로운 실험적인 스크립팅 지원이 도입되었습니다. 현재 구현 상태와 함께 전체 Kotlin 스크립팅 제안은 적절한 KEEP에서 찾을 수 있습니다. 주요 하이라이트는 다음과 같습니다:
- 이제 스크립트를 정의하는 JAR 파일을 만들 수 있으며 해당 JAR 파일을 컴파일 클래스 경로에 추가하면 해당 유형의 스크립트가 컴파일러 및 IDEA 플러그인에서 자동으로 지원됩니다.
- 이제 스크립트 컴파일에 타입이 지정된 외부 변수를 전달하여 해당 변수를 스크립트 외부에서 정의된 전역 변수처럼 사용할 수 있습니다.
- 스크립트 지원의 구조가 훨씬 간단해졌으며 제공된 도우미를 사용하면 사용자 정의 스크립팅 호스트를 이전보다 훨씬 쉽게 구현하고 임베딩할 수 있습니다.
IntelliJ IDEA 플러그인 개선
실행 가능한 Kotlin 스크래치 파일 및 Kotlin 스크립트
Kotlin IntelliJ IDEA 플러그인 업데이트에는 실행 가능한 Kotlin 스크래치 파일을 지원하는 기능이 도입되었습니다. 이를 통해 프로젝트의 코드에서 선언을 사용할 수 있습니다.
또한, Kotlin Script (*.kts) 파일에 대한 IDE 지원이 개선되었습니다. 이제 프로젝트 뷰에서 새로운 스크립트를 생성하고 해당 모듈의 클래스패스 내에서 실행할 수 있습니다.
Raw 문자열 입력과 들여쓰기
업데이트된 IDE 플러그인은 원시 문자열 리터럴을 입력하기 더 쉽게 만들어주며, """ 쌍따옴표를 자동으로 삽입하고 리터럴을 들여쓸 의도를 제공합니다(기여자 Toshiaki Kameyama의 기여로 가능해졌습니다). 이는 여러 줄 문자열을 붙여넣을 때 유용합니다.
IntelliJ IDEA 플러그인의 기타 개선 사항
- kotlinx.coroutines에 도움이 되는 몇 가지 새로운 검사와 의도 – 이들은 사용되지 않은 Deferred 및 async 결과를 감지하며 async(ctx) { }.await()를 withContext(ctx) { }로 변환합니다.
- 줄 끝 주석을 블록 주석으로 변환하거나 그 반대로 변환하는 의도.
- 많은 버그 수정, 안정성 개선 및 성능 최적화.
빠른 Gradle 빌드
Kotlin 1.2.50부터 Kotlin은 다중 모듈 Android 프로젝트의 모듈 간 변경 사항을 점진적으로 추적합니다. 이로 인해 다중 종속 모듈을 가진 큰 Android 프로젝트의 증분 빌드가 상당히 빨라집니다.
컴파일러의 변경 사항
Kotlin 1.2.50 업데이트는 컴파일러의 알려진 문제를 많이 해결하고 성능 및 안정성을 개선하며 다음에 나열된 새로운 기능을 추가합니다.
진화하는 컴파일러 모드
Kotlin 컴파일러에서 발견되는 대부분의 버그와 일관성 부족점은 가능한 빠르게 수정되지만, 이러한 수정 사항 중 일부는 잠재적으로 역방향 호환성이 없을 수 있습니다. Kotlin 호환성 정책에 따라 이러한 수정 사항은 주요 릴리스(1.1 및 1.2와 같은)에서만 소개하며 긴 마이그레이션 주기를 거치도록 되어 있습니다. 그러나 우리는 많은 사용자가 이러한 버그 수정이 더 빠르게 제공되어 코드를 더 안전하고 깨끗하게 만들 수 있을 것으로 믿습니다.
이번 릴리스에서는 정기적으로 최신 버전의 Kotlin 컴파일러와 도구로 업데이트하는 활발히 개발 중인 코드베이스를 위한 실험적인 진화하는 컴파일러 모드를 소개합니다. 이 모드에서는 불안정한 코드의 일부에 대한 일부 버전 및 버그 수정이 즉시 적용됩니다. 따라서 모드를 활성화하거나 향후 버전의 Kotlin을 업데이트할 때 진보적인 모드를 활성화한 상태로 유지하는 경우 일부 코드가 중단될 수 있습니다.
진보적인 모드에서 활성화되는 수정 사항은 코드베이스의 많은 위치에 영향을 주지는 않을 것이지만, 무음으로 작동하지는 않으며 유지 관리자가 잘못된 코드 조각을 수정해야 합니다. 우리는 가능한 경우 IDE 플러그인에서 자동 마이그레이션 도구를 제공할 예정입니다. 이렇게 수정된 코드는 진보적인 모드 외에도 유효하게 유지됩니다. 진보적인 모드에 적용된 수정 사례 예시는 KT-9580, KT-16681 또는 KT-17981을 참조하십시오.
진보적인 모드를 모듈 단위로 활성화하려면 Kotlin 컴파일러에 전달되는 인수에 -Xprogressive 플래그를 추가하면 됩니다.
@JvmDefault 바이너리 호환성 모드
@JvmDefault를 사용하여 JVM 인터페이스에 대한 기본 메서드를 생성하는 실험적인 지원이 일반적인 Kotlin 인터페이스의 기본 메서드와 바이너리 호환되도록 업데이트되었습니다. 이 모드로 전환하려면 컴파일러 플래그 -Xjvm-default=compatibility를 사용하면 됩니다.
또한 Kotlin 1.2.40에서 도입된 컴파일러 플래그 -Xenable-jvm-default은 더 이상 지원되지 않습니다. 대신 -Xjvm-default=enable을 사용하십시오.
인수 파일
Kotlin 1.2.50은 커맨드 라인 옵션 -Xargfile=args.txt로 인수 파일을 전달할 수 있도록 지원합니다. 이는 인수의 긴 파일 시스템 경로를 사용하여 커맨드 라인 컴파일러를 호출하는 데 도움이 됩니다.
업데이트 방법
IntelliJ IDEA 또는 Android Studio 플러그인을 업데이트하려면 Tools | Kotlin | Configure Kotlin Plugin Updates를 사용하고 'Check for updates now' 버튼을 클릭하십시오. Eclipse IDE 플러그인은 Eclipse Marketplace (Help | Eclipse Marketplace)에서 설치 또는 업데이트할 수 있습니다. 또한 Maven 및 Gradle 빌드 스크립트에서 컴파일러 및 표준 라이브러리 버전을 업데이트하는 것을 잊지 마십시오.
이번 새로운 릴리스에 문제가 발생하면 포럼이나 Slack (여기에서 초대 받을 수 있음), 이슈 트래커에서 도움을 요청하거나 문제를 신고해 주십시오.
코틀린을 함께 하세요!
원문
https://blog.jetbrains.com/kotlin/2018/06/kotlin-1-2-50-is-out/
댓글