*68ea677cc4- (tag: build-1.3.70-dev-1049) Import quick fix: support extension iterator function (25 hours ago) <Toshiaki Kameyama> *3abfe59d75- Deduplicate incompatible actual descriptors (25 hours ago) <Dmitry Savvinov> *9198b7a039- Add test on weakly incompatible actual in intermediate source-set (25 hours ago) <Dmitry Savvinov> *2c6fbb6ece- Fix dependsOn module names (25 hours ago) <Dmitry Savvinov> *b37dc32e03- Kotlin/Native performance gradle plugin (#2713) (25 hours ago) <LepilkinaElena> *7160653546- (tag: build-1.3.70-dev-1044) Fix KotlinConfidenceTest in 193 (25 hours ago) <Nikolay Krasko> *8d50aea471- Allow to use mutations from several files (25 hours ago) <Nikolay Krasko> *620898c73e- Use local single-thread cached value instead of thread locals (KT-28940) (26 hours ago) <Nikolay Krasko> *02f9b255e6- Clean using thread local in all threads (KT-28940) (26 hours ago) <Nikolay Krasko> *587b0de2b8- RemoveExplicitTypeIntention: fix false positive for type aliases #KT-33902 Fixed (26 hours ago) <Dmitry Gridin> *6ea82a0c7d- MoveMember: cleanup code (26 hours ago) <Dmitry Gridin> *18aa9ffce8- expectActualUtil: introduce `runCommandOnAllExpectAndActualDeclaration` function (26 hours ago) <Dmitry Gridin> *9aa49e61fe- expectActualUtil: add parameter `useOnSelf` to `runOnExpectAndAllActuals` (26 hours ago) <Dmitry Gridin> *4285f63bcc- ChangeVisibilityFix: cleanup code (26 hours ago) <Dmitry Gridin> *9c61f42121- ChangeVisibilityModifierIntention: should affect all actual/expect declarations #KT-29737 Fixed (26 hours ago) <Dmitry Gridin> *13e98e712e- RedundantLetInspection: fix false negative for references #KT-34603 Fixed (26 hours ago) <Dmitry Gridin> *5fc70f6cfd- RedundantLetInspection: fix false positive for inner lambda expression #KT-25271 Fixed (26 hours ago) <Dmitry Gridin> *5d16753285- ImportFix: add support for `WRONG_NUMBER_OF_TYPE_ARGUMENTS` #KT-23834 Fixed (26 hours ago) <Dmitry Gridin> *e14d589279- KotlinInternalInJavaInspection: fix false positive for java test module #KT-17659 Fixed (26 hours ago) <Dmitry Gridin> *865e1bf631- KotlinInternalInJavaInspection: cleanup code (26 hours ago) <Dmitry Gridin> *81f3a98f49- Convert `ConvertTwoComparisonsToRangeCheck` intention to inspection Relates to #KT-17310 (26 hours ago) <Dmitry Gridin> *8e4c7ad65d- (tag: build-1.3.70-dev-1040) Merge pull request #2727 from pyos/fix-synthetic-accessors-v101 (26 hours ago) <Alexander Udalov> |\ | *75aef4633a- JVM_IR: add accessors for protected members in divergent hierarchies (6 days ago) <pyos> *3658bee253- [FIR] Fix testdata related to callable references (26 hours ago) <Dmitriy Novozhilov> *0d15ff1ddd- [FIR] Introduce `FirSourceElement` instead of `FirElement` as source in fir nodes (26 hours ago) <Dmitriy Novozhilov> *b93357be48- [FIR] Support assignment operators (26 hours ago) <Dmitriy Novozhilov> *6298889358- [FIR] Add forgotten exhaustiveness checking for erroneously resolved when (26 hours ago) <Dmitriy Novozhilov> *7e55960943- [FIR] Support Conditional effects (26 hours ago) <Dmitriy Novozhilov> *57f1eac9a8- [FIR] Support CallsInPlace effects (26 hours ago) <Dmitriy Novozhilov> *fd852ec07d- [FIR] Add deserialization of contracts (26 hours ago) <Dmitriy Novozhilov> *18c3d1c140- [FIR] Add contract description classes to fir (26 hours ago) <Dmitriy Novozhilov> *3661dedacf- (tag: build-1.3.70-dev-1038) KT-31762: Fix completion in enum entries constructors (27 hours ago) <Roman Golyshev> *042100ea77- (tag: build-1.3.70-dev-1032, origin/rr/kishmakov/gutters-support) [Gradle, JS] Disable puppeteer downloading Chrome (27 hours ago) <Ilya Goncharov> *63b115abb6- Workaround for KT-34656: temporary disable assertion (27 hours ago) <Mikhael Bogdanov> *de333c18fc- (tag: build-1.3.70-dev-1028) JVM_IR: Enable loopVarInterval and forInReversedCollectionIndices bytecode text tests. (29 hours ago) <Mark Punzalan> *934cbcbbec- (tag: build-1.3.70-dev-1025) Use more abstract class for gradleModuleBuilder (30 hours ago) <Natalia Selezneva> *46d843643d- (tag: build-1.3.70-dev-1016) Fixed BoxJsTestGenerated.Main due to nullable arguments in main method (2 days ago) <Vladimir Dolzhenko> *2043dd8a10- (tag: build-1.3.70-dev-1015) JVM IR: Respect extension receiver parameter type in AddContinuationLowering (2 days ago) <Steven Schäfer> *184c83bcb0- JVM IR: Fix type of IrReturn in AddContinuationLowering (2 days ago) <Steven Schäfer> *b4d2eae12d- (tag: build-1.3.70-dev-1012) Add test data generator for stepped progression box tests. (2 days ago) <Mark Punzalan> *1738c2d4f6- Invoke GenerateInRangeExpressionTestData and GeneratePrimitiveVsObjectEqualityTestData during :compiler:generateTests. (2 days ago) <Mark Punzalan> *3c775c598c- Extract utility function to create temporary variables if necessary. (2 days ago) <Mark Punzalan> *9bb9ab67a7- Add bytecode text tests for ForLoopsLowering. (2 days ago) <Mark Punzalan> *277cb39e3b- Add new tests for `step` progressions and fix existing tests. (2 days ago) <Mark Punzalan> *27642514b1- Move ForLoopsLowering before JvmStringConcatenationLowering. (2 days ago) <Mark Punzalan> *8a4185202f- Handle `step` progressions in ForLoopsLowering. (2 days ago) <Mark Punzalan> *38f0fd256e- Build: Specify LIBRARY_ELEMENTS_ATTRIBUTE to JAR for configurations with js libraries (2 days ago) <Vyacheslav Gerasimov> *1a68a772c4- Build: Update gradle to 5.6.2 (2 days ago) <Vyacheslav Gerasimov> *ea43d2880c- (tag: build-1.3.70-dev-1011) FIR: Update FIR2IR test data changed because of callable references (2 days ago) <Denis Zharkov> *9ac0ac50ea- FIR: Support callable references to vars (2 days ago) <Denis Zharkov> *4233cf1bd6- FIR: Get rid of the cycle in delegated properties resolution (2 days ago) <Denis Zharkov> *f97f06a99a- FIR: Support callable references for constructors (2 days ago) <Denis Zharkov> *1e0105d40e- FIR: Fix initialization pieces for callable references after rebase (2 days ago) <Denis Zharkov> *7ae3eda37f- FIR: Rename FirResolvedRealCallableReference -> FirResolvedCallableReference (2 days ago) <Denis Zharkov> *1564e72b59- FIR: Rename FirResolvedCallableReference -> FirResolvedNamedReference (2 days ago) <Denis Zharkov> *5e322a2dd9- FIR: Refactor ResolvedCallableReferenceAtom (2 days ago) <Denis Zharkov> *fe8cd195aa- FIR: Support callable references outside of the calls (2 days ago) <Denis Zharkov> *152236d84a- FIR: Support callable references to declarations with implicit types (2 days ago) <Denis Zharkov> *af72cea8b3- FIR: Add simple test on SAM conversion for callable receivers (2 days ago) <Denis Zharkov> *7feb1aecfe- FIR: Add constraints for extension receiver of callable reference (2 days ago) <Denis Zharkov> *74b9ba1613- FIR: Support callable references to properties (2 days ago) <Denis Zharkov> *38ab6521aa- FIR: Support static methods in callable references (2 days ago) <Denis Zharkov> *937ea3d8a0- FIR: Support postponed callable references resolution (2 days ago) <Denis Zharkov> *cb50ea2707- FIR: Resolve callable references separately for each outer candidate (2 days ago) <Denis Zharkov> *03a9bfbea5- FIR: Provide Candidate receiver to argument resolution helpers (2 days ago) <Denis Zharkov> *006e475a99- FIR: Support callable references partially (2 days ago) <Denis Zharkov> *cdb2bb2b45- FIR: Prepare tree for callable references resolution (2 days ago) <Denis Zharkov> *aeceee5af0- FIR: Fix StoreReceiver transformer (2 days ago) <Denis Zharkov> *e359791ab4- Minor. FIR: Simplify createFunctionalType (2 days ago) <Denis Zharkov>
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.