Igor Chevdar d6b20598e8 [kotlin compiler][update] 1.3.70-dev-1526
* 9a55f418fa - (tag: build-1.3.70-dev-1526) IR: extract StaticInitializersLowering out of InitializersLowering (15 hours ago) <Alexander Udalov>
* 098561dd5f - IR: cleanup InitializersLowering.kt (15 hours ago) <Alexander Udalov>
* 9772de0088 - JVM IR: generate kotlin.Metadata.packageName value for JvmPackageName files (16 hours ago) <Alexander Udalov>
* 808000e458 - (tag: build-1.3.70-dev-1525) Implement warning when non-abstract classes containing abstract members invisible from that classes (16 hours ago) <Ilya Chernikov>
* eae3688c61 - (tag: build-1.3.70-dev-1524) [FIR] Fix collecting approved data flow info from rhs of boolean operator (16 hours ago) <Dmitriy Novozhilov>
* 8d6cfdf0b1 - [FIR] Fix passing data flow info from while loop condition (16 hours ago) <Dmitriy Novozhilov>
* 7ef13caa33 - [FIR] Add test for ambiguity in nested class constructor call (16 hours ago) <Dmitriy Novozhilov>
* e9551e2022 - [FIR] Don't generate setter by delegate for vals (16 hours ago) <Dmitriy Novozhilov>
* 2f2aa4ae83 - [FIR] Create error type instead of implicit type for incorrect functional types (16 hours ago) <Dmitriy Novozhilov>
* cf61a6c30f - [FIR] Add support of multiple condition branches to exhaustiveness checker (16 hours ago) <Dmitriy Novozhilov>
* 86570a2f91 - [KLIB] Promote ABI version (16 hours ago) <Roman Artemev>
* 63110ab636 - [IR] Remove deprecated `correspondingProperty` from IrField (16 hours ago) <Roman Artemev>
* 646df8d40a - [IR BE] Get rid of descriptor usage in KCallable name property lowering (16 hours ago) <Roman Artemev>
* ec1c2eb42d - [IR] Remove deprecated `correspondingProperty` from IrSimpleFunction (16 hours ago) <Roman Artemev>
* a343a57207 - [IR] Refactor ir infrastructure  - Remove range-based uniq id indexes using to link built ins  - Limit KotlinType usages, replace them with corresponding IrType (16 hours ago) <Roman Artemev>
* 90d07eee53 - [IR] Move wrapped descriptors from `backend.common` to `ir.descriptors` (16 hours ago) <Roman Artemev>
* ed79ab68ab - [IR] Remove DeclarationDescriptor from IrExpression* tree API (16 hours ago) <Roman Artemev>
* d4fc7fcd96 - [IR] Get rid of substituted descriptor from IrMemberAccessExpression interface (16 hours ago) <Roman Artemev>
* b391c066d6 - [IR] Pass class Type Parameters into IrConstructorCall factory explicitly  to avoid unexpected crash on uninitialized parent in psi2ir phase (16 hours ago) <Roman Artemev>
* ba373c67d7 - [IR] Remove FunctionDescriptor from IrCall-like node's constructor interface (16 hours ago) <Roman Artemev>
* bf367003f9 - [IR] Make IrMemberAccessExpression be IrDeclarationReference (16 hours ago) <Roman Artemev>
* eee594101a - [IR] Remove superQualifier property from IrCall (16 hours ago) <Roman Artemev>
* ea5b529d19 - (tag: build-1.3.70-dev-1522) Check default parameters of expect suspend functions on original (17 hours ago) <Ilmir Usmanov>
*   633d1c9ea3 - (tag: build-1.3.70-dev-1518) Merge pull request #2773 from t-kameyama/KT-28607 (18 hours ago) <igoriakovlev>
|\
| * d04f88ff66 - (origin/rr/Alefas/KT-28607) Extract/Introduce variable: fix to work correctly if caret is before right parenthesis or comment (31 hours ago) <Toshiaki Kameyama>
* | 42c4591df8 - (tag: build-1.3.70-dev-1510) [JS IR] Add -Xgenerate-dts CLI argument (18 hours ago) <Svyatoslav Kuzmich>
* | e81fbe0a05 - (tag: build-1.3.70-dev-1501) Folding: fold function with expression body (KT-6316) (21 hours ago) <Toshiaki Kameyama>
* | 58fb1dede3 - Multiline string enter handler: do not insert 'trimIndent()' in const (KT-34785) (21 hours ago) <Toshiaki Kameyama>
* | ce0fb662c0 - (tag: build-1.3.70-dev-1497) JVM_IR: fold inline lambdas when computing OUTERCLASS (22 hours ago) <pyos>
* | f906524d76 - (tag: build-1.3.70-dev-1495) Mark a SAM conversion test as JVM-only (22 hours ago) <pyos>
* | c66b6b6a3a - (tag: build-1.3.70-dev-1485, tag: build-1.3.70-dev-1481) FIR visibility check: support companion private members correctly (25 hours ago) <Mikhail Glukhikh>
* | e96aeb77a6 - FIR visibility check: support private class members (25 hours ago) <Mikhail Glukhikh>
* | a5ad05083a - Add some stubs for FIR visibility checking (25 hours ago) <Mikhail Glukhikh>
* | 7e07b88eab - (tag: build-1.3.70-dev-1480) Code cleanup: FirCallResolver (26 hours ago) <Mikhail Glukhikh>
* | ac13a8c8b2 - Cone conflict resolver: extract JVM equivalent call filtering to a separate class (26 hours ago) <Mikhail Glukhikh>
* | 96c5003a13 - Cone conflict resolver: filter equivalent top-level callables (26 hours ago) <Mikhail Glukhikh>
* | dc10d25661 - (tag: build-1.3.70-dev-1479) Ensure ForLoopsLowering only handles the CharSequence.iterator() extension function from the standard library (kotlin.text.iterator()). (27 hours ago) <Mark Punzalan>
|/
* 1bd861c5eb - (tag: build-1.3.70-dev-1471) Save use_ni key state to log (2 days ago) <Simon Ogorodnik>
* 57a674e9e6 - (tag: build-1.3.70-dev-1468) Make fast class files reading mode default in compiler tests (2 days ago) <Alexander Udalov>
* dde2d08cfc - (tag: build-1.3.70-dev-1460) FIR resolve: add extra test for generic with bounds in Java (2 days ago) <Mikhail Glukhikh>
* f66b2ca772 - FIR resolve: add forgotten constraint subsystem from generic qualified access (2 days ago) <Mikhail Glukhikh>
* 26281bfe89 - FIR Java: use different names for anonymous parameters (p0, p1, p2, ...) (2 days ago) <Mikhail Glukhikh>
* c657d46437 - FIR Java: add nullable (instead of not-null) type parameter bounds (2 days ago) <Mikhail Glukhikh>
* db11c14fee - FIR Java: don't add type parameter bounds multiple times (2 days ago) <Mikhail Glukhikh>
* a18da68171 - (tag: build-1.3.70-dev-1457) Remove redundant `toList` call in `LazyJavaPackageScope` (2 days ago) <Roman Golyshev>
* 82fb5c4d19 - (tag: build-1.3.70-dev-1456) JVM_IR: move lambda captures to end of signature when inlining (2 days ago) <pyos>
* 433e0e4740 - (tag: build-1.3.70-dev-1455) JVM_IR: remember facade fqnames of imported classes (2 days ago) <pyos>
* 42cb53a380 - (tag: build-1.3.70-dev-1454) Always apply new script configuration in tests (2 days ago) <Natalia Selezneva>
* 423f1909fa - Disable script configuration update in AbstractInspectionTest (2 days ago) <Natalia Selezneva>
* 698d675efe - Scripting: fix saving to file attributes (2 days ago) <Sergey Rostov>
* 05e8acffa7 - Scripting: restore reports for applied configuration in case of previous error (2 days ago) <Sergey Rostov>
* 96b4ceb067 - scripting: skip loading when reverting to applied configuration (2 days ago) <Sergey Rostov>
* 2499c42ac4 - scripting: PsiModificationStamp add virtual file modification stamp (2 days ago) <Sergey Rostov>
* 789ad23e8d - Minor: isScriptDependenciesUpdaterDisabled -> isScriptChangesNotifierDisabled (2 days ago) <Sergey Rostov>
* 61b17de625 - Minor: change ScriptConfigurationCache.kt declarations order for better readability, more docs (2 days ago) <Sergey Rostov>
* fbb2b260dd - Split script configuration state into applied and loaded to make markUpToDate more clear (2 days ago) <Sergey Rostov>
* fde1d3fdf7 - Wrap exceptions from external script configuration loader with error handling (2 days ago) <Natalia Selezneva>
* 56eb86b7c6 - Remove KotlinGradleBuildScriptsResolver for IDEA < 191 (2 days ago) <Natalia Selezneva>
* 2a22cc23e9 - KotlinGradleBuildScriptsResolver: update to new API from IDEA Gradle plugin (2 days ago) <Natalia Selezneva>
* 8bb6cf81c5 - Extract logic common for different platforms to simplify bunch process (2 days ago) <Natalia Selezneva>
* e2928550ca - Fix retrieving virtual file (2 days ago) <Sergey Rostov>
* 9105e38041 - Mark not applied configuration as up-to-date, simplify concurrency handling (2 days ago) <Sergey Rostov>
* 0422abdb7b - LoadedScriptConfiguration and CachedConfigurationSnapshot are merged to ScriptConfigurationSnapshot (2 days ago) <Sergey Rostov>
* a89ce4c590 - BackgroundExecutor: cancel all tasks on user cancel, remove useless updateProgress call (2 days ago) <Sergey Rostov>
* 19d35d7f27 - Implement Gradle specific behavior for script configuration update logic (2 days ago) <Sergey Rostov>
* 548e8e27dc - Minor: rename parameter (2 days ago) <Natalia Selezneva>
* f0053ee34c - Minor: use properties instead of string constants (2 days ago) <Natalia Selezneva>
* 9d2cc484aa - ide, scripting: rework script configuration caching, introduce persistent fs cache (2 days ago) <Sergey Rostov>
* 915c9c367c - Minor: rename script related classes (2 days ago) <Natalia Selezneva>
* 33475f30bc - Minor: move files (2 days ago) <Natalia Selezneva>
* 9f3c2d0292 - build.gradle.kts: import script dependencies on Gradle Project sync (2 days ago) <Sergey Rostov>
* de54e549af - (tag: build-1.3.70-dev-1451) Refactor CHECK_BYTECODE_LISTING directive for JVM IR tests (2 days ago) <Alexander Udalov>
* ce09be3f59 - Add TargetBackend.isIR, simplify JVM IR test configuration (2 days ago) <Alexander Udalov>
* ab65a6bc6c - (tag: build-1.3.70-dev-1447) Build fix, tests regenerated (2 days ago) <Vladimir Ilmov>
* 608885d118 - (tag: build-1.3.70-dev-1445, origin/sbogolepov/metadata_only_libraries_support) [Linker] Extend KotlinIrLinker infrastructure to support libraries that doesn't contain IR. Also bump ABI version because of addition of `ir_provider` property (2 days ago) <Sergey Bogolepov>
* 5629627cca - (tag: build-1.3.70-dev-1444) Mobile MPP: Initialize Mobile MPP plugin (2 days ago) <Kirill Shmakov>
* f3770314c5 - (tag: build-1.3.70-dev-1443) Pill: Fix reflect dependency in compiler/fir.resolve module (2 days ago) <Yan Zhulanow>
* ef8b3cb72a - Prefer Kotlin Junit test run configurations when possible (KT-33787) (2 days ago) <Yan Zhulanow>
* 987307cf92 - Prefer Kotlin Gradle test run configurations when possible (KT-33787) (2 days ago) <Yan Zhulanow>
* 214810ca01 - (tag: build-1.3.70-dev-1439) Suspend test removed. Will be added later as part of appropriate ticket. (3 days ago) <Vladimir Ilmov>
2019-11-13 22:10:52 +03:00
2019-11-04 15:13:27 +03:00
2018-08-27 14:55:51 +03:00
2019-10-28 17:24:39 +03:00
2019-11-13 19:16:35 +03:00
2019-03-21 14:16:25 +03:00
2019-11-13 19:16:35 +03:00
2019-11-13 19:16:35 +03:00
2019-11-13 17:41:25 +03:00
2019-11-12 01:17:19 +03:00
2017-03-30 09:51:58 +03:00
2019-11-12 01:17:19 +03:00
2019-10-25 16:05:35 +03:00
2019-07-10 15:29:45 +07:00
2019-07-10 15:29:45 +07:00
2019-10-29 18:46:14 +03:00
2018-09-13 11:48:42 +03:00
2017-04-28 17:05:20 +02:00
2019-01-30 19:11:11 +03:00
2019-09-28 09:53:20 +03:00
2019-09-28 09:53:20 +03:00

official project version

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-libs may be needed
  • on recent Ubuntu apt install libncurses5 is 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.

S
Description
The Kotlin Programming Language.
Readme 2.1 GiB
Languages
Kotlin 79.9%
Java 10.4%
Swift 4.3%
C 2.8%
C++ 2.1%
Other 0.3%