*1d9967013b- (tag: build-1.4.0-dev-5946) [JS IR IC] Mute failing test (vor 8 Stunden) <Roman Artemev> *766b8bf74b- [KLIB MPP] Mute broken test (vor 8 Stunden) <Roman Artemev> *cd931796bc- [SERIALIZATION] Fix kotlinx.serialization plugin (vor 8 Stunden) <Roman Artemev> *a9788f9506- [KLIB] Create an abstract class for module deserializer (vor 8 Stunden) <Roman Artemev> *74132fbc03- [KLIB] Fix IO API (vor 8 Stunden) <Roman Artemev> *5385e0cf1c- [IR] Un-private stub generator (vor 8 Stunden) <Roman Artemev> *db565ee238- [IR] Fix equals/hachCode for FileLocalSignature (vor 8 Stunden) <Roman Artemev> *ce2ae58ffb- (tag: build-1.4.0-dev-5935) use gradle execOperation and set args in file (vor 20 Stunden) <nataliya.valtman> *cfdcbe5b71- (tag: build-1.4.0-dev-5934) Remove local declarations from Project View model (vor 21 Stunden) <Igor Yakovlev> *0df54946d9- Add Project View and Navigation Bar enhancements (vor 21 Stunden) <Igor Yakovlev> *ca10c40e05- Remove anonymous declarations from Structure View (vor 21 Stunden) <Igor Yakovlev> *d4e043c3e8- Fix visibility and expect/actual icons of the PsiElements (vor 21 Stunden) <Igor Yakovlev> *185b0be76c- Add constructors icon to ProjectView (vor 21 Stunden) <Igor Yakovlev> *276c393141- (tag: build-1.4.0-dev-5931) [FIR] Support captured type parameters in java symbol provider (vor 22 Stunden) <simon.ogorodnik> *af27ca013b- [FIR] Fix captured type parameters propagation in deserialization (vor 22 Stunden) <simon.ogorodnik> *356e42196c- [FIR2IR] Fix inner class constructor receiver parameter type (vor 22 Stunden) <simon.ogorodnik> *0e21ac8ed2- [FIR] Apply BAD testData changes after type parameters support (vor 22 Stunden) <simon.ogorodnik> *132c8ee210- [FIR] Apply GOOD testData changes after type parameters support (vor 22 Stunden) <simon.ogorodnik> *797b58669b- [FIR] Support captured type parameters in lightTree2fir (vor 22 Stunden) <simon.ogorodnik> *9db69c0b08- [FIR2IR] Fix type arguments in generated this receiver (vor 22 Stunden) <simon.ogorodnik> *861cc6ee20- [FIR] Fix default constructors in jvm mapped scope (vor 22 Stunden) <simon.ogorodnik> *21ede8b745- [FIR] Add test for inner class type parameter capturing (vor 22 Stunden) <simon.ogorodnik> *b72d0957e4- [FIR] Support captured type arguments of anonymous objects in resolve (vor 22 Stunden) <simon.ogorodnik> *2b114dd2b4- [FIR] Fix fake overrides callable id (vor 22 Stunden) <simon.ogorodnik> *c2ea0676e4- [FIR] Split functions & constructors processing (vor 22 Stunden) <simon.ogorodnik> *7a1ecabe0a- [FIR2IR] Use deepest matching symbol on fake override calls (vor 22 Stunden) <simon.ogorodnik> *d55c6550bb- [FIR] Add substitution to classifiers processing (vor 22 Stunden) <simon.ogorodnik> *cd4a7a25c3- [FIR] Match ordering of type arguments with type parameters (vor 22 Stunden) <simon.ogorodnik> *27537f71df- [FIR] Use constructed class type parameters refs in java symbol provider (vor 22 Stunden) <simon.ogorodnik> *1d249ad279- [FIR] Use constructed class type parameters refs in deserialization (vor 22 Stunden) <simon.ogorodnik> *ec39cd3d31- [FIR] Use captured, constructed class type parameters in RawFirBuilder (vor 22 Stunden) <simon.ogorodnik> *f174893009- [FIR] Add kotlinx-collections-immutable to raw fir builders (vor 22 Stunden) <simon.ogorodnik> *49d361b6eb- [FIR] Improve type-parameter rendering in html dump (vor 22 Stunden) <simon.ogorodnik> *cb00a4c136- [FIR] Update type parameter use-sites to use type parameter refs (vor 22 Stunden) <simon.ogorodnik> *7c56209cef- [FIR] Introduce type parameter ref in generated tree (vor 22 Stunden) <simon.ogorodnik> *0f7a9c44b4- (tag: build-1.4.0-dev-5930) Minor: sort excluded files and dirs in conformance test (vor 23 Stunden) <Nikolay Krasko> *dbbb81c78d- 201: Minor: remove author to fix conformance test (vor 23 Stunden) <Nikolay Krasko> *626c94c54d- (tag: build-1.4.0-dev-5926, tag: build-1.4-M2-eap-6, tag: build-1.4-M2-eap-5, origin/1.4-M2) [IR] Fixed bug with redundant creation of Ref<> in inline lambdas (vor 24 Stunden) <Igor Chevdar> *c8fe842508- (tag: build-1.4.0-dev-5925) Add FUS collector for Migration tool (vor 25 Stunden) <Anton Yalyshev> *fd9bec81cf- (tag: build-1.4.0-dev-5924, tag: build-1.4-M2-eap-2, origin/rrr/1.4.0/test2) JPS: provide SourcesPreprocessor extension point (vor 25 Stunden) <Sergey Rostov> *b6cf08d097- (tag: build-1.4.0-dev-5922) [FIR2IR] Extract createIrSyntheticFunction/Parameter from data class gen (vor 25 Stunden) <Mikhail Glukhikh> *4f1caf24a1- [FIR2IR] Minor: eliminate warning about list under the hood (vor 25 Stunden) <Mikhail Glukhikh> *6827280521- [FIR2IR] Reuse declareThisReceiverParameter in DataClassMembersGenerator (vor 25 Stunden) <Mikhail Glukhikh> *c370b86141- IR: consolidate generation of synthetic members for data class (vor 25 Stunden) <Jinseong Jeon> *1500131eb0- (tag: build-1.4.0-dev-5921) [FIR2IR] Re-use applyCallArguments for IrDelegatedConstructorCall (vor 26 Stunden) <Mikhail Glukhikh> *1ba160b3de- [FIR] Apply argument mapping to delegated constructor calls (vor 26 Stunden) <Mikhail Glukhikh> *734ddc0369- [FIR] Rename: selectCandidateFrom... -> selectDelegatingConstructorCall (vor 26 Stunden) <Mikhail Glukhikh> *e954aea4cc- [FIR2IR] Support argument reordering of constructor calls (vor 26 Stunden) <Juan Chen> *bae41ddf6d- [FIR2IR] Introduce IrBlock for reordering arguments if needed (vor 26 Stunden) <Juan Chen> *acc5633811- (tag: build-1.4.0-dev-5914) [NI] Fix inference of lambda with receiver when wrapped... (vor 27 Stunden) <Ilya Chernikov> *6494a2d902- (tag: build-1.4.0-dev-5908) Invalidate ResolveElementCache on project roots change (vor 28 Stunden) <Vladimir Dolzhenko> *1672ed687b- Add more tests to the maven resolver lib (vor 28 Stunden) <Ilya Chernikov> *5deb759e78- Rewrite new scripting maven resolver directly to eclipse aether (vor 28 Stunden) <Ilya Chernikov> *195a90d333- Cleanup warnings in scripting code (vor 28 Stunden) <Ilya Chernikov> *d863dc04e6- Move compiler scripting tests to scripting plugin, remove unused funs (vor 28 Stunden) <Ilya Chernikov> *cf387ffad1- Remove obsolete source-sections plugin (vor 28 Stunden) <Ilya Chernikov> *f84fd810f0- Simplify and fix classloaders handling on script evaluation (vor 28 Stunden) <Ilya Chernikov> *138efda19f- Refactor scripting - get rid of unused type parameter in CompiledScript (vor 28 Stunden) <Ilya Chernikov> *c64ba50655- Abstract script compiled module implementation used in saving/caching (vor 28 Stunden) <Ilya Chernikov> *278f77713d- Fix default base classloader initialization for scripting hosts (vor 28 Stunden) <Ilya Chernikov> *15d76ae887- [minor] fix findCompiler logic in runner for debuggung (vor 28 Stunden) <Ilya Chernikov> *6a24268db1- Fix scripting discovery file recognition for directory dependencies (vor 28 Stunden) <Ilya Chernikov> *9ccda31189- (tag: build-1.4.0-dev-5905) IR: deal with conflicting variances in computeSubstitutedSyntheticAccessor (vor 28 Stunden) <Georgy Bronnikov> *5700da2bae- IR: type parameter context for return values in InsertImplicitCasts (vor 28 Stunden) <Georgy Bronnikov> *166b506f63- IR: only require all type parameter references to be local with new inference (vor 28 Stunden) <Georgy Bronnikov> *08ff52bee4- (tag: build-1.4.0-dev-5904) Introduce StringBuilder.appendLine in stdlib-common #KT-37839 (vor 28 Stunden) <Abduqodiri Qurbonzoda> *d7667209b2- (tag: build-1.4.0-dev-5885) KT-37144 Respect quotes in package name during decompilation (vor 32 Stunden) <Roman Golyshev> *ec9c7c98cd- (tag: build-1.4.0-dev-5884) Use stubs in reduced js-ir runtime instead of new throwable extensions (vor 33 Stunden) <Ilya Gorbunov> *38b1e6beab- Make Throwable.printStackTrace() common (vor 33 Stunden) <Ilya Gorbunov> *408b441a71- Rename extension toStringWithTrace to stackTraceToString (vor 33 Stunden) <Ilya Gorbunov> *4cc9909a70- Support Firefox stack format (vor 33 Stunden) <Ilya Gorbunov> *641f1a55cb- Omit common stack frames in JS full stack trace (vor 33 Stunden) <Ilya Gorbunov> *5fe8071d71- Prevent infinite recursion in case of circular suppressed chains (vor 33 Stunden) <Ilya Gorbunov> *552bcdb31b- Introduce Throwable.toStringWithTrace (vor 33 Stunden) <Ilya Gorbunov> *7b7263c5bf- Implement common Throwable.addSuppressed/suppressed extensions (vor 33 Stunden) <Ilya Gorbunov> *e8a54d6c75- (tag: build-1.4.0-dev-5882) Fix import of MPP projects in IDEA 2020.1 (vor 34 Stunden) <Andrey Uskov> *22a6cdcc16- (tag: build-1.4.0-dev-5865) Wizard: fix tests (vor 3 Tagen) <Ilya Kirillov> *679ad4ca67- Wizard: fix small ui problems (vor 3 Tagen) <Ilya Kirillov> *63e7520789- Wizard: place build system type components on multiple row when no space left (vor 3 Tagen) <Ilya Kirillov> *7ad7d28d97- Wizard: fix FUS collector for wizard (vor 3 Tagen) <Ilya Kirillov> *e395844567- Wizard: add logging for hyperlink handler (vor 3 Tagen) <Ilya Kirillov> *be6cd4de4a- Wizard: allow creating module without unit test engine & create JPS projects without one by default (vor 3 Tagen) <Ilya Kirillov> *0e199ae94c- Enable new experimental project wizard by default (vor 3 Tagen) <Ilya Kirillov> *e5cc244b36- Wizard: make build system type action dumb aware (vor 3 Tagen) <Ilya Kirillov> *e6a3caa267- Wizard: introduce gradle IR builder (vor 3 Tagen) <Ilya Kirillov> *aa3cdc09fc- Wizard: update libraries versions (vor 3 Tagen) <Ilya Kirillov> *7c011c48dd- Wizard: move hardcoded versions to Versions.kt (vor 3 Tagen) <Ilya Kirillov> *254a978a06- (tag: build-1.4.0-dev-5861) Gradle, native: Forbid parallel in-process compiler execution (vor 3 Tagen) <Ilya Matveev> *f2c05bf82c- (tag: build-1.4.0-dev-5859) IR: Move annotation @JsExport to common source set in stdlib #KT-35966 (vor 4 Tagen) <Abduqodiri Qurbonzoda> *4a7b1b210a- Add onEachIndexed similar to forEachIndexed #KT-37161 (vor 4 Tagen) <Abduqodiri Qurbonzoda> *57d390bab0- (tag: build-1.4.0-dev-5848) Introduce new external listener to avoid failing loading dependencies during new projet creation (vor 4 Tagen) <Natalia Selezneva> *a07f455ae5- (tag: build-1.4.0-dev-5843) Fix unexpected loading for script configurations during branch switch (vor 4 Tagen) <Natalia Selezneva> *936801d744- (tag: build-1.4.0-dev-5835) Fix 191 compilation due to changes in findReferences (vor 4 Tagen) <Vladimir Dolzhenko> *d7226f4952- (tag: build-1.4.0-dev-5834, tag: build-1.4.0-dev-5832) KLIB. Promote KLIB ABI version (vor 4 Tagen) <Dmitriy Dolovov> *101442ad14- KLIB: Store native targets in manifest (vor 4 Tagen) <Dmitriy Dolovov> *1b06256650- KLIB: Add 'native_targets' manifest property (vor 4 Tagen) <Dmitriy Dolovov> *e1c78b31a6- (tag: build-1.4.0-dev-5828) [FIR2IR] Convert explicit receiver in advance (vor 4 Tagen) <Mikhail Glukhikh> *b815cb7e4a- Lift up module platform check and add bunch for 191. (vor 4 Tagen) <Konstantin Tskhovrebov> *27827cd364- (tag: build-1.4.0-dev-5826) New J2K: Convert Number.[type]Value() to Number.to[type]() (#2908) (vor 4 Tagen) <Harry> *cdbc272aca- (tag: build-1.4.0-dev-5825) IDE. Drop redundant test in GradleNativeLibrariesInIDENamingTest (vor 4 Tagen) <Dmitriy Dolovov> *15319eb88e- (tag: build-1.4.0-dev-5818) Implement in-place shuffle for arrays (vor 4 Tagen) <Ilya Gorbunov> *e58f1c8932- Introduce Sequence.shuffled (vor 4 Tagen) <Ilya Gorbunov> *f42d9eefa1- (tag: build-1.4.0-dev-5814) KT-30330 Support KotlinNothingValueException in JVM (vor 4 Tagen) <Dmitry Petrov> *9941c255b9- KT-30330 KotlinNothingValueException (vor 4 Tagen) <Dmitry Petrov> *6acf9385bd- (tag: build-1.4.0-dev-5812) Add tests for lookup tracker with JS KLIB compiler (vor 5 Tagen) <Alexey Tsvetkov> *1c38466a22- Pass LookupTracker to deserialized scopes in JS KLIB compiler (vor 5 Tagen) <Alexey Tsvetkov> *98f561bbed- Add separate flag to control JS KLIB IC in Gradle (vor 5 Tagen) <Alexey Tsvetkov> *fc9ac67980- (tag: build-1.4.0-dev-5811) Tune parameters of time-sensitive tests (vor 5 Tagen) <Ilya Gorbunov> *b049a55cca- (tag: build-1.4.0-dev-5810) Wizard: remove redundant text from removing module dialog (vor 5 Tagen) <Ilya Kirillov> *ebb225fa4e- (tag: build-1.4.0-dev-5808) [Gradle, Native] Fix CocoaPods plugin regression related with Xcode build (vor 5 Tagen) <Yaroslav Chernyshev> *b51ae78b84- (tag: build-1.4.0-dev-5805) Do not resolve alias imported references on rename (vor 5 Tagen) <Vladimir Dolzhenko> *ac0d34089a- (tag: build-1.4.0-dev-5803) Wizard: add run configuration for Ktor server template (vor 5 Tagen) <Ilya Kirillov> *67f95c21da- Wizard: fix missed setting in Ktor template (vor 5 Tagen) <Ilya Kirillov> *4cfa2f95a7- Wizard: add m2 Gradle plugin repository for non-stable Kotlin versions (vor 5 Tagen) <Ilya Kirillov> *367699a853- Wizard: fix js Gradle dsl (vor 5 Tagen) <Ilya Kirillov> *4e91f1c607- Wizard: update Kotlin version for tests to dev one (vor 5 Tagen) <Ilya Kirillov> *9badcae692- Wizard: move some hardcoded versions to constants (vor 5 Tagen) <Ilya Kirillov> *3de9838a7d- (tag: build-1.4.0-dev-5789, origin/spec-tests) Specify search scope for nj2k ConvertGettersAndSettersToPropertyProcessing (vor 5 Tagen) <Vladimir Dolzhenko> *535fcbb534- (tag: build-1.4.0-dev-5784) Switch android test to common Android SDK dependency management (vor 5 Tagen) <Mikhail Bogdanov> *acb4d6cf63- Update `android-sdk` dependency management. Add Emulator (vor 5 Tagen) <Mikhail Bogdanov> *919a5e7cc7- (tag: build-1.4.0-dev-5783) Update to 201.6668.113 (vor 5 Tagen) <Nikolay Krasko> *e533545c29- (tag: build-1.4.0-dev-5782) Minor, ignore codegen test for JDK 6 (vor 5 Tagen) <Alexander Udalov> *e815227196- (tag: build-1.4.0-dev-5778) Uast: resolve compiled annotation parameters (KT-34564) (vor 5 Tagen) <Nicolay Mitropolsky> *b1bd962464- Uast: kotlinInternalUastUtils.kt reordering to move `internal` functions to the top (vor 5 Tagen) <Nicolay Mitropolsky> *f5df64674f- Uast: making local lambda resolve and methods multiresolve work via `resolveToDeclaration` and `resolveToPsiMethod` (vor 5 Tagen) <Nicolay Mitropolsky> *89863bd2a3- Uast: unifying resolve to two methods `resolveToDeclaration` and `resolveToPsiMethod` (vor 5 Tagen) <Nicolay Mitropolsky> *c3977d7336- Uast: replacing most usages of `resolveCallToDeclaration` with `resolveToPsiMethod` (vor 5 Tagen) <Nicolay Mitropolsky> *ab36e20b1b- Uast: resolving local calls (KT-36275) (vor 5 Tagen) <Nicolay Mitropolsky> *6803b37d14- Uast: Making `AbstractKotlinResolveEverythingTest` test also `UCallExpression` (vor 5 Tagen) <Nicolay Mitropolsky> *63322b9891- (tag: build-1.4.0-dev-5774) Add explicitApiWarning() method (vor 5 Tagen) <Leonid Startsev> *c597e3e87f- (tag: build-1.4.0-dev-5772) Unmute additional FIR black box tests after rebasing (vor 5 Tagen) <Mikhail Glukhikh> *cd5a4900e6- [FIR] Support dispatch & extension receiver in component calls (vor 5 Tagen) <Mikhail Glukhikh> *a93c7a39e0- [FIR] Provide object [dispatch] && callable reference receivers properly (vor 5 Tagen) <Mikhail Glukhikh> *00fedbf6b3- [FIR2IR] Distinguish 'parent' & 'thisReceiver' for fake overrides (vor 5 Tagen) <Mikhail Glukhikh> *4543367c37- [FIR] Add type parameter mapping for substituted properties (vor 5 Tagen) <Mikhail Glukhikh> *fcdbffde3f- [FIR2IR] Support Java synthetic properties (vor 5 Tagen) <Mikhail Glukhikh> *8e3d22a104- [FIR2IR] Enable receiver existence assertion (vor 5 Tagen) <Mikhail Glukhikh> *14731527ed- [FIR] Don't store class functions in local scope (vor 5 Tagen) <Mikhail Glukhikh> *19d0d42b9e- Mute three failing FIR black box tests (vor 5 Tagen) <Mikhail Glukhikh> *ac7d43f06e- [FIR2IR] Don't generate fake overrides with error types (vor 5 Tagen) <Mikhail Glukhikh> *932b03beb2- [FIR2IR] Don't generate fake overrides for another package privates (vor 5 Tagen) <Mikhail Glukhikh> *5c758af0a6- [FIR] Use ScopeSession from resolve transformer in FIR2IR (vor 5 Tagen) <Mikhail Glukhikh> *f775ac8825- (tag: build-1.4.0-dev-5770) Move legacy assert tests to launcher (vor 5 Tagen) <Ilmir Usmanov> *7671de1b20- (tag: build-1.4.0-dev-5767) Disable test run line marker for object classes. (vor 5 Tagen) <Konstantin Tskhovrebov> *7652117e3d- (tag: build-1.4.0-dev-5764) Minor, ignore test on adapted function references for Android (vor 5 Tagen) <Alexander Udalov> *683489687e- (tag: build-1.4.0-dev-5762) Fix NPE in KCallable.isAccessible for interfaces loaded by boot class loader (vor 5 Tagen) <Alexander Udalov> *a7b959b88b- (tag: build-1.4.0-dev-5761) Fix delegated property resolve with intermediate ID provideDelegate (vor 5 Tagen) <Mikhail Zarechenskiy> *0262e9de2f- (tag: build-1.4.0-dev-5759) Look up modules under modal progress in ChooseModulePanel (vor 5 Tagen) <Vladimir Dolzhenko> *91700c9d2c- (tag: build-1.4.0-dev-5757) ReplacementPerformer: fix potential PIEAE (vor 5 Tagen) <Dmitry Gridin> *76a573921e- (tag: build-1.4.0-dev-5754) Fixed Introduce Parameter broken by earlier changes in KotlinParameterInfo (vor 5 Tagen) <Valentin Kipyatkov> *c9509380c3- (tag: build-1.4.0-dev-5748) Wizard: fix NPE on Mac (vor 5 Tagen) <Ilya Kirillov> *9d8d881bff- CallableUsageReplacementStrategy: support `KtSuperTypeCallEntry` (vor 5 Tagen) <Dmitry Gridin> *aec3c22497- ReplacementPerformer: implement `ReplacementPerformer` for `KtSuperTypeCallEntry` (vor 5 Tagen) <Dmitry Gridin>
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.4 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.