*51459adb8c- (tag: build-1.3.70-dev-1244) Add integration test for Kapt3+IR (10 hours ago) <Georgy Bronnikov> *195f225e36- Run Kapt3 with old backend, even if IR is specified in configuration (10 hours ago) <Georgy Bronnikov> *b9f88350dd- (tag: build-1.3.70-dev-1231) [JS IR] Build hybrid versions of stdlib and kotlin.test (3 days ago) <Svyatoslav Kuzmich> *d872b27663- [JS IR] Add gradle plugin integration tests (3 days ago) <Svyatoslav Kuzmich> *bc47594c7a- Update bootstrap (3 days ago) <Svyatoslav Kuzmich> *1b8df45bfe- [JS IR] Support generating both IR and pre-IR libraries (3 days ago) <Svyatoslav Kuzmich> *62d204f4d6- Support trailing comma ^KT-34743 Fixed (3 days ago) <victor.petukhov> *e638b9fd12- (tag: build-1.3.70-dev-1228) K/N performance gradle plugin. Added options and right code size for … (#2752) (3 days ago) <LepilkinaElena> *8c079706a5- (tag: build-1.3.70-dev-1227) Add tests for case when result of tail-call suspend function returning (3 days ago) <Ilmir Usmanov> *ca527444cb- Return Unit manually in callSuspend and callSuspendBy if callable (3 days ago) <Ilmir Usmanov> *04441da095- Replace result on stack with Unit if callee is suspend function (3 days ago) <Ilmir Usmanov> *3b088818a5- (tag: build-1.3.70-dev-1222) Build: Add sources and javadocs to Kotlin Plugin publication (3 days ago) <Vyacheslav Gerasimov> *579645bcfa- Build: Publish ide-common as separate artifact in KotlinPlugin publication (3 days ago) <Vyacheslav Gerasimov> *7401a7c63f- Build: Fix dependencies of ide-common (3 days ago) <Vyacheslav Gerasimov> *1e63101a27- (tag: build-1.3.70-dev-1216) FIR2IR: fix testData after rebase (3 days ago) <Dmitry Petrov> *6cde86139c- IR: isFakeOverride: fix testData after rebase (3 days ago) <Dmitry Petrov> *35b9f43608- IR: use isFakeOverride (3 days ago) <Dmitry Petrov> *f79909d724- IR serialization: isFakeOverride in proto (3 days ago) <Dmitry Petrov> *5c390d9426- IR serialization: IrField.isFakeOverride (3 days ago) <Dmitry Petrov> *ce96053940- JVM_IR: IrField.isFakeOverride (3 days ago) <Dmitry Petrov> *0b26f32674- JS_IR: IrField.isFakeOverride (3 days ago) <Dmitry Petrov> *6101f00611- IR BE common: IrField.isFakeOverride (3 days ago) <Dmitry Petrov> *3fcdbf2c88- FIR2IR: IrField.isFakeOverride (3 days ago) <Dmitry Petrov> *edaa42ea46- IR: IrField.isFakeOverride (3 days ago) <Dmitry Petrov> *e9337ec8f2- IR serialization: IrProperty.isFakeOverride (3 days ago) <Dmitry Petrov> *da63d16c33- IR BE common: IrProperty.isFakeOverride (3 days ago) <Dmitry Petrov> *8b8b96bff4- FIR2IR: IrProperty.isFakeOverride (3 days ago) <Dmitry Petrov> *82c527c2cc- IR: IrProperty.isFakeOverride (3 days ago) <Dmitry Petrov> *2682057767- IR tests: update testData for IrSimpleFunction.isFakeOverride (3 days ago) <Dmitry Petrov> *65e6a84831- IR tests: check IrSimpleFunction.isFakeOverride (3 days ago) <Dmitry Petrov> *46745adfd9- FIR2IR: IrSimpleFunction.isFakeOverride (3 days ago) <Dmitry Petrov> *d23f13e3dc- IR serialization: IrSimpleFunction.isFakeOverride (3 days ago) <Dmitry Petrov> *5831b08a6e- JVM_IR: IrSimpleFunction.isFakeOverride (3 days ago) <Dmitry Petrov> *f24278941d- JS_IR: IrSimpleFunction.isFakeOverride (3 days ago) <Dmitry Petrov> *b36d8f556a- IR BE common: IrSimpleFunction.isFakeOverride (3 days ago) <Dmitry Petrov> *843fb88459- IR: IrSimpleFunction.isFakeOverride (3 days ago) <Dmitry Petrov> *01f09af608- (tag: build-1.3.70-dev-1214) [FIR] Fix generated name for `FirErrorNameReferenceImpl` (3 days ago) <Dmitriy Novozhilov> *829227255d- [FIR] Add rendering of error numbers per file/package/module in HTML dump (3 days ago) <Dmitriy Novozhilov> *528e538b2a- [FIR] Remove duplicating diagnostics from error function calls (3 days ago) <Dmitriy Novozhilov> *a3ae629f53- Fix bunch file in 193 (3 days ago) <Nikolay Krasko> *ffafd96f1b- Fix url for developers builds (KT-34246) (3 days ago) <Nikolay Krasko> *955300dd34- (tag: build-1.3.70-dev-1211) Deserializer: Fix initialization of private top-levels (3 days ago) <Ilya Matveev> *073578bf1c- (tag: build-1.3.70-dev-1205) [FIR] Fix Fir2Ir testdata broken ina501e514(3 days ago) <Dmitriy Novozhilov> *098616ac76- [FIR] Add dependency of `:descriptors.runtime` to `:fir2ir` module (3 days ago) <Dmitriy Novozhilov> *1b44566e6f- [FIR] Fix compilation error in lightTree module (3 days ago) <Dmitriy Novozhilov> *27c70eedd9- (tag: build-1.3.70-dev-1204, tag: build-1.3.70-dev-1203, tag: build-1.3.70-dev-1202) Enable MixedNamedArgumentsInTheirOwnPosition feature in compiler module (3 days ago) <Dmitriy Novozhilov> *09fa15c22b- [FIR] Support old FE-like multifile tests (3 days ago) <Dmitriy Novozhilov> *65eed24dbb- [FIR] Add diagnostics reporting to FIR resolve tests (3 days ago) <Dmitriy Novozhilov> *38bb9f78d6- [FIR] Add diagnostic collector component that collects diagnostics from error nodes (3 days ago) <Dmitriy Novozhilov> *0428916d3c- [FIR] Add error nodes to default transformer and visitors (3 days ago) <Dmitriy Novozhilov> *a501e514c9- [FIR] Add meaningful diagnostics in all error elements (3 days ago) <Dmitriy Novozhilov> *7503449e8d- [FIR] Add kind to diagnostics reported by RawFirBuilder (3 days ago) <Dmitriy Novozhilov> *8b5f568a15- [FIR] Introduce `FirDiagnostic` in FIR instead of errorReason (3 days ago) <Dmitriy Novozhilov> *8eabe08e7a- [FIR] Move components into separate package (3 days ago) <Dmitriy Novozhilov> *f72fa87583- [FIR] Add old FE-like diagnostic tests (3 days ago) <Dmitriy Novozhilov> *8b900624d3- [FIR] Add bridge for diagnostics from old FE to ConeDiagnostic (3 days ago) <Dmitriy Novozhilov> *9b77dec99c- [FIR] Add prototype of diagnostic collector (3 days ago) <Dmitriy Novozhilov> *e909b63d30- (tag: build-1.3.70-dev-1196) Revert "Fix GradleConfiguratorTest" (4 days ago) <Andrey Uskov> *fd2b75e39b- Fixed import of MPP project with single Android target (4 days ago) <Andrey Uskov> *5c3b00cd0c- Improve performance of import in Android Studio (4 days ago) <Andrey Uskov> *e8e04ca98e- (tag: build-1.3.70-dev-1194) Do not use new stdlib API in reflection implementation (4 days ago) <Alexander Udalov> *72591e34b3- (tag: build-1.3.70-dev-1192, tag: build-1.3.70-dev-1188) Support android_x64/86 in cinterop definitions (4 days ago) <Kirill Shmakov> *4c21b234b1- (tag: build-1.3.70-dev-1182) Fixed compilation in 191 (4 days ago) <Alexander Podkhalyuzin> *7b8fbb5fea- (tag: build-1.3.70-dev-1181) Fixed freezes with add unambiguous imports on the fly (4 days ago) <Alexander Podkhalyuzin> *24d620657b- (tag: build-1.3.70-dev-1175) Java doesn't have extension methods, so we don't need to look for imports for qualified references (4 days ago) <Alexander Podkhalyuzin> *95ac0e328f- (tag: build-1.3.70-dev-1172) Build: Extract bootstrap teamcity url to parameter (4 days ago) <Vyacheslav Gerasimov> *f641e2a139- (tag: build-1.3.70-dev-1170) RedundantRequireNotNullCallInspection: should use `BodyResolveMode.PARTIAL_WITH_CFA` instead of `BodyResolveMode.PARTIAL` #KT-34672 Fixed (4 days ago) <Dmitry Gridin> *04c8c888ee- KotlinLightCodeInsightFixtureTestCase: remove deprecated call for 193 (4 days ago) <Dmitry Gridin> *17429d333e- Create expect/actual should move cursor to target declaration #KT-34411 Fixed (4 days ago) <Dmitry Gridin> *8e2943ae2a- (tag: build-1.3.70-dev-1169) Temporary increase timeout to avoid NPE (4 days ago) <Mikhael Bogdanov> *7c4033f0bf- (tag: build-1.3.70-dev-1168) Deserializer: Fix initialization order (4 days ago) <Ilya Matveev> *78b29349c9- (tag: build-1.3.70-dev-1167) Fix lateinit `isInitialized` check in multi-file case (4 days ago) <Roman Artemev> *d75b938089- Formatter: don't format elvis operator in string template (4 days ago) <Toshiaki Kameyama> *bcee8ce04b- (tag: build-1.3.70-dev-1165) KT-34692: Invoke `ScratchAction::update` without `invokeLater` (4 days ago) <Roman Golyshev> *28ec74648e- (tag: build-1.3.70-dev-1163) Use ML completion extension point from 193 platform (4 days ago) <Roman Golyshev> *b30a9e1d3e- (tag: build-1.3.70-dev-1155) [NI] Remove capturing from supertypes during computation of CST (4 days ago) <Mikhail Zarechenskiy> *e8907c078d- [NI] Don't recreate subtyping context every time (4 days ago) <Mikhail Zarechenskiy> *de009a2ff2- [NI] Minor, use singleton instead of creating anonymous object (4 days ago) <Mikhail Zarechenskiy> *77577dfa6f- [FIR] Introduce `ConeStubType` to have subtyping for non-fixed variables (4 days ago) <Mikhail Zarechenskiy> *01ad9c47c8- [NI] Fix subtyping between integer literal types and intersection ones (4 days ago) <Mikhail Zarechenskiy> *e0fb586aaf- [NI] Don't loose diagnostic after type variable fixation (4 days ago) <Mikhail Zarechenskiy> *ca8da22569- [NI] Improve CST algorithm to handle non-fixed variables (4 days ago) <Mikhail Zarechenskiy> *ba6648d535- Minor, reformat `Annotations.kt` file (4 days ago) <Mikhail Zarechenskiy> *2ff36c808e- (tag: build-1.3.70-dev-1154) Minor: mute testEa35963 in WASM (4 days ago) <Dmitry Petrov> *8b2fdca706- FIR2IR: fix testData (4 days ago) <Dmitry Petrov> *b1b70e503c- JVM IR: Improve codegen for try/catch statements (4 days ago) <Steven Schäfer> *af74fd047a- psi2ir: Consistently use type unit for statements (4 days ago) <Steven Schäfer> *0da4b06074- psi2ir: Fix return insertion (4 days ago) <Steven Schäfer> *b3e733ea4f- 193: More mutes in 193 (SurroundWithTestGenerated, KT-34689, KT-34542, KT-34672) (4 days ago) <Nikolay Krasko> *f7c775a080- 193: Mute tests for find usages in libraries in 193 (KT-34542) (4 days ago) <Nikolay Krasko> *7e5316b9f1- Fix completion test for Java in 193 (4 days ago) <Nikolay Krasko> *42312c3060- Fix GradleConfiguratorTest.testProjectWithModule in 193 (4 days ago) <Nikolay Krasko> *0d2e790b32- Fix IdeaModuleInfoTest.testSdkForScript in 193 (4 days ago) <Nikolay Krasko> *c9793e4bf4- Fix IdeaModuleInfo tests in 193 (4 days ago) <Nikolay Krasko> *4ef063c656- Log information about failed test (4 days ago) <Nikolay Krasko> *201859be92- Mute RedundantRequireNotNullCall tests in 193 (KT-34672) (4 days ago) <Nikolay Krasko> *bed2e21a1a- Mute CoroutineNonBlockingontextDetectionTest tests in 193 (KT-34659) (4 days ago) <Nikolay Krasko> *1811b79503- Mute custom navigation tests (KT-34542) (4 days ago) <Nikolay Krasko> *a835f07d51- (tag: build-1.3.70-dev-1153) JVM_IR: don't regenerate objects in lambdas inlined into objects (4 days ago) <pyos> *eeadc95bc1- (tag: build-1.3.70-dev-1152) [Gradle, JS] Remove check on duplicated targets (4 days ago) <Ilya Goncharov> *1074a0ef69- (tag: build-1.3.70-dev-1151) JVM_IR: Fix Inline CallableReferences with Varargs (4 days ago) <Kristoffer Andersen> *5360a7a3fe- (tag: build-1.3.70-dev-1147) Fix GradleConfiguratorTest (5 days ago) <Andrey Uskov> *33cacb87d3- Fix import tests for IDE 183 (5 days ago) <Andrey Uskov> *4b2834c4a8- (tag: build-1.3.70-dev-1146) Provide incremental analysis of a file when it is applicable (5 days ago) <Vladimir Dolzhenko> *c7bd6d8ede- (tag: build-1.3.70-dev-1144) Support watchos and tvos in cinterop definitions (5 days ago) <Kirill Shmakov> *08f9dd2aea- (tag: build-1.3.70-dev-1136) [Gradle, JS] Fix entry for webpack (with Configuration Avoidance broke) (5 days ago) <Ilya Goncharov> *6f91c0e679- [FIR] Don't check `@ExtensionFunction` in fir consistency tests (5 days ago) <Dmitriy Novozhilov> *ad9bf62b2f- [FIR] Remove adding annotations from bounds to type parameter in lightTree2Fir (5 days ago) <Dmitriy Novozhilov> *36ad065792- [FIR] Fix testdata broken afterd2b895d8(5 days ago) <Dmitriy Novozhilov> *ddd25c703a- (tag: build-1.3.70-dev-1127) SmartPointers in Introduce Variable refactoring (5 days ago) <Alexander Podkhalyuzin> *aa604d0854- (tag: build-1.3.70-dev-1126) Fixed new/old type inference diff, sometimes causes problems in JPS (5 days ago) <Alexander Podkhalyuzin> *607249e899- Make computeTasksAndResolveCall public for compiler plugins (5 days ago) <Stanislav Erokhin> *17bd547666- (tag: build-1.3.70-dev-1121) Build: Fix internalKotlinRepo url for JPS build (5 days ago) <Vyacheslav Gerasimov> *28187da750- (tag: build-1.3.70-dev-1112, tag: build-1.3.70-dev-1110) Fix compilation of :idea:compileTestKotlin (5 days ago) <Alexander Udalov>
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.