*1ed23d7c54- (tag: build-1.3.70-dev-2158) IR: reorganize IrProvider handling (18 hours ago) <Georgy Bronnikov> *be04912f6f- (tag: build-1.3.70-dev-2155) KT-19574 Code with inferred default parameters and parameter vs property name clashes (#2671) (19 hours ago) <Toshiaki Kameyama> *1bbd17c4d6- Turn off FUS data sending in 1.3.61+ as we as we sent enough in 1.3.60 (20 hours ago) <Anton Yalyshev> *e38fdae1bc- (tag: build-1.3.70-dev-2154) Regenerate `DiagnosticsTestWithJsStdLibGenerated` (20 hours ago) <Dmitriy Novozhilov> *5190ff9733- [FIR-TEST] Add test with SAM conversion in constructor call (20 hours ago) <Dmitriy Novozhilov> *71acd42727- [FIR-TEST] Add test with ambiguity produced by definitely not null types (20 hours ago) <Dmitriy Novozhilov> *fa2ef816b1- Support Gradle instant execution with Kotlin/JVM and Android tasks (20 hours ago) <Sergey Igushkin> *d59a171b65- (tag: build-1.3.70-dev-2150) [FIR] Fix isMyTypeVariable in ConeInferenceContext (21 hours ago) <Simon Ogorodnik> *ffa0896592- (tag: build-1.3.70-dev-2146) Minor correction of attributes naming (21 hours ago) <Anton Yalyshev> *c57c9b2e63- Prepare data for successful FUS Whitelist parsing (21 hours ago) <Anton Yalyshev> *c72622c6d7- (tag: build-1.3.70-dev-2142) KT-32551 New J2K: Non-canonical modifiers order inspection is not applied during convertion of inner super class (#2806) (22 hours ago) <Toshiaki Kameyama> *dbacae94d0- (tag: build-1.3.70-dev-2138) Fix common super type calculation for captured dynamic types ^KT-32499 Fixed (22 hours ago) <victor.petukhov> *1c4c5520a2- Fix incremental analysis in case of property does not have initializer but could be initialized on a class level (23 hours ago) <Vladimir Dolzhenko> *c67222c176- Add ERRORs check to AbstractOutOfBlockModificationTest (23 hours ago) <Vladimir Dolzhenko> *144f721a44- Kotlinify AbstractOutOfBlockModificationTest, p2 (23 hours ago) <Vladimir Dolzhenko> *8f8ed4dbcf- Kotlinify AbstractOutOfBlockModificationTest, p1 (23 hours ago) <Vladimir Dolzhenko> *567248ebd7- (tag: build-1.3.70-dev-2136) [FIR] Add default upper bounds to type parameter of synthetic when and try calls (23 hours ago) <Dmitriy Novozhilov> *5770d19d61- [FIR] Fix calculating of completion mode (23 hours ago) <Dmitriy Novozhilov> *9c3117ba40- [FIR] Git rid of creating new when and try fir nodes (23 hours ago) <Dmitriy Novozhilov> *8085ec8b0b- [FIR-TEST] Add test with ambiguity between java field and java accessor (23 hours ago) <Dmitriy Novozhilov> *3c661dd142- [FIR-TEST] Add test with unresolved invoke of lambda with receiver (23 hours ago) <Dmitriy Novozhilov> *96d3a06129- [FIR-TEST] Add test with hiding local functions (23 hours ago) <Dmitriy Novozhilov> *5d14c76f70- [FIR-TEST] Add test with unresolved `Array<T>.clone()` (23 hours ago) <Dmitriy Novozhilov> *4059fae1b7- [FIR-TEST] Add test with type mismatch on receiver with captured type (23 hours ago) <Dmitriy Novozhilov> *572256e2eb- [FIR-TEST] Add test with not-working bound smartcast (23 hours ago) <Dmitriy Novozhilov> *1a2e09e6a5- (tag: build-1.3.70-dev-2121) ForLoopsLowering: Handle Iterable.withIndex() where the type is a bounded type parameter. (25 hours ago) <Mark Punzalan> *e8252ea874- (tag: build-1.3.70-dev-2118) handle kotlin shifts like bitwise binary ops (26 hours ago) <Kevin Bierhoff> *a9baec4727- Add headless mode for tests to avoid graphic card switch (26 hours ago) <Nikolay Krasko> *54338686d4- Add test for lambda parameter type (26 hours ago) <Nikolay Krasko> *eb71e686da- Stable order of generated annotation targets (26 hours ago) <Nikolay Krasko> *592df477e9- Mute MultiModuleHighlightingTest tests (26 hours ago) <Nikolay Krasko> *00a70c51f0- (tag: build-1.3.70-dev-2115) FIR: Generate fake overrides always if there are type parameters (27 hours ago) <Denis Zharkov> *8efd59403d- FIR: Avoid redundant substitution when type parameters don't change (27 hours ago) <Denis Zharkov> *07a4352809- FIR: Add hack for Fir2IrVisitor (27 hours ago) <Denis Zharkov> *3b7ad066fc- FIR: Substitute type alias constructors properly (27 hours ago) <Denis Zharkov> *f68929fe74- FIR: Leave functions type parameters in subsituting scope (27 hours ago) <Denis Zharkov> *b5ef063b0f- FIR: Cache functions in use-site member scope (27 hours ago) <Denis Zharkov> *f659dc0bea- FIR: Add synthetic values/valueOf methods to Java classes (27 hours ago) <Denis Zharkov> *256f5ca0a1- FIR: Support inherited default parameters (27 hours ago) <Denis Zharkov> *c9cb4dff52- (tag: build-1.3.70-dev-2114) Scripting: introduce ide-specific comparision of script compilation configurations (KT-34626) (27 hours ago) <Natalia Selezneva> *07b6dadbf0- Scripting: move additional classpath to the end of script classpath (KT-34626) (27 hours ago) <Natalia Selezneva> *72e99b5863- Scripting: avoid just in case configuration requests to Gradle (KT-34442) (27 hours ago) <Natalia Selezneva> *f27e13035a- Minor: introduce helper method to check registry option (27 hours ago) <Natalia Selezneva> *7ade2ec576- Scripting: configurations from gradle import should be always taken into account (KT-34442) (27 hours ago) <Natalia Selezneva> *2f1915d85e- Scripting: check that kotlin dsl models are provided during import as soon as possible (27 hours ago) <Natalia Selezneva>
Kotlin/Native
Kotlin/Native is an LLVM backend for the Kotlin compiler, runtime implementation, and native code generation facility using the LLVM toolchain.
Kotlin/Native is primarily designed to allow compilation for platforms where virtual machines are not desirable or possible (such as iOS or embedded targets), or where a developer is willing to produce a reasonably-sized self-contained program without the need to ship an additional execution runtime.
Prerequisites:
- install JDK for your platform, instead of JRE. The build requires
tools.jar, which is not included in JRE; - on macOS install Xcode 11
- on Fedora 26+
yum install ncurses-compat-libsmay be needed - on recent Ubuntu
apt install libncurses5is needed
To compile from sources use following steps:
First, download dependencies:
./gradlew dependencies:update
Then, build the compiler and libraries:
./gradlew bundle
To build with experimental targets support compile with -Porg.jetbrains.kotlin.native.experimentalTargets.
The build can take about an hour on a Macbook Pro. To run a shorter build with only the host compiler and libraries, run:
./gradlew dist distPlatformLibs
To include Kotlin compiler in composite build and build
against it, use the kotlinProjectPath project property:
./gradlew dist -PkotlinProjectPath=path/to/kotlin/project
It's possible to include in a composite build both Kotlin compiler and Kotlin/Native Shared simultaneously.
After that, you should be able to compile your programs like this:
export PATH=./dist/bin:$PATH
kotlinc hello.kt -o hello
For an optimized compilation, use -opt:
kotlinc hello.kt -o hello -opt
For tests, use:
./gradlew backend.native:tests:run
To generate interoperability stubs, create a library definition file
(refer to samples/tetris/.../sdl.def), and run the cinterop tool like this:
cinterop -def lib.def
See the provided samples and INTEROP.md for more details.
The Interop tool generates a library in the .klib library format. See LIBRARIES.md
for more details on this file format.