Make RELEASE_NOTES.md a bit less outdated

This commit is contained in:
SvyatoslavScherbina
2021-02-08 15:28:23 +03:00
committed by Vasily Levchenko
parent eedfea7f40
commit b3ec30b992
+24 -19
View File
@@ -25,15 +25,14 @@ the following platforms:
* Ubuntu Linux x86-64 (14.04, 16.04 and later), other Linux flavours may work as well, host and target * Ubuntu Linux x86-64 (14.04, 16.04 and later), other Linux flavours may work as well, host and target
(`-target linux_x64`, default on Linux hosts, hosted on Linux, Windows and macOS). (`-target linux_x64`, default on Linux hosts, hosted on Linux, Windows and macOS).
* Microsoft Windows x86-64 (tested on Windows 7 and Windows 10), host and target (`-target mingw_x64`, * Microsoft Windows x86-64 (tested on Windows 7 and Windows 10), host and target (`-target mingw_x64`,
default on Windows hosts). Experimental support is available on Linux and macOS hosts (requires Wine). default on Windows hosts).
* Microsoft Windows x86-32 cross-compiled target (`-target mingw_x86`), hosted on Windows. * Microsoft Windows x86-32 cross-compiled target (`-target mingw_x86`), hosted on Windows.
Experimental support is available on Linux and macOS hosts (requires Wine).
* Apple iOS (armv7 and arm64 devices, x86 simulator), cross-compiled target * Apple iOS (armv7 and arm64 devices, x86 simulator), cross-compiled target
(`-target ios_arm32|ios_arm64|ios_x64`), hosted on macOS. (`-target ios_arm32|ios_arm64|ios_x64`), hosted on macOS.
* Apple tvOS (arm64 devices, x86 simulator), cross-compiled target * Apple tvOS (arm64 devices, x86 simulator), cross-compiled target
(`-target tvos_arm64|tvos_x64`), hosted on macOS. (`-target tvos_arm64|tvos_x64`), hosted on macOS.
* Apple watchOS (arm32/arm64 devices, x86 simulator), cross-compiled target * Apple watchOS (arm32/arm64 devices, x86 simulator), cross-compiled target
(`-target watchos_arm32|watchos_arm64|watchos_x86`), hosted on macOS. (`-target watchos_arm32|watchos_arm64|watchos_x86|watchos_x64`), hosted on macOS.
* Linux arm32 hardfp, Raspberry Pi, cross-compiled target (`-target raspberrypi`), hosted on Linux, Windows and macOS * Linux arm32 hardfp, Raspberry Pi, cross-compiled target (`-target raspberrypi`), hosted on Linux, Windows and macOS
* Linux MIPS big endian, cross-compiled target (`-target mips`), hosted on Linux. * Linux MIPS big endian, cross-compiled target (`-target mips`), hosted on Linux.
* Linux MIPS little endian, cross-compiled target (`-target mipsel`), hosted on Linux. * Linux MIPS little endian, cross-compiled target (`-target mipsel`), hosted on Linux.
@@ -42,11 +41,8 @@ the following platforms:
* WebAssembly (`-target wasm32`) target, hosted on Linux, Windows or macOS. Webassembly support is experimental * WebAssembly (`-target wasm32`) target, hosted on Linux, Windows or macOS. Webassembly support is experimental
and could be discontinued in further releases. and could be discontinued in further releases.
* Experimental support for Zephyr RTOS (`-target zephyr_stm32f4_disco`) is available on macOS, Linux * Experimental support for Zephyr RTOS (`-target zephyr_stm32f4_disco`) is available on macOS, Linux
and Windows hosts. and Windows hosts. "Experimental" here also means that support for this target might be broken at the moment,
and UX might be disappointing.
To enable experimental targets Kotlin/Native must be recompiled with `org.jetbrains.kotlin.native.experimentalTargets` Gradle property set.
Adding support for other target platforms shouldn't be too hard, if LLVM support is available.
## Compatibility and features ## ## Compatibility and features ##
@@ -55,28 +51,37 @@ Produced programs are fully self-sufficient and do not need JVM or other runtime
On macOS it also requires Xcode 11.0 or newer to be installed. On macOS it also requires Xcode 11.0 or newer to be installed.
The language and library version supported by this release match Kotlin 1.4. The language and library version supported by this release match Kotlin 1.5.
However, there are certain limitations, see section [Known Limitations](#limitations). However, there are certain limitations, see section [Known Limitations](#limitations).
Currently _Kotlin/Native_ uses reference counting based memory management scheme with a cycle Currently _Kotlin/Native_ uses reference counting based memory management scheme with a cycle
collection algorithm. Multiple threads could be used, but objects must be explicitly transferred collection algorithm. Multiple threads could be used, but objects must be explicitly transferred
between threads, and same object couldn't be accessed by two threads concurrently. between threads, and same object couldn't be accessed by two threads concurrently unless it is frozen.
See the relevant [documentation](https://kotlinlang.org/docs/reference/native/concurrency.html).
We are going to lift these multithreading restrictions, which involves implementing a new memory manager.
More details are available in
["Kotlin/Native Memory Management Roadmap"](https://blog.jetbrains.com/kotlin/2020/07/kotlin-native-memory-management-roadmap/).
_Kotlin/Native_ provides efficient interoperability with libraries written in C or Objective-C, and supports _Kotlin/Native_ provides efficient bidirectional interoperability with C and Objective-C.
automatic generation of Kotlin bindings from a C/Objective-C header file. See the [samples](https://github.com/JetBrains/kotlin-native/tree/master/samples)
See the samples coming with the distribution. and the [tutorials](https://kotlinlang.org/docs/tutorials/).
## Getting Started ## ## Getting Started ##
Download _Kotlin/Native_ distribution and unpack it. You can run command line compiler with The most complete experience with Kotlin/Native can be achieved by using
[Gradle](https://kotlinlang.org/docs/tutorials/native/using-gradle.html),
[IntelliJ IDEA](https://kotlinlang.org/docs/tutorials/native/using-intellij-idea.html) or
[Android Studio with KMM plugin](https://kotlinlang.org/docs/mobile/create-first-app.html) if you target iOS.
bin/kotlinc <some_file>.kt <dir_with_kt_files> -o <program_name> If you are interested in using Kotlin/Native for iOS, then
[Kotlin Multiplatform Mobile portal](https://kotlinlang.org/lp/mobile/) might also be useful for you.
During the first run it will download all the external dependencies, such as LLVM. Command line compiler is also
[available](https://kotlinlang.org/docs/tutorials/native/using-command-line-compiler.html).
To see the list of available flags, run `kotlinc -h`. More information can be found in the overviews of
[Kotlin/Native](https://kotlinlang.org/docs/reference/native-overview.html)
For documentation on C interoperability stubs see [INTEROP.md](https://github.com/JetBrains/kotlin-native/blob/master/INTEROP.md). and [Kotlin Multiplatform](https://kotlinlang.org/docs/reference/multiplatform.html).
## <a name="limitations"></a>Known limitations ## ## <a name="limitations"></a>Known limitations ##