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 ##
|
||||
|
||||
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 <some_file>.kt <dir_with_kt_files> -o <executable>.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.
|
||||
|
||||
## <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.
|
||||
|
||||
### 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.
|
||||
|
||||
Reference in New Issue
Block a user