본문 바로가기
Kotlin/Release Notes

[Kotlin Release Notes] Kotlin 1.2.70 is Out!

by 노력남자 2023. 9. 6.
반응형

2018년 9월 13일

 

Kotlin 1.2.70의 릴리스를 기쁜 마음으로 알려드립니다. 이것은 Kotlin 1.2의 새로운 버그 수정과 도구 업데이트입니다. 이 릴리스는 다음과 같은 특징을 가지고 있습니다:

  • Kotlin/JS의 증분 컴파일을 크게 개선했습니다.
  • kotlin-stdlib-common 주석 중 일부를 @OptionalExpectation으로 표시했습니다.
  • 독립형 Kotlin 컴파일러를 위한 Excelsior JET로 빌드된 네이티브 바이너리를 포함합니다.
  • IntelliJ IDEA 플러그인에 새로운 리팩터링, 검사 및 의도를 추가했습니다.
  • 컴파일러와 IDE 플러그인에서 알려진 문제를 해결하고 성능을 향상했습니다.

 

이 업데이트는 IntelliJ IDEA 버전 2017.3에서 2018.3까지 모든 버전과 Android Studio 3.1, 3.2 RC 및 3.3 Canary와 호환됩니다.

이 릴리스에 포함된 외부 기여자들에게 감사의 말씀을 전합니다: Toshiaki Kameyama, Lucas Smaira, Raluca Sauciuc, Denis Vnukov, Jonathan Lermitage, Jake Wharton, gen, Takasy, Bloder, Artem Zinnatullin, Kenji Tomita, Nico Mandery 및 Juan Chen.

이 릴리스의 모든 변경 사항 목록은 변경 로그에서 확인할 수 있습니다. 주요 내용은 아래와 같습니다.


Kotlin/JS의 증분 컴파일 개선


Kotlin/JS의 증분 컴파일이 크게 개선되었습니다. 프로젝트 구조에 따라 개발 빌드를 최대 7배 이상 빠르게 할 수 있습니다. 또한, Kotlin/JS Gradle 빌드는 이제 교차 모듈 증분 컴파일을 지원합니다.

참고로 이 기능은 여전히 실험적이며 기본적으로 비활성화되어 있습니다. 이를 활성화하려면 다음과 같이 명시적으로 설정해야 합니다:

  • Gradle 프로젝트에서 gradle.properties 또는 local.properties에 kotlin.incremental.js=true를 추가합니다.
  • IntelliJ IDEA로 빌드된 프로젝트에서 설정으로 이동하여 "Enable incremental compilation (experimental)"을 선택합니다.
    Kotlin/JS 증분 컴파일에 문제가 있으면 피드백을 주시면 감사하겠습니다.


멀티플랫폼 프로젝트 업데이트


kotlin-stdlib-common에 플랫폼별 주석이 도입되었습니다. 이 주석들은 1.2.60에서 도입된 @OptionalExpectation 주석으로 표시되었습니다. 컴파일러는 이러한 주석을 가진 공통 선언을 컴파일하지 않습니다. 플랫폼 모듈에 해당하는 실제 주석 클래스가 없는 경우에만 무시됩니다.

예를 들어, 이것은 멀티플랫폼 프로젝트의 공통 코드에서 @JvmName과 같은 JVM 특정 주석을 사용하고 JavaScript로 컴파일하는 데 문제없이 사용할 수 있게 합니다.

이러한 주석은 @JsName, @JvmOverloads, @JvmStatic, @JvmName, @JvmMultifileClass, @JvmField, @JvmSuppressWildcards, @JvmWildcard, @Volatile, @Transient, @Strictfp, @Synchronized 등이 있습니다.


IntelliJ IDEA 지원 개선


컬렉션 함수 체인을 시퀀스로 변환하는 퀵 픽스를 제공하는 새로운 검사가 있습니다. 시퀀스를 사용하면 불필요한 임시 할당 오버헤드를 피하고 복잡한 처리 파이프라인의 성능을 크게 향상시킬 수 있습니다.

 


기타 IntelliJ IDEA 플러그인 개선 사항:

  • if null-check를 ?.let으로 대체하거나 그 반대로 대체하는 퀵 픽스를 위한 의도
  • 불필요한 with 호출을 감지하는 검사
  • 프로퍼티 게터를 초기화기로 변환하는 의도
  • assertTrue(a == b)를 assertEquals(a, b)로 대체하는 검사 및 퀵 픽스
  • "Redundant return label" 검사
  • 기본 매개변수 값 제거를 위한 퀵 픽스
  • "forEach parameter unused" 검사
  • 다양한 버그 수정 및 성능 개선

 

독립형 Kotlin 컴파일러 네이티브 바이너리


독립형 Kotlin 컴파일러의 JVM 버전 외에도 GitHub 릴리스에는 각 주요 플랫폼 (Linux, macOS 및 Windows)용 시스템 종속형 네이티브 버전이 포함되어 있습니다. 이러한 바이너리는 Excelsior JET AOT 컴파일러로 빌드되어 시작 시간이 빠르며 작은 파일 또는 스크립트를 빌드하는 데 적합합니다.

 

Excelsior JET 런타임은 kotlinc 래퍼 스크립트를 사용하여 -J로 전달할 수 있는 일부 JVM 및 특정 옵션을 지원합니다. 인식된 옵션은 Excelsior JET 문서에서 찾을 수 있습니다.

 

업데이트 방법


IntelliJ IDEA 또는 Android Studio 플러그인을 업데이트하려면 Tools | Kotlin | Configure Kotlin Plugin Updates를 사용하고 "지금 업데이트 확인" 버튼을 클릭합니다. Eclipse IDE 플러그인은 Eclipse Marketplace (도움말 | Eclipse Marketplace 및 Kotlin 플러그인 검색)을 통해 설치 또는 업데이트할 수 있습니다.

또한 Maven 및 Gradle 빌드 스크립트에서 컴파일러 및 표준 라이브러리 버전을 업데이트하는 것을 잊지 마세요.

프로젝트에서 새로운 릴리스로 문제가 발생하는 경우 포럼에서 도움을 요청하거나 Slack (여기에서 초대를 받으세요)을 통해 물어보거나 문제 트래커에 문제를 보고할 수 있습니다.

Kotlin을 사용해 보세요!

 

원문

 

https://blog.jetbrains.com/kotlin/2018/09/kotlin-1-2-70-is-out/

반응형

댓글