Release notes. (#316)
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
# Early Access Preview of Kotlin Native #
|
||||
|
||||
## 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.
|
||||
|
||||
_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.
|
||||
|
||||
## 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
|
||||
codegenerator for the platform.
|
||||
However, as actual producing of the native code requires 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:
|
||||
|
||||
* Mac OS X 10.10 and later (x86-64)
|
||||
* x86-64 Ubuntu Linux (14.04, 16.04 and later), other Linux flavours may work as well
|
||||
* Apple iOS (arm64 and simulator on x86-64)
|
||||
|
||||
Adding support for other target platforms shalln'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.
|
||||
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
|
||||
between threads are allowed.
|
||||
|
||||
_Kotlin N_ provides efficient interoperability with libraries written in C, including
|
||||
automated bindings generation. See samples coming with distributable.
|
||||
|
||||
## Getting Started ##
|
||||
|
||||
Download Kotlin N redistributable and unpack it. You can run command line compiler with
|
||||
|
||||
./dist/bin/kotlinnc <some_file>.kt <dir_with_kt_files> -o <executable>.kexe
|
||||
|
||||
One may use `'-h'` flag to `kotlinnc` to see available flags.
|
||||
|
||||
For documentation on C interoperability stubs see INTEROP.md.
|
||||
|
||||
## <a name="limitations"></a>Known limitations ##
|
||||
|
||||
### Performance ###
|
||||
|
||||
*** DO NOT USE THIS PREVIEW RELEASE FOR ANY PERFORMANCE ANALYSIS ***
|
||||
|
||||
This is purely technology preview of Kotlin N technology, and is not yet tuned
|
||||
for benchmarking and competitive analysis of any kind.
|
||||
|
||||
### Standard Library ###
|
||||
|
||||
Standard library in Kotlin N is known to be incomplete and doesn't include
|
||||
certain methods available in standard library of Kotlin.
|
||||
|
||||
### Coroutines ###
|
||||
|
||||
Coroutines are not yet supported with this release.
|
||||
|
||||
### Reflection ###
|
||||
|
||||
Full reflection and class object references are not implemented.
|
||||
Notice that property delegation (including lazy properties) *does* work.
|
||||
|
||||
### 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.
|
||||
Reference in New Issue
Block a user