*75be9cf31f- (tag: build-1.4.20-dev-3586) [Commonizer] Tests on rewriting callables names to succeed commonization (vor 9 Stunden) <Dmitriy Dolovov> *de0b6e06cf- [Commonizer] Keep parameters names hash in approximation keys for ObjC callables (vor 9 Stunden) <Dmitriy Dolovov> *3b901a28d5- [Commonizer] More compact approximation keys (vor 9 Stunden) <Dmitriy Dolovov> *4418dc85ca- [Commonizer] Allow rewriting callables names to succeed commonization (vor 9 Stunden) <Dmitriy Dolovov> *8904f5652b- [Commonizer] Allow extended lookup for classifiers in test mode (vor 9 Stunden) <Dmitriy Dolovov> *3b398ed57f- [Commonizer] Small clean-up in IllegalCommonizerStateException (vor 9 Stunden) <Dmitriy Dolovov> *494fb39399- [Commonizer] CLI: Report duration even if it's 0ms long (vor 9 Stunden) <Dmitriy Dolovov> *9ef727747b- [Commonizer] Use Array instead of List in AbstractListCommonizer (vor 9 Stunden) <Dmitriy Dolovov> *e468a347b5- (tag: build-1.4.20-dev-3571, tag: build-1.4.20-dev-3570) [box-tests] Tests on field init optimization (vor 2 Tagen) <Igor Chevdar> *0328fcaf5d- (tag: build-1.4.20-dev-3562) JVM IR: Avoid IMPLICIT_NOTNULL checks on special bridge methods (vor 3 Tagen) <Steven Schäfer> *9026f89ba5- JVM IR: Avoid CHECKCASTs on type operators (KT-39520) (vor 3 Tagen) <Steven Schäfer> *469b164555- (tag: build-1.4.20-dev-3560) IR: minor optimizations to IR validation (vor 3 Tagen) <Alexander Udalov> *7468518f35- JVM IR: minor, optimize forceSingleValueParameterBoxing (vor 3 Tagen) <Alexander Udalov> *35cace2540- JVM IR: collect potentialBridgeTargets in a list, then create bridges for all of them (vor 3 Tagen) <Alexander Udalov> *9607414cf1- IR: make allOverridden return Set instead of Sequence, move to IrUtils (vor 3 Tagen) <Alexander Udalov> *adcfbdec24- JVM IR: optimize special method / signature computation in BridgeLowering (vor 3 Tagen) <Alexander Udalov> *0727e9055b- JVM IR: use a simpler way to check if class is local (vor 3 Tagen) <Alexander Udalov> *6db5ad7310- IR: remove cast to IrStatement in IrDeclarationBase.transform (vor 3 Tagen) <Alexander Udalov> *fb8e39a621- IR: optimize transformation of declarations/statements lists in-place (vor 3 Tagen) <Alexander Udalov> *4f0585950e- IR: inline some transformChildren calls in IrElementTransformer{,Void} (vor 3 Tagen) <Alexander Udalov> *3a883e1236- (tag: build-1.4.20-dev-3553) Replace bintray bootstrap with space bootstrap repo (vor 3 Tagen) <Nikolay Krasko> *f484ceec80- Use GPG agent for signing in PublishedKotlinModule (KTI-314) (vor 3 Tagen) <Nikolay Krasko> *bbf8b12c65- Sign with GnuPG agent (KTI-314) (vor 3 Tagen) <Nikolay Krasko> *635ffcd53b- Update maven signing for working with gpg 2 (KTI-314) (vor 3 Tagen) <Nikolay Krasko> *a121ec1e39- (tag: build-1.4.20-dev-3549, tag: build-1.4.20-dev-3542, tag: build-1.4.20-dev-3534) Update Kotlin/Native: 1.4.20-dev-16314 (vor 3 Tagen) <Ilya Matveev> *fa2c49a311- (tag: build-1.4.20-dev-3532) [Plugin API] Add extension point to contribute synthetic properties (vor 3 Tagen) <Roman Artemev> *5ede37d6ab- (tag: build-1.4.20-dev-3531) Report warnings on safe call + nullable extension operator (vor 3 Tagen) <Denis Zharkov> *852d22470e- (tag: build-1.4.20-dev-3520) Revert "FIR Completion: Add idea-fir dependency to run completion tests" (vor 4 Tagen) <Roman Golyshev> *89cc5777ce- (tag: build-1.4.20-dev-3514) Put parameters on line: don't suggest if parameters has end-of-line comments (vor 4 Tagen) <Toshiaki Kameyama> *efa981db36- "Create class from usage": add visibility to primary constructor if needed (vor 4 Tagen) <Toshiaki Kameyama> *b1e8238ea2- (tag: build-1.4.20-dev-3513) "Convert reference to lambda" intention: handle extension function reference with extension function call (vor 4 Tagen) <Toshiaki Kameyama> *9ff7539ff0- (tag: build-1.4.20-dev-3512) "Merge 'if's" intention: do not remove nested comments (vor 4 Tagen) <Toshiaki Kameyama> *f6e70cfed8- (tag: build-1.4.20-dev-3511) Wrap with let: fix it works correctly for invoking function type (vor 4 Tagen) <Toshiaki Kameyama> *babdeacdaf- (tag: build-1.4.20-dev-3501) [Gradle, JS] Add resolution configuration method (vor 4 Tagen) <Ilya Goncharov> *85f23d8c6e- [Gradle, JS] Fix test with new API (vor 4 Tagen) <Ilya Goncharov> *5eda8e95bf- [Gradle, JS] Revert kotlinTargets (vor 4 Tagen) <Ilya Goncharov> *855554ac38- [Gradle, JS] Move yarn resolutions from dependency constraints (vor 4 Tagen) <Ilya Goncharov> *fecda8548b- [Gradle, JS] Override maven and ivy publishing aware context (vor 4 Tagen) <Ilya Goncharov> *58284c8b08- [Gradle, JS] Add yarn resolution gradle integration test (vor 4 Tagen) <Ilya Goncharov> *9df604cb3d- [Gradle, JS] Migrate on set for npm ranges (vor 4 Tagen) <Ilya Goncharov> *1dd92f011c- [Gradle, JS] Compare range lists as sets (vor 4 Tagen) <Ilya Goncharov> *50ccb522b9- [Gradle, JS] Add intersect tests (vor 4 Tagen) <Ilya Goncharov> *bd01ac52af- [Gradle, JS] Add union test with fixed issue in union method (vor 4 Tagen) <Ilya Goncharov> *7aaa1cf556- [Gradle, JS] Add invert test (vor 4 Tagen) <Ilya Goncharov> *9b8a64ef7b- [Gradle, JS] Add hasIntersection test (vor 4 Tagen) <Ilya Goncharov> *814c0b73e3- [Gradle, JS] Add doc into NpmRange (vor 4 Tagen) <Ilya Goncharov> *dc7d7135f8- [Gradle, JS] Add min start, max end, min end tests (vor 4 Tagen) <Ilya Goncharov> *c25bcb4028- [Gradle, JS] Add max start test (vor 4 Tagen) <Ilya Goncharov> *42090e4839- [Gradle, JS] Add failing test (vor 4 Tagen) <Ilya Goncharov> *d4524e4050- [Gradle, JS] Small refactoring (vor 4 Tagen) <Ilya Goncharov> *b95eb66032- [Gradle, JS] RejectAll => reject wildcard (vor 4 Tagen) <Ilya Goncharov> *d4c0d62eeb- [Gradle, JS] Require version use caret (vor 4 Tagen) <Ilya Goncharov> *3ed42d394b- [Gradle, JS] Support hyphenated range (vor 4 Tagen) <Ilya Goncharov> *a4de85da13- [Gradle, JS] Right wildcard range (vor 4 Tagen) <Ilya Goncharov> *f848b7cbeb- [Gradle, JS] Right equals and hashCode for npm range (vor 4 Tagen) <Ilya Goncharov> *68880e6f47- [Gradle, JS] NpmRangeVisitor without nulls (vor 4 Tagen) <Ilya Goncharov> *7f3a2ac953- [Gradle, JS] Renames (vor 4 Tagen) <Ilya Goncharov> *fec8c6c0ae- [Gradle, JS] Min and max are not nullable (vor 4 Tagen) <Ilya Goncharov> *966c9dae68- [Gradle, JS] Use not inverted visitor but straightforward visitor (vor 4 Tagen) <Ilya Goncharov> *9bb49ac370- [Gradle, JS] Union of Npm Ranges (vor 4 Tagen) <Ilya Goncharov> *14fac83e2b- [Gradle, JS] Intersect of NpmRange (vor 4 Tagen) <Ilya Goncharov> *90bee78dda- [Gradle, JS] None range instead of none version (vor 4 Tagen) <Ilya Goncharov> *f1b8c62231- [Gradle, JS] Use rejected versions (vor 4 Tagen) <Ilya Goncharov> *d232e2ceb3- [Gradle, JS] Add ANTLR visitor for inverting of npm versions (vor 4 Tagen) <Ilya Goncharov> *768b9a0340- [Gradle, JS] Use NpmVersionConstraint (vor 4 Tagen) <Ilya Goncharov> *bb569f36b1- [Gradle, JS] Implement reason and other methods beside version (vor 4 Tagen) <Ilya Goncharov> *30f78847b1- [Gradle, JS] Not publish npm dependency constraints in metadata (vor 4 Tagen) <Ilya Goncharov> *0473648b0e- [Gradle, JS] Use gradle dependency constraints for yarn resolutions (vor 4 Tagen) <Ilya Goncharov> *7d883f1806- (tag: build-1.4.20-dev-3498, tag: build-1.4.20-dev-3497) FIR Completion: Add idea-fir dependency to run completion tests (vor 4 Tagen) <Roman Golyshev> *31e4ddafd1- (tag: build-1.4.20-dev-3496) Minor. Add test with boolean parameter (vor 4 Tagen) <Ilmir Usmanov> *bcbb050326- Use fields for spilled variables for lambda parameters as well (vor 4 Tagen) <Ilmir Usmanov> *f5ab3a445f- (tag: build-1.4.20-dev-3491) [Gradle, JS] Fix abstract task on default (vor 4 Tagen) <Ilya Goncharov> *9ecf416a8a- (tag: build-1.4.20-dev-3490, tag: build-1.4.20-dev-3482, tag: build-1.4.20-dev-3481) Parse multiple buildTypeIds for one bunch and synchronize muted tests (vor 4 Tagen) <Yunir Salimzyanov> *aafe41cf7a- (tag: build-1.4.20-dev-3474, tag: build-1.4.20-dev-3472) Do not force coercion to Unit for nullable lambda return type (vor 4 Tagen) <Mikhail Zarechenskiy> *d9bac4d5e4- (tag: build-1.4.20-dev-3462) Build: Warn about empty directories in sources (vor 5 Tagen) <Vyacheslav Gerasimov> *27578e6056- (tag: build-1.4.20-dev-3454) Build: Upgrade gradle to 6.6 (vor 5 Tagen) <Vyacheslav Gerasimov> *166b6db764- (tag: build-1.4.20-dev-3452) Make keyword lookup objects correctly comparable (vor 5 Tagen) <Roman Golyshev> *18ae665d41- IR: make IrCall take IrSimpleFunctionSymbol (vor 5 Tagen) <Georgy Bronnikov> *4901cdb11f- ConvertCallChainIntoSequence: support functions added in Kotlin 1.4 (vor 5 Tagen) <Toshiaki Kameyama> *5e91ffb156- Move to class body: don't suggest on data class (vor 5 Tagen) <Toshiaki Kameyama> *28700ed64c- (tag: build-1.4.20-dev-3438) [FIR] Supertype and inheritance checkers group (vor 5 Tagen) <Nick> *252eb1ad23- (tag: build-1.4.20-dev-3431) [FIR] Fix typo in FirDataFlowAnalyzer (vor 5 Tagen) <Oleg Ivanov> *e3bbc54e85- Add change-notes for 1.4 (vor 5 Tagen) <Anton Yalyshev> *21b8679799- (tag: build-1.4.20-dev-3425, tag: build-1.4.20-dev-3424, tag: build-1.4.20-dev-3422) [FIR] Add ReturnsImplies effect analyzer (vor 5 Tagen) <Oleg Ivanov> *3454ae7ca4- [FIR] Add VariableStorage and flow on nodes into CFG reference (vor 5 Tagen) <Oleg Ivanov> *15598b62c9- [FIR] Add replaceControlFlowGraphReference function for FirFunction (vor 5 Tagen) <Oleg Ivanov> *7da94cc299- [FIR] Fix wrong ConstantReference for returnsNotNull in EffectExtractor (vor 5 Tagen) <Oleg Ivanov> *f6f3787b51- (tag: build-1.4.20-dev-3421) Disable FUS for Code Completion in 1.4.20 (vor 5 Tagen) <Anton Yalyshev> *20371b874a- (tag: build-1.4.20-dev-3416) Configuration caching - register listener only once per project (vor 6 Tagen) <Andrey Uskov> *d2fda2a07c- Fir2Ir: bug fix (vor 6 Tagen) <Georgy Bronnikov> *8a098545e6- (tag: build-1.4.20-dev-3413) Minor. Add test (vor 6 Tagen) <Ilmir Usmanov> *00bf07fc41- Force boxing kotlin.Result return type of suspend functions (vor 6 Tagen) <Ilmir Usmanov> *b06218c456- (tag: build-1.4.20-dev-3411) Minor. Update test data (vor 6 Tagen) <Ilmir Usmanov> *f21d8a4c5b- (tag: build-1.4.20-dev-3398) JVM_IR, minor: use vals instead of objects (vor 6 Tagen) <Georgy Bronnikov> *6e016ce041- (tag: build-1.4.20-dev-3395) ktFile has to return script declaration from stub as well (vor 6 Tagen) <Vladimir Dolzhenko> *4367d6631f- (tag: build-1.4.20-dev-3389) [FIR] Add CallsInPlace contract analyzer (vor 6 Tagen) <Oleg Ivanov> *cc9c5b9e3c- [FIR] Add CFG nodes, add multiple subGraphs for CFGOwner (vor 6 Tagen) <Oleg Ivanov> *128075e780- [FIR] Add fir source saving in resolved contract description (vor 6 Tagen) <Oleg Ivanov> *f467dccc68- [FIR] Rename confusing variable in CFGTraverser (vor 6 Tagen) <Oleg Ivanov> *bcf1ee3907- Minor, fix test data for kotlinx.serialization bytecode text test (vor 6 Tagen) <Alexander Udalov> *53fe30eb45- JVM IR: Don't produce CHECKCASTs on null constants (KT-36650) (vor 6 Tagen) <Steven Schäfer> *7503f134c2- (tag: build-1.4.20-dev-3386) IR: use IdSignature to compare classes in FqNameEqualityChecker (vor 6 Tagen) <Alexander Udalov> *36a1a65d98- IR: make IrBranch/IrCatch/IrSpreadElement/IrModuleFragment/IrPackageFragment classes (vor 6 Tagen) <Alexander Udalov> *08a35f0674- IR: make IrBody and subtypes classes (vor 6 Tagen) <Alexander Udalov> *4351f5235b- IR: make IrExpression and subtypes classes (vor 6 Tagen) <Alexander Udalov> *ba7ff36274- IR: make IrDeclarationReference and subtypes classes (vor 6 Tagen) <Alexander Udalov> *ee904a975a- IR: make IrMemberAccessExpression and subtypes classes (vor 6 Tagen) <Alexander Udalov> *fde7314aaf- IR: do not inherit IrExpressionWithCopy from IrExpression (vor 6 Tagen) <Alexander Udalov> *9aa7da44e2- IR: remove IrTerminalExpressionBase, Ir{Terminal,}DeclarationReferenceBase (vor 6 Tagen) <Alexander Udalov> *868018f51f- IR: do not inherit IrFunctionReferenceImpl from IrCallWithIndexedArgumentsBase (vor 6 Tagen) <Alexander Udalov> *e3dfd5fb49- IR: push down implementations of startOffset/endOffset/type/... (vor 6 Tagen) <Alexander Udalov> *03f804b1c5- (tag: build-1.4.20-dev-3384) FIR Completion: Move completion files to `idea-fir` module (vor 6 Tagen) <Roman Golyshev> *d861373c6d- (tag: build-1.4.20-dev-3373, tag: build-1.4.20-dev-3372) Hack attributes for continuation of suspend function in SAM-adapter (vor 6 Tagen) <Ilmir Usmanov> *2e131b870a- (tag: build-1.4.20-dev-3371) Add tests for obsolete issues (vor 6 Tagen) <Mikhail Zarechenskiy> *7f4df19dd1- (tag: build-1.4.20-dev-3369, tag: build-1.4.20-dev-3368) JVM_IR: reorganize throw... functions in Symbols (vor 6 Tagen) <Georgy Bronnikov> *6a16d6a246- (tag: build-1.4.20-dev-3367) FIR: Simplify delegating constructors call resolution (vor 6 Tagen) <Denis Zharkov> *8b71f5e558- FIR: Do not leave cyclic upper bounds of type parameters (vor 6 Tagen) <Denis Zharkov> *a5a93d00a7- FIR: Rework delegation constructor calls resolution (vor 6 Tagen) <Denis Zharkov> *db93b9052b- FIR: Fix incorrect optimization for integer literals (vor 6 Tagen) <Denis Zharkov> *ad8709b2dc- (tag: build-1.4.20-dev-3361) Build: Remove exclusion of kotlinx-coroutines-core in scripting-common (vor 7 Tagen) <Vyacheslav Gerasimov> *8540f47c15- (tag: build-1.4.20-dev-3357) Fixed FindUsages case on look up implementation getter/setters via property names (vor 7 Tagen) <Vladimir Dolzhenko> *e49cdf0ca2- (tag: build-1.4.20-dev-3356) Prohibit using `suspend` functions as SAM in `fun` interfaces (vor 7 Tagen) <Mikhail Zarechenskiy> *607f99ed3c- (tag: build-1.4.20-dev-3353) Don't generate implicit overrides delegating to Java defaults (vor 7 Tagen) <Mikhael Bogdanov> *07aee8831e- (tag: build-1.4.20-dev-3352, tag: build-1.4.20-dev-3350) Fix stdlib-by-default with non-compiled source sets (KT-40559) (vor 7 Tagen) <Sergey Igushkin> *6e2887e083- (tag: build-1.4.20-dev-3347) FIR Completion: Add insertion handling for functions with lambdas (vor 7 Tagen) <Roman Golyshev> *b3a674abee- FIR IDE: Add parameter's and type's properties required for completion (vor 7 Tagen) <Roman Golyshev> *67ed33367f- FIR Completion: Add function insert handler (vor 7 Tagen) <Roman Golyshev> *b547feb00d- FIR Completion: Render `vararg` modifier in lookups (vor 7 Tagen) <Roman Golyshev> *582b00f5b2- FIR Completion: Add `UniqueLookupElement` to the lookup elements (vor 7 Tagen) <Roman Golyshev> *b6ee478190- FIR Completion: Add psi element to the lookups (vor 7 Tagen) <Roman Golyshev> *53180e707e- FIR Completion: Fix invalid `isAbstract` condition (vor 7 Tagen) <Roman Golyshev> *ef461260b0- FIR Completion: Add simple insertion handler to lookup elements (vor 7 Tagen) <Roman Golyshev> *10598ee98e- FIR Completion: Add simple lookup decorating with icon and parameters (vor 7 Tagen) <Roman Golyshev> *64187b40c9- FIR Completion: Prevent immediate completion in number literals (vor 7 Tagen) <Roman Golyshev> *d86c14243e- (tag: build-1.4.20-dev-3346) Add @SinceKotlin to kotlinx.browser and kotlinx.dom packages (vor 7 Tagen) <Alexey Trilis> *0e53d11dd4- (tag: build-1.4.20-dev-3345) Disable AllowResultInReturnType feature (vor 7 Tagen) <Dmitriy Novozhilov> *30ff886754- (tag: build-1.4.20-dev-3341) Improve docs for createTempDir/createTempFile (vor 7 Tagen) <Valeriy.Vyrva> *4fe6880489- (tag: build-1.4.20-dev-3328) Cyrillic 'c' fix in inspectionLikeProcessings.kt (vor 7 Tagen) <Vladimir Ilmov> *0a2f113a24- (tag: build-1.4.20-dev-3324) [FIR] Fix slow string conversions in FirEffectiveVisibilityResolver (vor 7 Tagen) <Nick> *e67518c349- (tag: build-1.4.20-dev-3313) Update gradle plugin version in GradleFacetImportTest (vor 7 Tagen) <Alexander Dudinsky> *f431da2a66- (tag: build-1.4.20-dev-3312) Reapply "Introduce @FrontendInternals annotation"" (vor 7 Tagen) <Pavel Kirpichenkov> *5e8e60a399- (tag: build-1.4.20-dev-3310) Move back the 'KotlinStructureViewElement.isPublic' property used externally (vor 7 Tagen) <Yan Zhulanow> *aec87744f2- Run `ImportAndCheckNavigation` tests only vs the master version of plugin (vor 7 Tagen) <Alexander Dudinsky> *2042db598a- Mute `GradleNativeLibrariesInIDENamingTest.testLibrariesNaming` in 192, 193 (vor 7 Tagen) <Alexander Dudinsky> *988480d649- (tag: build-1.4.20-dev-3308) Fix source JARs missing in Kotlin/Native targets with HMPP (KT-39051) (vor 7 Tagen) <Sergey Igushkin> *a766369e72- (tag: build-1.4.20-dev-3305) KT-33908 Make Kotlin Gradle plugin compatible with configuration cache (vor 7 Tagen) <Nataliya Valtman> *ea57b4cccb- (tag: build-1.4.20-dev-3302) IR: add and unmute tests (vor 7 Tagen) <Georgy Bronnikov> *85ba170217- JVM_IR: use IrBasedDescriptors across codegen (vor 7 Tagen) <Georgy Bronnikov> *0b4c43083d- IR: add IrBasedDescriptors (vor 7 Tagen) <Georgy Bronnikov> *dafcdc527d- IR: propagate original declaration info via attributeOwnerId (vor 7 Tagen) <Georgy Bronnikov> *04d93dfbce- IR: move containerSource from descriptor to IrFunction, IrProperty (vor 7 Tagen) <Georgy Bronnikov> *4669e019d1- (tag: build-1.4.20-dev-3301) [FIR] Add diagnostic CONFLICTING_OVERLOADS & REDECLARATION (vor 7 Tagen) <Nick>
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 (Xcode 11.5 is required to compile Kotlin/Native from sources)
- 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.