*2639ed2c48- (tag: build-1.3.70-dev-2841, origin/1.3.70) Fix invalid equality for UL methods (14 hours ago) <Igor Yakovlev> *d6fcde7316- (tag: build-1.3.70-dev-2837) JS_IR: fix typecheck corner case (20 hours ago) <Anton Bannykh> *9a971172c9- (tag: build-1.3.70-dev-2835) JS: fix object expression constructor delegation to secondary constructors with default arguments (KT-30517 fixed) (23 hours ago) <Anton Bannykh> *419d414681- (tag: build-1.3.70-dev-2833) NI: Update FIR test data after07269661b4(2 days ago) <Victor Petukhov> *92c2cfa968- (tag: build-1.3.70-dev-2824) JVM_IR: handle property references at class level (3 days ago) <Georgy Bronnikov> *8d303af395- (tag: build-1.3.70-dev-2818) Build: Add build scan server url setting (3 days ago) <Vyacheslav Gerasimov> *724884513e- Build: Extract build cache setup to kotlin-build-gradle-plugin (3 days ago) <Vyacheslav Gerasimov> *68ce5dbd90- Build: Use property for disabling/enabling local build cache (3 days ago) <Vyacheslav Gerasimov> *bfcac5b091- Build: Update kotlin-build-gradle-plugin to 0.0.4 (3 days ago) <Vyacheslav Gerasimov> *283933ace5- Build: Add localBuildCacheEnabled property (3 days ago) <Vyacheslav Gerasimov> *729b4d33cf- Build: Replace deprecated `compile` configuration with `implementation` in build script of buildSrc (3 days ago) <Vyacheslav Gerasimov> *85dcc65695- Build: Use kotlin-build-gradle-plugin in build script of buildSrc (3 days ago) <Vyacheslav Gerasimov> *c9cba34d67- (tag: build-1.3.70-dev-2807) KT-35454 Weird implementation of KtUltraLightFieldImpl.isEquivalentTo (3 days ago) <Alexander Shustanov> *f45c11c6f2- (tag: build-1.3.70-dev-2802) Use constantSdkDependencyIfAny in getKeyForSdk as well (3 days ago) <Dmitry Savvinov> *5b8be16f13- (tag: build-1.3.70-dev-2796, tag: build-1.3.70-dev-2787) Kotlin/Native IDE plugin clean-up (3 days ago) <Dmitriy Dolovov> <*36ed29d4d5- Convert KotlinNativeMetaBinary from Java to Kotlin (3 days ago) <Dmitriy Dolovov> *511a4089ca- Kotlin/Native IDE plugin clean-up (3 days ago) <Dmitriy Dolovov> *992a702762- Minor: organized imports (3 days ago) <Dmitriy Dolovov> *deb4025987- Fix: Use more precise KLIB compatibility check (by metadata version) (3 days ago) <Dmitriy Dolovov> *34e1ab4e7a- (tag: build-1.3.70-dev-2783) FIR: Leave single implementation of ConeInferenceContext (3 days ago) <Denis Zharkov> *28f4d62ccf- FIR: Add different extension for FirSession.inferenceContext (3 days ago) <Denis Zharkov> *b33d0c2594- Minor. Reformat ConeInferenceContext (3 days ago) <Denis Zharkov> *0baf1e8fa7- Minor. Get rid of UniversalConeInferenceContext (3 days ago) <Denis Zharkov> *bbc9927bce- Minor. Get rid of DataFlowInferenceContext (3 days ago) <Denis Zharkov> *0064429339- Avoid using TypeSystemInferenceExtensionContextDelegate in FIR (3 days ago) <Denis Zharkov> *25fdbdfecb- (tag: build-1.3.70-dev-2776) NI: Update FIR test data (3 days ago) <victor.petukhov> *a19f8ffe6a- (tag: build-1.3.70-dev-2771) Revert "Debugger: Add IR-powered ranking tests" (3 days ago) <Yan Zhulanow> *1534e2b76d- (tag: build-1.3.70-dev-2765) NI: Actualize FIR test after2d5a05466d(4 days ago) <Victor Petukhov> *07269661b4- (tag: build-1.3.70-dev-2764) NI: Allow to resolve to functions with SAM conversion and passing array without spread as vararg (with warning) ^KT-35224 Fixed (4 days ago) <Victor Petukhov> *fe875d628d- (tag: build-1.3.70-dev-2761, tag: build-1.3.70-dev-2759) Revert "[FIR] Fix outputs for logs of modularized test" (4 days ago) <Simon Ogorodnik> *60cc9fa6f5- (tag: build-1.3.70-dev-2757) Revert "[FIR] Fix outputs for logs of modularized test" (4 days ago) <Simon Ogorodnik> *71cb65c064- (tag: build-1.3.70-dev-2750) NI: Add flexible Nothing to trivial constraints to filter it (4 days ago) <victor.petukhov> *2d5a05466d- NI: Fix some unwanted exclusions constraints with remained corresponding optimization (4 days ago) <victor.petukhov> *15f6beed57- (tag: build-1.3.70-dev-2749) Fix Compose extension points in compiler.xml (4 days ago) <Juan Chen> *b95e7dfb6f- (tag: build-1.3.70-dev-2747) Don't mark super call to method from any as interface one (4 days ago) <Mikhael Bogdanov>
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.