*37002748c8- (tag: build-1.3.50-dev-1913) Do not wrap and display cause's message in compiler exceptions (3 дня назад) <Alexander Udalov> *430aed6559- (tag: build-1.3.50-dev-1909) Minor: clean up code (3 дня назад) <Dmitry Gridin> *1f89c0f730- "Convert to sealed class" intention: don't suggest when no "class" keyword (3 дня назад) <Toshiaki Kameyama> *9786564d75- (tag: build-1.3.50-dev-1908) "Remove argument name" intention: remove array literal brackets for annotation vararg argument (3 дня назад) <Toshiaki Kameyama> *d33d1913cb- (tag: build-1.3.50-dev-1907, tag: build-1.3.50-dev-1904) Not throw exception when cidr has been registered already (3 дня назад) <Juan Chen> *9f6e88d571- Formatter: format around safe cast operator `as?` (KT-32324) (3 дня назад) <Toshiaki Kameyama> *44e9090931- Formatter: format between type reference and 'by' keyword (KT-32277) (3 дня назад) <Toshiaki Kameyama> *0b8f35c04d- (tag: build-1.3.50-dev-1896) Revert "Register mock injection language manager in compiler" (3 дня назад) <Nikolay Krasko> *f9b53da0fa- (tag: build-1.3.50-dev-1895) Attempt to fix some inspection tests (3 дня назад) <Dmitry Gridin> *8a569cc698- (tag: build-1.3.50-dev-1888) [JS IR BE] Do not create `$default` stub for external function and any its fake override (4 дня назад) <Roman Artemev> *28a108a205- [JS IR BE] Visit callable reference members in private member lowering (4 дня назад) <Roman Artemev> *b4c68025a7- [JS IR BE] Improve error reporting (4 дня назад) <Roman Artemev> *940c9e5604- (tag: build-1.3.50-dev-1885) 192: build against IDEA 192.5587.17 (4 дня назад) <Vyacheslav Karpukhin> *a2625c7bc8- (tag: build-1.3.50-dev-1882) [JS IR BE] Don't render null messages in Throwable (4 дня назад) <Svyatoslav Kuzmich> *94aebd0101- (tag: build-1.3.50-dev-1880) [JS IR BE] Proper support for String and Any constructors (4 дня назад) <Svyatoslav Kuzmich> *d7cb3e05ef- (tag: build-1.3.50-dev-1878, origin/rr/romart/cityhash_js) [JS IR BE] Replace 32bit default String.hashcode with 64bit cityhash for UniqID Split uniqID space into two part 63 bit each. (4 дня назад) <Roman Artemev> *46eb929bd1- (tag: build-1.3.50-dev-1872) ControlFlowWithEmptyBodyInspection: shouldn't report on `while` with comments #KT-32419 Fixed (4 дня назад) <Dmitry Gridin> *6e750b0857- (tag: build-1.3.50-dev-1869) Enable API watcher in Kotlin (4 дня назад) <Nikolay Krasko> *ef90353831- Another test-runtime java plugin dependency (4 дня назад) <Nikolay Krasko> *5d081efe60- (tag: build-1.3.50-dev-1867) Uast: tests for no implicit returns in lambdas (KT-32370) (4 дня назад) <Nicolay Mitropolsky> *a180d78eaf- Uast: implicit returns for local function bodies (KT-32370) (4 дня назад) <Nicolay Mitropolsky> *f85ebe7f43- Uast: implicit returns for lambda expressions (KT-32370) (4 дня назад) <Nicolay Mitropolsky> *631a09e541- (tag: build-1.3.50-dev-1859) [JS IR BE] ThrowableLowering: Use dynamic operators instead of jsSetJSField intrinsic (5 дней назад) <Svyatoslav Kuzmich> *871180cdc0- [JS IR BE] Fix setting names of Throwable subclasses without primary constructor (5 дней назад) <Svyatoslav Kuzmich> *918d470e1b- [JS IR BE] Simplify throwable lowering. (5 дней назад) <Svyatoslav Kuzmich> *6d1f893a5a- [JS IR BE] Move object instance creation lowerings to IR (5 дней назад) <Svyatoslav Kuzmich> *5dcb0ee016- [JS IR BE] Reduce JsScope usage in codegen (5 дней назад) <Svyatoslav Kuzmich> *a9c8fd903b- reduce calls to Object.hashCode originating from LabelNormailizationMethodTransformer (5 дней назад) <Jeffrey van Gogh> *361c468c33- (tag: build-1.3.50-dev-1857) IR: move type utilities from IrTypeUtils.kt to irTypePredicates.kt (5 дней назад) <Alexander Udalov> *7c6f48df39- (tag: build-1.3.50-dev-1854, tag: build-1.3.50-dev-1841, tag: build-1.3.50-dev-1831) Revert "Set sourceCompatibility and targetCompatibility for JavaCompile tasks" (5 дней назад) <Alexey Tsvetkov> *2a3bb2968e- Revert "Call configureJvmProject once per project in afterEvaluate" (5 дней назад) <Alexey Tsvetkov> *ab6174defd- Revert "Check JDK env vars once during configuration when not syncing" (5 дней назад) <Alexey Tsvetkov> *aa7aff84fc- Revert "Do not fork java compile tasks when current JDK can be used" (5 дней назад) <Alexey Tsvetkov> *9340bffd02- (tag: build-1.3.50-dev-1829) Revert "Add ext.jvmTarget and ext.javaHome to core:descriptors.runtime" (5 дней назад) <Alexey Tsvetkov> *1a290621b0- (tag: build-1.3.50-dev-1825) Minor. Update multiplatform kotlin plugin version in HMPP tests (5 дней назад) <Andrey Uskov> *e079615cdf- (tag: build-1.3.50-dev-1816) Add possibility to edit target platform for non-HMPP projects in order to keep ability to edit target platform for IDEA-based projects (6 дней назад) <Andrey Uskov> *efb0e692ae- Minor. Reformat KotlinFacetEditorGeneralTab (6 дней назад) <Andrey Uskov> *9fc60be9d8- Fix serialization of facet settings in order to read properly settings of native platforms (6 дней назад) <Andrey Uskov> *404ce1a8c1- Facet serialization changed in order to keep compatibility with previous versions of Kotlin plugin (6 дней назад) <Andrey Uskov> *87e75bd4cc- HMPP: fix importing target platforms for case when JVM targets are involved (6 дней назад) <Andrey Uskov> *8445e3a2a4- HMPP: add importing tests (6 дней назад) <Andrey Uskov> *8280c647af- HMPP: Migration of source root types for middle HMPP source sets fixed (6 дней назад) <Andrey Uskov> *90187c959e- Add test for 'isHMPP' flag (6 дней назад) <Andrey Uskov> *e791b9d3f7- HMPP: import flag indicating that the project uses HMPP feature (6 дней назад) <Andrey Uskov> *35dea296fa- Add ext.jvmTarget and ext.javaHome to core:descriptors.runtime (6 дней назад) <Alexey Tsvetkov> *d3f9d0866a- (tag: build-1.3.50-dev-1803, tag: build-1.3.50-dev-1800, tag: build-1.3.50-dev-1797, tag: build-1.3.50-dev-1790) Build: Improve cache redirector usage in buildSrc settings.gradle (6 дней назад) <Vyacheslav Gerasimov> *8b05d4df46- (tag: build-1.3.50-dev-1787) More NoClassDefFoundError fixes in tests after 192 update (6 дней назад) <Nikolay Krasko> *ba64600ee5- (tag: build-1.3.50-dev-1784) Gradle: Make K/N properties uniform with other Kotlin properties (6 дней назад) <Ilya Matveev> *fd1fc7d28a- Gradle: Support K/N restricted distribution (6 дней назад) <Ilya Matveev> *35d7fff035- Gradle: Fix input annotation for the Webpack task (6 дней назад) <Ilya Matveev> *f2021b580e- (tag: build-1.3.50-dev-1782) Do not fork java compile tasks when current JDK can be used (6 дней назад) <Alexey Tsvetkov> *48b86bba69- Check JDK env vars once during configuration when not syncing (6 дней назад) <Alexey Tsvetkov> *33de71f792- Call configureJvmProject once per project in afterEvaluate (6 дней назад) <Alexey Tsvetkov> *290aded94f- Set sourceCompatibility and targetCompatibility for JavaCompile tasks (6 дней назад) <Alexey Tsvetkov> *f8035096ea- (tag: build-1.3.50-dev-1781) JS: lock tape version to avoid kotlin.test + tape integration test failure (6 дней назад) <Anton Bannykh> *60ac2056bd- (tag: build-1.3.50-dev-1780, tag: build-1.3.50-dev-1777) Update diagnostic message in test data (6 дней назад) <Mikhail Zarechenskiy> *a67c3ef855- Update 183 branch to 183.6156.11 (6 дней назад) <Nikolay Krasko> *2d85d18a74- Minor: add more exceptions to project dictionary (6 дней назад) <Nikolay Krasko> *28a45909a0- Fix compatibility with 192 branch (KT-32364) (6 дней назад) <Nikolay Krasko> *ba2ca5ae3c- Fallback to simple oocb when per-language trackers are disabled (KT-32364) (6 дней назад) <Nikolay Krasko> *f605d4e73b- Revise per module out-of-code-block (KT-32364) (6 дней назад) <Nikolay Krasko> *73eea6f4b6- Minor: rename file before refactoring (6 дней назад) <Nikolay Krasko> *4f678c8289- Create project service with Kotlin trackers (KT-32364) (6 дней назад) <Nikolay Krasko> *263d8eea16- Use Kotlin oocb instead of platform oocb tracker (KT-32364) (6 дней назад) <Nikolay Krasko> *557ea54a9f- Introduce Kotlin specific out-of-code-block tracker (KT-32364) (6 дней назад) <Nikolay Krasko> *12bb1a5bd1- Make invalidateOnOOCB explicit in ResolverForProjectImpl and remove usage in tests (6 дней назад) <Nikolay Krasko> *b32b362810- Extract KotlinModuleModificationTracker to separate file (6 дней назад) <Nikolay Krasko> *26c7eddb03- Move trackers to caches.trackers package (6 дней назад) <Nikolay Krasko> *2ddcd9f0af- Minor: cleanup and reformat KotlinCodeBlockModificationListener.kt (6 дней назад) <Nikolay Krasko> *2029d16062- (tag: build-1.3.50-dev-1776, tag: build-1.3.50-dev-1773) Add add-imports performance tests Add missed auto generated perf tests (6 дней назад) <Vladimir Dolzhenko> *57a732c247- (tag: build-1.3.50-dev-1769) Minor: fixes after review (6 дней назад) <Dmitry Gridin> *9316f45a5c- Optimize Imports: improve tooltip information #KT-21374 Fixed (6 дней назад) <Dmitry Gridin> *074829bcea- Import: IDE should import class from root package #KT-21422 Fixed (6 дней назад) <Dmitry Gridin> *148eed2a12- ShortenReferences: fix false negative for object call chain #KT-32320 Fixed (6 дней назад) <Dmitry Gridin> *33914a3a94- ImportMemberIntention: make more flexible based on caret position #KT-31924 Fixed (6 дней назад) <Dmitry Gridin> *6f2f60869c- (tag: build-1.3.50-dev-1767) Minor: Don't create unnecessary PluginId instances (6 дней назад) <Dmitriy Dolovov> *208c8f9339- (tag: build-1.3.50-dev-1759, origin/4u7/compare-dist) JS: fix bootstrap (7 дней назад) <Anton Bannykh> *69962cbf8c- (tag: build-1.3.50-dev-1756) [JS IR BE] Add JsExport annotations (7 дней назад) <Svyatoslav Kuzmich> *685597d20a- [JS IR BE] Codegen class model refactorings (7 дней назад) <Svyatoslav Kuzmich> *e7a5e5b4a0- (tag: build-1.3.50-dev-1748) JVM_IR: Handle annotation KClass fields in external declarations (7 дней назад) <Steven Schäfer> *1ab0b76af3- (tag: build-1.3.50-dev-1747) Minor: use more descriptive argument name (7 дней назад) <Steven Schäfer> *078ccbf077- JVM_IR: Implement name mangling exceptions for Result class. (7 дней назад) <Steven Schäfer> *d458e4a7b2- JVM_IR: Enable inlining for external declarations with inline class parameters. (7 дней назад) <Steven Schäfer> *da86ef8454- (tag: build-1.3.50-dev-1746, origin/selezneva/forpush) Fix tests for long command line: create folder instead of file (7 дней назад) <Natalia Selezneva> *30222582f4- Scratch tests: print test output at onFinish to avoid multiple calls of invokeLater (7 дней назад) <Natalia Selezneva> *85f07927c9- Minor: check output with errors in scratch tests (7 дней назад) <Natalia Selezneva> *784cc17d21- Do not use deprecated UIUtil.invokeLaterIfNeeded. Use TransactionGuard instead (7 дней назад) <Natalia Selezneva> *63246f57d2- Scripts: drop sdk caches on project root change event (7 дней назад) <Natalia Selezneva> *d981135c4b- Scratch: finish execution if no new lines was executed (7 дней назад) <Natalia Selezneva> *7ef9fb5511- (tag: build-1.3.50-dev-1743) Export deserialization constructor from JS module (7 дней назад) <Leonid Startsev>
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.