*e7d0909979- (HEAD -> master, origin/master, origin/HEAD) JVM_IR: Fix null-constant comparison with primitive types. (2 hours ago) <Kristoffer Andersen> *e21da3a61a- Avoid resolving array-set method several times (3 hours ago) <Mikhail Zarechenskiy> *f8449bf15a- [NI] Clear partially resolved calls after resolve of top-level call (3 hours ago) <Mikhail Zarechenskiy> *f305475e3f- Make "nothing to inline" diagnostic shorter (3 hours ago) <Mikhail Zarechenskiy> *dc25f7b7ac- [NI] Minor, remove unneeded computation of constant evaluator (3 hours ago) <Mikhail Zarechenskiy> *3569eaabcf- Rename FirJavaElementFinder.kt.as34 to FirJavaElementFinder.kt.183 (3 hours ago) <Denis Zharkov> *62a1ea643a- (tag: build-1.3.60-dev-1981) Add additional tests for bound receivers in callable references (3 days ago) <Steven Schäfer> *d89d68e3df- JVM IR: Cache SAM wrappers in top-level classes and use proper naming scheme (3 days ago) <Steven Schäfer> *2be4abe9a6- Refactoring: Consistently use Symbols in JvmSymbols (3 days ago) <Steven Schäfer> *c77fa1ecd6- JVM IR: Fixes in SAM lowering (3 days ago) <Steven Schäfer> *829102b3e3- (tag: build-1.3.60-dev-1980, tag: build-1.3.60-dev-1973) FIR: Fix exception in inference (3 days ago) <Denis Zharkov> *8c52ff31b3- Add bunch for AS34: FirJavaElementFinder (3 days ago) <Denis Zharkov> *3f0887dc0c- FIR: Do not try building light classes for invalid names (3 days ago) <Denis Zharkov> *106b6c901d- FIR: Get rid of FirRegularClass::setCallbackOnSupertypesComputed (3 days ago) <Denis Zharkov> *122c229a8b- FIR: Add possibility to run SupertypeResolverTransformer ad-hoc (3 days ago) <Denis Zharkov> *d9d6c38c2b- FIR: Introduce FirClassLikeDeclaration::supertypesComputationStatus (3 days ago) <Denis Zharkov> *6058f9d286- FIR: Avoid recursions while building Java enhancement scopes (3 days ago) <Denis Zharkov> *7f5c4d90fd- FIR: make "collectSuperTypes" recursion-resistant (3 days ago) <Denis Zharkov> *1f23184db9- FIR: Get rid of code duplication in SupertypesUtils.kt (3 days ago) <Denis Zharkov> *bf610323cf- Support basic light-classes basic with FIR for CLI (3 days ago) <Denis Zharkov> *e7410348a7- (tag: build-1.3.60-dev-1971) JVM IR: Fix visibility for @InlineOnly functions (3 days ago) <Steven Schäfer> *ee45933e33- JVM IR: Create local classes in PropertyReferenceLowering (3 days ago) <Steven Schäfer> *626f4c94f6- Handle special case visibility rules in LocalDeclarationsLowering (3 days ago) <Steven Schäfer> *9a938b07ba- (tag: build-1.3.60-dev-1967) KT-17689: Fix `TypeAliasQualifier` to provide enum entries descriptors (3 days ago) <Roman Golyshev> *f419d2eb30- (tag: build-1.3.60-dev-1965) KT-33585: Add synchronization between scratch editor and preview (3 days ago) <Roman Golyshev> *d12d9d86bc- KT-33585: Refactor `KtsScratchFileEditorWithPreview` and its output handlers (3 days ago) <Roman Golyshev> *edb700b898- (tag: build-1.3.60-dev-1962) Switch to 192 platform (3 days ago) <Nikolay Krasko> *650a6e5cc4- (tag: build-1.3.60-dev-1961) MakeOverriddenMemberOpenFix: should update actual members #KT-32586 Fixed (3 days ago) <Dmitry Gridin> *58d303afcc- MakeOverriddenMemberOpenFix: cleanup code (3 days ago) <Dmitry Gridin> *3f451d7eaf- (tag: build-1.3.60-dev-1959) Switch off SAM adapter conversion for constructors in completion (3 days ago) <Natalia Selezneva> *f7b8c7f76e- Check that project isn't disposed showing notification for scripts (3 days ago) <Natalia Selezneva> *fb01f7be5e- Rename ScriptDependenciesManager to ScriptConfigurationManager (3 days ago) <Natalia Selezneva> *fa6b5b567b- Fix org.jetbrains.kotlin.idea.script.ScriptConfigurationHighlightingTestGenerated.Highlighting.testThrowingResolver (3 days ago) <Natalia Selezneva> *961e8c2c74- Refactor the mechanism how script configurations are updated (3 days ago) <Natalia Selezneva> *dc46f73ecf- Rewrite scripting related API to PsiFile instead of VirtualFile (3 days ago) <Natalia Selezneva> *5b48dcca4f- ResultWithDiagnostics: remove unused equals and hashCode (3 days ago) <Sergey Rostov> *91f39a0ecf- (tag: build-1.3.60-dev-1957) FIR [optimization]: eliminate some unnecessary ScopeSessions (3 days ago) <Mikhail Glukhikh> *7ede26e8f4- (tag: build-1.3.60-dev-1956) IrCompileKotlinAgainstInlineKotlin tests (3 days ago) <Georgy Bronnikov> *0807987ef7- (tag: build-1.3.60-dev-1951) Update 192 to release version (4 days ago) <Nikolay Krasko> *655e77b0dd- Update lz4 for 192 in :compiler:incremental-compilation (4 days ago) <Nikolay Krasko> *7968ecef1c- (tag: build-1.3.60-dev-1944, origin/prr/4u7/wip) Initial import of benchmarks from https://github.com/dzharkov/kotlin-compiler-benchmarks (4 days ago) <Ilya Ryzhenkov> *1bd5b68b4a- Build: Instrument only java tasks for main & test source sets (4 days ago) <Vyacheslav Gerasimov> *50eb98194a- (tag: build-1.3.60-dev-1940) Build: Move dependencies.properties to the root build directory (4 days ago) <Vyacheslav Gerasimov> *20626e4aaf- (tag: build-1.3.60-dev-1938) Make ReturnableBlockLowering common (4 days ago) <pyos> *ae8c93de6a- (tag: build-1.3.60-dev-1937) Support symlinked JAVA_HOME (4 days ago) <Sascha Peilicke> *98f72e58bd- (tag: build-1.3.60-dev-1936) FIR deserializer: use class type parameters in constructor directly (4 days ago) <Mikhail Glukhikh> *6a7ebe8928- FIR substitution: do not create fake overrides if types aren't changed (4 days ago) <Mikhail Glukhikh> *5386cfe254- FIR2IR: support fake overridden properties (4 days ago) <Mikhail Glukhikh> *687db20029- FIR: support fake overrides for properties (4 days ago) <Mikhail Glukhikh> *5741ff5d86- FIR: split default importing scopes into low/high priority ones (4 days ago) <Mikhail Glukhikh> *044dfd14ce- FIR: more accurate type checking in typeFromCallee (4 days ago) <Mikhail Glukhikh> *c27ed0cfd3- (tag: build-1.3.60-dev-1926) Update ReadMe for gradle-plugin-integration-tests (4 days ago) <Ilya Goncharov> *5deaca9ace- Fix building tests for fir:lightTree in 192 branch (4 days ago) <Nikolay Krasko> *7bdde7cad3- Disable HierarchicalMultiplatformProjectImportingTest in Android Studio (KT-33067) (4 days ago) <Nikolay Krasko> *48d666daea- (tag: build-1.3.60-dev-1923) Make platforms order reproducible in iml-files (4 days ago) <Andrey Uskov> *a843c23f20- (tag: build-1.3.60-dev-1921) Completion: add root prefix support #KT-10340 Fixed (4 days ago) <Dmitry Gridin> *7a4c3e4d6a- BaseDeclarationInsertHandler: fix `startOffset` (4 days ago) <Dmitry Gridin> *c4a1101600- KtSimpleNameReference: add root prefix support to `bindToFqName` function (4 days ago) <Dmitry Gridin> *2e781a7a27- KtSimpleNameReference: cleanup code (4 days ago) <Dmitry Gridin> *dd2bd320ba- ShortenReferences: add root prefix support #KT-9204 Fixed (4 days ago) <Dmitry Gridin> *0c81173b71- idea-core.Utils: add extension to `FqName` to support root prefix (4 days ago) <Dmitry Gridin> *953aaadee1- idea-core.Utils: cleanup code (4 days ago) <Dmitry Gridin> *14ad6284d9- QualifiedExpressionResolver: add root prefix resolve for IDE analysis (4 days ago) <Dmitry Gridin> *68d20dae66- QualifierExpressionResolver: cleanup code (4 days ago) <Dmitry Gridin> *4224d109e2- AnalysisFlags: add flag `ideMode` for IDE specific analysis (4 days ago) <Dmitry Gridin> *106452b5f0- (tag: build-1.3.60-dev-1919) Add list of modules available via dependsOn in FacetSettings (4 days ago) <Andrey Uskov> *4642127c28- Introduce versioning of multiplatform in KotlinFacetSettings (4 days ago) <Andrey Uskov> *75f9532959- (tag: build-1.3.60-dev-1914) [IR] Avoid duplicate IR elements in for loops lowering. (4 days ago) <Mads Ager> *4ce6a54236- (tag: build-1.3.60-dev-1907) YarnSetupTask: Fix setup() to be a Gradle TaskAction (4 days ago) <Sebastian Schuberth> *0040298eac- (tag: build-1.3.60-dev-1889, origin/rr/romart/fix_master) Fix master - improve assertion message - compare correct file paths - fix C JS BE testData (5 days ago) <Roman Artemev>
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.