Tuning the wording of README (#398)
This commit is contained in:
committed by
Nikolay Igotti
parent
a3becd24ec
commit
0b7aff3d11
+28
-27
@@ -3,20 +3,20 @@
|
|||||||
## Introduction ##
|
## Introduction ##
|
||||||
|
|
||||||
Kotlin Native backend, codenamed _Kotlin N_, is a LLVM backend for the Kotlin
|
Kotlin Native backend, codenamed _Kotlin N_, is a LLVM backend for the Kotlin
|
||||||
compiler, runtime implementation and native code generation facility
|
compiler. It consists of a native code generation facility using the LLVM toolchain
|
||||||
using LLVM toolchain.
|
and a native runtime implementation.
|
||||||
|
|
||||||
_Kotlin N_ is primarily designed to allow compilation for platforms where
|
_Kotlin N_ is primarily designed to allow compilation for platforms where
|
||||||
virtual machines are not desirable or possible (such as iOS, embedded targets),
|
virtual machines are not desirable or possible (such as iOS, embedded targets),
|
||||||
or where developer is willing to produce reasonably-sized self-contained program
|
or where the developer needs to produce a reasonably-sized self-contained program
|
||||||
without need to ship an additional execution runtime.
|
that doesn't require an additional execution runtime.
|
||||||
|
|
||||||
## Supported platforms ##
|
## Supported platforms ##
|
||||||
|
|
||||||
_Kotlin N_ compiler produces mostly portable (modulo pointer size and target
|
_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.
|
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
|
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
|
target platforms. Currently _Kotlin N_ is being shipped and tested with support for
|
||||||
the following platforms:
|
the following platforms:
|
||||||
@@ -27,58 +27,59 @@ the following platforms:
|
|||||||
* Raspberry Pi, cross-compiled on Linux host (`-target raspberrypi`)
|
* 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.
|
is available.
|
||||||
|
|
||||||
## Compatibility and features ##
|
## 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).
|
However, there are certain limitations, see section [Known Limitations](#limitations).
|
||||||
|
|
||||||
Currently _Kotlin N_ uses reference counting based memory management scheme with cycles
|
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.
|
between threads are allowed.
|
||||||
|
|
||||||
_Kotlin N_ provides efficient interoperability with libraries written in C, including
|
_Kotlin N_ provides efficient interoperability with libraries written in C, and supports
|
||||||
automated bindings generation. See samples coming with distributable.
|
automatic generation of Kotlin bindings from a C header file.
|
||||||
|
See samples coming with the distribution.
|
||||||
|
|
||||||
## Getting Started ##
|
## 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 <some_file>.kt <dir_with_kt_files> -o <executable>.kexe
|
bin/kotlinc <some_file>.kt <dir_with_kt_files> -o <executable>.kexe
|
||||||
|
|
||||||
During the first run it will download all the external dependencies, such as LLVM.
|
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.
|
||||||
|
|
||||||
## <a name="limitations"></a>Known limitations ##
|
## <a name="limitations"></a>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.
|
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.
|
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.
|
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
|
Due to significant difference in exception handling model on MS Windows and
|
||||||
other LLVM targets, current _Kotlin N_ may not produce executables working on
|
other LLVM targets, current _Kotlin N_ may not produce executables working on
|
||||||
MS Windows. This situation could be improved in upcoming releases.
|
MS Windows. This situation could be improved in upcoming releases.
|
||||||
|
|||||||
Reference in New Issue
Block a user