본문 바로가기
Kotlin/Release Notes

[Kotlin Release Notes] Kotlin/Native v0.2 is out

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

2017년 5월 12일

 

Kotlin/Native v0.2의 릴리스를 기쁘게 발표합니다. 이것은 Kotlin/Native Technology Preview의 기능 및 버그 수정 업데이트입니다. 이 업데이트는 코루틴 및 교차 모듈 인라인 함수 지원을 추가하며, 전반적으로 버그 수정 및 개선 사항도 포함하고 있습니다.

이 릴리스에는 동시에 블로킹 I/O에 코루틴을 사용하는 방법을 보여주는 예제, GTK를 사용한 GUI 응용 프로그램, Julius Kunze가 기여한 TensorFlow 기계 학습 프레임워크 클라이언트 등이 포함되어 있습니다.

예를 들어 다음과 같은 간단한 코드로

 

var connectionId = 0
acceptClientsAndRun(listenFd) {
  memScoped {
    val bufferLength = 100L
    val buffer = allocArray<ByteVar>(bufferLength)
    val connectionIdString = "#${++connectionId}: ".cstr
    val connectionIdBytes = connectionIdString.getPointer(this)
    try {
      while (true) {
        val length = read(buffer, bufferLength)
        if (length == 0L) break
        write(connectionIdBytes, connectionIdString.size.toLong())
        write(buffer, length)
      }
    } catch (e: IOException) {
      println("I/O error occurred: ${e.message}")
    }
  }
}

 

코루틴을 사용하여 여러 동시 소켓 I/O를 처리하고 각 클라이언트를 개별적으로 및 동시에 제공할 수 있습니다.

또한 이벤트 리스너를 가진 GTK 버튼을 만들려면 단순히 다음과 같이 하면 됩니다:

 

 val button = gtk_button_new_with_label("Click me!")!!
 g_signal_connect(button, "clicked",
   staticCFunction { _: CPointer<GtkWidget>?, _: gpointer? -> println("Hi from Kotlin") }
)

 

따라서 v0.2 릴리스를 통해 Kotlin으로 작성된 작은 크기의 네이티브 응용 프로그램을 완전히 기능적으로 만들 수 있습니다.

컴파일 및 실행 시간 성능이 크게 개선되었으며, 배포 가능한 크기도 감소했습니다.

이 릴리스의 모든 변경 사항의 전체 목록은 릴리스 노트에서 확인할 수 있습니다.

Linux 및 MacOS 호스트용 사전 빌드된 이진 파일이 제공됩니다.

 

원문

 

https://blog.jetbrains.com/kotlin/2017/05/kotlinnative-v0-2-is-out/

반응형

댓글