2017년 8월 9일
코틀린 1.2의 두 번째 중간 릴리스를 발표하게 되어 기쁩니다. 이번 릴리스의 주요 초점은 코틀린 컴파일러 및 도구의 안정성과 버그 수정, 코틀린 표준 라이브러리의 개선에 관련되어 있습니다. 또한 다가오는 코틀린 1.1.4 릴리스에서 사용 가능한 많은 도구 기능을 포함하고 있습니다.
이 릴리스에서 새로운 기능이나 발생할 수 있는 문제에 대한 피드백을 감사히 받고 있습니다.
1.2 M1부터의 완전한 변경 로그는 여기에서 확인하실 수 있으며, 몇 가지 주요 변경 사항은 아래에 나와 있습니다.
컴파일러
파괴적 변경: Java 기본 메서드 호출'
지금까지 JVM 1.6을 대상으로 하는 코틀린 인터페이스 멤버가 Java 기본 메서드를 오버라이드하는 경우, 슈퍼 호출에 대해 경고가 발생했습니다: JVM 대상 1.6에서 Java 기본 메서드에 대한 슈퍼 호출은 사용이 중지되었습니다. '-jvm-target 1.8'로 다시 컴파일하세요. 1.2-M2 릴리스에서는 이 경고를 오류로 바꾸어 해당 코드를 -jvm-target 1.8 옵션으로 컴파일하도록 요구하게 되었습니다.
표준 라이브러리
개정된 windowed/pairwise 연산
이전 마일스톤 1.2-M1에서 미리보기로 출시된 chunked/windowed/pairwise 함수 KEEP-11에 대한 피드백을 수렴하였고, 이를 기반으로 다음과 같이 일부 변경사항이 이루어졌습니다:
- windowed 함수는 이제 step 매개변수가 기본값 1로 설정됩니다.
또한 추가적인 선택적 매개변수 partialWindows를 가져왔으며, 이는 끝 부분의 불완전한 창을 어떻게 처리할지를 제어합니다. 기본값은 false로, 불완전한 창이 삭제됩니다. - pairwise 함수 이름은 너무 혼란스러웠으며, 어떻게 요소를 짝지어주는지 불분명했습니다. 이제 zipWithNext로 변경되어 각 요소가 컬렉션의 다음 요소와 짝지어진다는 것이 더 명확해졌습니다.
표준 라이브러리에서 공통 수학 연산
오랫동안 표준 라이브러리에서 수학 연산을 지원하는 요청이 있었습니다(KT-4900). 이전에는 JVM 플랫폼에서는 java.lang.Math 클래스의 수학 함수와 상수를 사용해야 했으며, JS 플랫폼에서는 네이티브 JS 수학 함수를 Kotlin 코드에 노출시키는 kotlin.js.Math를 사용해야 했습니다.
하지만 이제 kotlin.math 패키지에서 다음과 같은 API 그룹을 도입하고 있습니다:
- 상수: `PI`와 `E`;
- 삼각 함수: `cos`, `sin`, `tan` 및 그들의 역함수: `acos`, `asin`, `atan`, `atan2`;
- 쌍곡선 함수: `cosh`, `sinh`, `tanh`;
- 지수 함수: `pow` (확장 함수), `sqrt`, `hypot`, `exp`, `expm1`;
- 로그 함수: `log`, `log2`, `log10`, `ln`, `ln1p`;
- 반올림 함수:
- `ceil`, `floor`, `truncate`, `round` (반올림 모드) 함수;
- `roundToInt`, `roundToLong` (정수 반올림 모드) 확장 함수;
- 부호 및 절대값:
- `abs` 및 `sign` 함수;
- `absoluteValue` 및 `sign` 확장 속성;
- `withSign` 확장 함수;
- 두 값 중 최대 및 최소 값;
- 이진 표현:
- `ulp` 확장 속성;
- `nextUp`, `nextDown`, `nextTowards` 확장 함수;
- `toBits`, `toRawBits`, `Double.fromBits` (이들은 `kotlin` 패키지에 있음).
이 같은 함수 집합(상수 제외)은 Float 인수에 대해서도 사용 가능합니다.
이러한 함수 대부분(이진 표현 그룹 제외)은 JS에서도 사용 가능하여 양쪽 플랫폼에 대해 동일한 계산을 작성하는 문제를 해결합니다.
사전 릴리스 노트
다른 마일스톤 릴리스와 마찬가지로, 1.2 마일스톤 릴리스에서는 새로운 언어 및 라이브러리 기능에 대한 역호환성 보증이 제공되지 않습니다. 1.2 마일스톤 릴리스의 새로운 기능은 최종 1.2 릴리스 이전에 변경될 수 있습니다. 최종 RC에 도달하면 사전 릴리스 버전으로 생성된 모든 이진 파일이 컴파일러에 의해 금지될 것입니다: 1.2-Mx로 컴파일된 모든 코드를 다시 컴파일해야 합니다.
그러나 1.1.x 및 이전 릴리스로
컴파일된 모든 코드는 다시 컴파일하지 않고도 완벽하게 작동합니다.
시험해보는 방법
Maven/Gradle에서: 빌드 스크립트 및 프로젝트에 http://dl.bintray.com/kotlin/kotlin-eap-1.2를 저장소로 추가하고, 컴파일러 플러그인 및 표준 라이브러리의 버전 번호로 1.2-M2를 사용하세요.
IntelliJ IDEA에서: Tools → Kotlin → Configure Kotlin Plugin Updates로 이동한 다음, Update channel 드롭다운 목록에서 "Early Access Preview 1.2"를 선택한 후 업데이트를 확인하세요.
커맨드라인 컴파일러는 Github 릴리스 페이지에서 다운로드할 수 있습니다.
try.kotlinlang.org에서: 오른쪽 아래 모서리의 드롭다운 목록을 사용하여 컴파일러 버전을 1.2-M2로 변경하세요 (곧 출시됨).
원문
https://blog.jetbrains.com/kotlin/2017/08/kotlin-1-2-m2-is-out/
'Kotlin > Release Notes' 카테고리의 다른 글
[Kotlin Release Notes] Kotlin 1.1.50 is out (0) | 2023.09.04 |
---|---|
[Kotlin Release Notes] Kotlin 1.1.4 is out (0) | 2023.09.04 |
[Kotlin Release Notes] Early access program for Kotlin 1.2 has been started (0) | 2023.09.04 |
[Kotlin Release Notes] Kotlin 1.1.3 is out (0) | 2023.09.04 |
[Kotlin Release Notes] Kotlin/Native v0.3 is out (0) | 2023.09.04 |
댓글