From 0b7aff3d115bcdc46377b8939c7cf9d7e3eca9a4 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 29 Mar 2017 12:16:58 +0200 Subject: [PATCH] Tuning the wording of README (#398) --- RELEASE_NOTES.md | 55 ++++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 5ad47781256..98b69257887 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -3,20 +3,20 @@ ## Introduction ## Kotlin Native backend, codenamed _Kotlin N_, is a LLVM backend for the Kotlin -compiler, runtime implementation and native code generation facility -using LLVM toolchain. +compiler. It consists of a native code generation facility using the LLVM toolchain +and a native runtime implementation. _Kotlin N_ is primarily designed to allow compilation for platforms where virtual machines are not desirable or possible (such as iOS, embedded targets), -or where developer is willing to produce reasonably-sized self-contained program -without need to ship an additional execution runtime. +or where the developer needs to produce a reasonably-sized self-contained program +that doesn't require an additional execution runtime. ## Supported platforms ## _Kotlin N_ compiler produces mostly portable (modulo pointer size and target -triplet) LLVM bitcode, and as such is easily portable, as long as there's LLVM +triplet) LLVM bitcode, and as such can easily support any platform, as long as there's a LLVM codegenerator for the platform. - However, as actual producing of the native code requires platform linker and some + However, as actual producing of the native code requires a platform linker and some basic runtime shipped with the translator, we only support a subset of all possible target platforms. Currently _Kotlin N_ is being shipped and tested with support for the following platforms: @@ -27,58 +27,59 @@ the following platforms: * Raspberry Pi, cross-compiled on Linux host (`-target raspberrypi`) - Adding support for other target platforms shalln't be too hard, if LLVM support + Adding support for other target platforms shouldn't be too hard, if LLVM support is available. ## Compatibility and features ## - Language and library version supported by this EAP release mostly match Kotlin 1.1. +The language and library version supported by this EAP release mostly match Kotlin 1.1. However, there are certain limitations, see section [Known Limitations](#limitations). Currently _Kotlin N_ uses reference counting based memory management scheme with cycles -garbage collection algorithm. Multiple threads could be used, but no shared objects +garbage collection algorithm. Multiple threads could be used, but no objects shared between threads are allowed. - _Kotlin N_ provides efficient interoperability with libraries written in C, including - automated bindings generation. See samples coming with distributable. +_Kotlin N_ provides efficient interoperability with libraries written in C, and supports +automatic generation of Kotlin bindings from a C header file. +See samples coming with the distribution. ## Getting Started ## - Download Kotlin N redistributable and unpack it. You can run command line compiler with + Download Kotlin N distribution and unpack it. You can run command line compiler with bin/kotlinc .kt -o .kexe During the first run it will download all the external dependencies, such as LLVM. - One may use `'-h'` flag to `kotlinc` to see available flags. +To see the list of available flags, run `kotlinc -h`. - For documentation on C interoperability stubs see INTEROP.md. +For documentation on C interoperability stubs see INTEROP.md. - ## Known limitations ## + ## Known limitations ## - ### Performance ### + ### Performance ### - *** DO NOT USE THIS PREVIEW RELEASE FOR ANY PERFORMANCE ANALYSIS *** + *** DO NOT USE THIS PREVIEW RELEASE FOR ANY PERFORMANCE ANALYSIS *** - This is purely technology preview of Kotlin N technology, and is not yet tuned + This is purely a technology preview of Kotlin N technology, and is not yet tuned for benchmarking and competitive analysis of any kind. - ### Standard Library ### +### Standard Library ### - Standard library in Kotlin N is known to be incomplete and doesn't include + The standard library in Kotlin N is known to be incomplete and doesn't include certain methods available in standard library of Kotlin. - ### Coroutines ### +### Coroutines ### - Coroutines are not yet supported with this release. +Coroutines are not yet supported with this release. - ### Reflection ### +### Reflection ### - Full reflection and class object references are not implemented. +Full reflection and class object references are not implemented. Notice that property delegation (including lazy properties) *does* work. - ### Microsoft Windows support ### +### Microsoft Windows support ### Due to significant difference in exception handling model on MS Windows and - other LLVM targets, current _Kotlin N_ may not produce executables working on - MS Windows. This situation could be improved in upcoming releases. +other LLVM targets, current _Kotlin N_ may not produce executables working on +MS Windows. This situation could be improved in upcoming releases.