*63892891db- (tag: build-1.3.60-dev-1666) Add internal move refactoring testing action (4 days ago) <Igor Yakovlev> *3951fde081- Save 'Search for references' checkbox state on move of kotlin file (4 days ago) <Igor Yakovlev> *eca2707dbf- Refactor of Move Refactoring (4 days ago) <Igor Yakovlev> *d6c5fbace0- (tag: build-1.3.60-dev-1658) [IR][inliner] prevent of parameters location information loss (4 days ago) <Vasily Levchenko> *a2fcefd456- (tag: build-1.3.60-dev-1655) Added fallback for LightClasses getOwnFields, getOwnMethods if dummy resolve failed (KT-27243, KT-33561) (4 days ago) <Vladimir Dolzhenko> *78b0d5750b- (tag: build-1.3.60-dev-1622) New J2K: consider literal expressions in data class conversion & fix names conflict (4 days ago) <Ilya Kirillov> *405a3beeab- New J2K: move helper functions to corresponding files & use better names for tree nodes files (4 days ago) <Ilya Kirillov> *64ecbd1418- New J2K: use internal getStrictParentOfType instead of custom one (4 days ago) <Ilya Kirillov> *2f5fa49c52- New J2K: remove unused abstractions for conversions running (4 days ago) <Ilya Kirillov> *131df66087- New J2K: check if method reference has functional type on PsiType instead of JKType (4 days ago) <Ilya Kirillov> *ca0cc13097- New J2K: retrieve constructor call return type correctly (4 days ago) <Ilya Kirillov> *982e7fdd86- New J2K: do not shorten class references for some Java primitive class wrappers classes (4 days ago) <Ilya Kirillov> *fd2ad89799- (tag: build-1.3.60-dev-1613) JVM IR: Write ACC_DEPRECATED flags (5 days ago) <Steven Schäfer> *a90ac2438d- Set correct field visibility in psi2ir (5 days ago) <Steven Schäfer> *6c7a904663- (tag: build-1.3.60-dev-1612) Psi2Ir: Mark accessors with no bodies as default accessors. (5 days ago) <Mads Ager> *fda37eaaae- (tag: build-1.3.60-dev-1605) [minor] Rearrange test utils for easier reuse (5 days ago) <Ilya Chernikov> *947867286c- [minor] Fix potential problems with sequence, add a todo (5 days ago) <Ilya Chernikov> *c9b25cad01- Fix classpath handling when evaluating legacy scripts from kotlinc (5 days ago) <Ilya Chernikov> *31c56d7794- Set java.class.path property in runner and loader (5 days ago) <Ilya Chernikov> *08720a3dc6- Set thread context classloader in the kotlin runner (5 days ago) <Ilya Chernikov> *d3f32c0d8a- Set thread context classloader in preloader (5 days ago) <Ilya Chernikov> *7b2f39530a- Fix invalid testdata for ConvertToScopeIntention applicability (5 days ago) <Igor Yakovlev> *cf39803074- (tag: build-1.3.60-dev-1592) Pass cacheRedirectorEnabled flag to performance test gradle import (5 days ago) <Vyacheslav Gerasimov> *b04fbbd43b- Fix `testUnusedSymbol_class_inspectionData_Inspections_test` test (5 days ago) <Dmitry Gridin> *1e72116a9c- (tag: build-1.3.60-dev-1576) Fix test data for intention tests (5 days ago) <Igor Yakovlev> *55f4610926- (tag: build-1.3.60-dev-1575) Tests: fix `invalidBundleOrProperty` test for 183 #KT-32860 Fixed (5 days ago) <Dmitry Gridin> *d4e4a4c3e7- (tag: build-1.3.60-dev-1562) To ordinary string literal: remove 'trimIndent()' if string is single line (6 days ago) <Toshiaki Kameyama> *fbe66c3496- (tag: build-1.3.60-dev-1558) JVM IR: fix another naming inconsistency with old backend (6 days ago) <Alexander Udalov> *fec8dbf6df- JVM IR: do not use AsmUtil.putJavaLangClassInstance (6 days ago) <Alexander Udalov> *23eb6daae9- JVM IR: remove MethodSignatureMapper.mapImplementationOwner (6 days ago) <Alexander Udalov> *aea9642ea0- JVM IR: implement MethodSignatureMapper.mapToCallableMethod directly (6 days ago) <Alexander Udalov> *e0823e20c7- JVM IR: do not use AsmUtil.genToString (6 days ago) <Alexander Udalov> *bf40b72451- JVM IR: remove unneeded usages of MethodSignatureMapper.mapToCallableMethod (6 days ago) <Alexander Udalov> *0f1a15daf1- JVM IR: add lowering to remove calls to KFunction{n}.invoke (6 days ago) <Alexander Udalov> *2b4424b564- JVM IR: replace function accesses in multi-file parts (6 days ago) <Alexander Udalov> *21b2487290- (tag: build-1.3.60-dev-1549) Minor: add an additional message for further investigation EA-141821 (6 days ago) <Zalim Bashorov> *b78ba71224- (tag: build-1.3.60-dev-1542) [FIR] Set mem-limit 8g (6 days ago) <Simon Ogorodnik> *6a9fb46985- [FIR] Make fir modularized test depends on dist (6 days ago) <Simon Ogorodnik> *5ef4a01a45- [FIR] Fix module qualified names (6 days ago) <Simon Ogorodnik> *9338a3c086- [FIR] Filter out common modules (6 days ago) <Simon Ogorodnik> *b99d9e0e0b- [FIR] Disambiguate module names (6 days ago) <Simon Ogorodnik> *9530389583- [FIR] Group multiple pass logs into one (6 days ago) <Simon Ogorodnik> *4c246faddb- [FIR] Fix redeclaration (6 days ago) <Simon Ogorodnik> *8c31a0be07- [FIR] Add filter param (6 days ago) <Simon Ogorodnik> *2ca1e5c8c7- [FIR] Pass properties to test (6 days ago) <Simon Ogorodnik> *96627fc1ae- [FIR] Add parameters to modularized tests (6 days ago) <Simon Ogorodnik> *e9b2e74b15- (tag: build-1.3.60-dev-1528) escapeXML: fix bunch for 183 (6 days ago) <Dmitry Gridin> *ea02d0c632- (tag: build-1.3.60-dev-1525) ExpectActualUtils: `repairSuperTypeList` should consider type parameters (6 days ago) <Dmitry Gridin> *03141be11e- ExpectActualUtils: update `repairAnnotationEntries` for more cases with annotations (6 days ago) <Dmitry Gridin> *ba0ba3422d- CreateExpectedFix: rename `isCorrectAndHaveNonPrivate` to `isCorrectAndHaveNonPrivateModifier` (6 days ago) <Dmitry Gridin> *3c6da0bfe6- TypeAccessibilityChecker: rename `existingFqNames` to `existingTypeNames` and add comments (6 days ago) <Dmitry Gridin> *531f695404- CreateExpectedFix: remove recursive call from `findAndApplyExistingClasses` (6 days ago) <Dmitry Gridin> *35d64f85f8- TypeAccessibilityCheckerImpl: `explicitParameters` change return type to `Sequence` (6 days ago) <Dmitry Gridin> *aa135bc505- TypeAccessibilityCheckerImpl: move visibility check for `KtNamedDeclaration` to outside (6 days ago) <Dmitry Gridin> *eaa28fd4ed- CreateExpect: fix build for a33 (6 days ago) <Dmitry Gridin> *27d7ee8518- TypeAccessibilityChecker: move to idea-analysis module (6 days ago) <Dmitry Gridin> *56a7445660- CreateExpect: should prefer type aliases #KT-32571 Fixed (6 days ago) <Dmitry Gridin> *5928a36fa2- CreateExpect: should save receiver annotations #KT-32694 Fixed (6 days ago) <Dmitry Gridin> *42ef9d634a- ExpectActualUtils: merge generateFunction with generateProperty to generateCallable & remove old checker (6 days ago) <Dmitry Gridin> *90b82c96eb- TypeAccessibilityChecker: fix `incorrectTypes` for descriptor (6 days ago) <Dmitry Gridin> *1c98cb763e- addRemoveModifier: shouldn't add extra new line #KT-26635 Fixed (6 days ago) <Dmitry Gridin> *0458a22f78- TypeAccessibilityChecker: fix case with unresolved type params (6 days ago) <Dmitry Gridin> *4ed56908af- CreateExpect: add `actual` modifier to original class if needed (6 days ago) <Dmitry Gridin> *73ae993d81- TypeAccessibilityChecker: add more tests (6 days ago) <Dmitry Gridin> *84d167b7bd- TypeAccessibilityChecker: add logs for tests (6 days ago) <Dmitry Gridin> *7c850e44d2- CreateExpectedFix: add escaping for error text (6 days ago) <Dmitry Gridin> *3617f3d247- TypeAccessibilityChecker: fix callable with upper bound (6 days ago) <Dmitry Gridin> *46fefde09c- ExpectActualUtils: introduce TypeAccessibilityChecker #KT-28537 Fixed #KT-28538 Fixed #KT-28549 Fixed #KT-28620 Fixed #KT-31433 Fixed #KT-31475 Fixed #KT-32642 Fixed #KT-32768 Fixed #KT-33150 Fixed (6 days ago) <Dmitry Gridin> *d1b33485a4- ExpectActualUtils: rename checkTypeInSequence to incorrectTypesInSequence & change return type (6 days ago) <Dmitry Gridin> *18f0bbe8f1- QuickFixMultiModule: change tests structure (6 days ago) <Dmitry Gridin> *02fd137cec- SimpleTestClassModel: add `deep` field (6 days ago) <Dmitry Gridin> *65ce4aed1a- TestGenerationDSL: cleanup code (6 days ago) <Dmitry Gridin> *bddf768d59- CreateExpect: fix case with parameters in constructor without var/val (6 days ago) <Dmitry Gridin> *1b718761b2- AbstractQuickFixMultiModuleTest: support multiline errors `SHOULD_FAIL_WITH` (6 days ago) <Dmitry Gridin> *3f7c983f04- CreateExpectFix: fix selection for primary constructor (6 days ago) <Dmitry Gridin> *4a049b9b01- GenerateTests: cleanup code (6 days ago) <Dmitry Gridin> *1748906d9a- ExpectActualUtils: should add annotations (6 days ago) <Dmitry Gridin> *5e60ea2272- ExpectActualUtils: should remove `override` (6 days ago) <Dmitry Gridin> *7561905676- ExpectActualUtils: add type accessibility check for supertypes (6 days ago) <Dmitry Gridin> *8e9952e203- multiplatformUtil: implement Module.toDescriptor() (6 days ago) <Dmitry Gridin> *755f7e8739- elementRenderingUtils: override visitor for KtTypeReference, KtParameterList, KtParameter (6 days ago) <Dmitry Gridin> *c17e19b004- elementRenderingUtils: cleanup code (6 days ago) <Dmitry Gridin> *2b32c9d2f9- ExpectActualUtils: add type arguments accessibility check for constructors (6 days ago) <Dmitry Gridin> *e59571c482- ExpectActualUtils: add type arguments accessibility check for top level classes (6 days ago) <Dmitry Gridin> *bad9459978- ExpectActualUtils: add type arguments accessibility check (6 days ago) <Dmitry Gridin> *5884c65857- ExpectActualUtils: add type accessibility check (6 days ago) <Dmitry Gridin> *dffb44c11c- Create actual/expect quick fix should render super type correctly (6 days ago) <Dmitry Gridin> *a21375508d- ExpectActualUtils: drop `missedDeclarations` parameter from `generateClassOrObject` function (6 days ago) <Dmitry Gridin> *22f8b9f475- (tag: build-1.3.60-dev-1518) Remove codegen tests on inline classes based on type parameters (6 days ago) <Alexander Udalov> *6bf16a96e1- (tag: build-1.3.60-dev-1515) Add more tests for type operators on the jvm (6 days ago) <Steven Schäfer> *b6ea135e70- Add a TypeOperatorLowering for JVM_IR (6 days ago) <Steven Schäfer> *39ba462540- (tag: build-1.3.60-dev-1508, tag: build-1.3.60-dev-1502) JVM IR: remove unneeded part of a hack for inlining $default methods (7 days ago) <Alexander Udalov> *34400add22- Minor, add IrCallableMethod.toString (7 days ago) <Alexander Udalov> *dd74794f97- Minor, add message to exception thrown in parentAsClass (7 days ago) <Alexander Udalov> *a3c3ab08fd- (tag: build-1.3.60-dev-1468) Override/Implement members: place members in the same order as super class members (7 days ago) <Toshiaki Kameyama>
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 10.2
- 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
To include Kotlin/Native Shared in a composite build and build against
it, use the sharedProjectPath project property:
./gradlew dist -PsharedProjectPath=path/to/kotlin/native/shared
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.