Скачать kotlin для windows 10

Kotlin 1.9.20-Beta2

Changelog

Backend. Wasm

  • KT-59720 K/Wasm: update to final opcodes

Compiler

  • KT-62027 «java.lang.IndexOutOfBoundsException: Empty list doesn’t contain element at index 0» caused by ClassicExpectActualMatchingContext.kt when annotation @AllowDifferentMembersInActual used
  • KT-61668 Put expect/actual diagnostics introduced in 1.9.20 release under 1.9 Language Version
  • KT-61645 K2/KMP: Set stdlib-native before stdlib-commonMain in dependencies for shared native metadata compilation
  • KT-61924 Native: problem with abstract fake override from Any
  • KT-61725 KMP: Annotation matching requirement for expect/actual leads to errors for annotations with @OptionalExpectation
  • KT-61784 KMP: [DEFAULT_ARGUMENTS_IN_EXPECT_WITH_ACTUAL_TYPEALIAS] checker missed for companion functions
  • KT-61167 Runtime failure: ReferenceError: MyPromise is not defined
  • KT-59094 K2: Fix Scripting K2 tests

IDE. Navigation

  • KT-61894 Navigation from java sources leads to Kotlin decompiled code in case of suspend function

Native. C and ObjC Import

  • KT-56369 Hint about «-fmodules» is not shown

Tools. Compiler Plugin API

  • KT-61872 K2: Adding annotations to metadata from backend plugin doesn’t work in the presence of comments on annotated declaration
  • KT-61833 K2: annotations added via addMetadataVisibleAnnotationsToElement to declarations from common sourceset in MPP project are invisible

Tools. Gradle

  • KT-61401 The reported language version value for KotlinNativeLink tasks in build reports and build scans is inaccurate
  • KT-61950 K/Wasm: Add warning about changed sourceSets
  • KT-61895 KotlinTopLevelExtension.useCompilerVersion is not marked as experimental

Tools. Gradle. Multiplatform

  • KT-59042 «Cannot build ‘KotlinProjectStructureMetadata’ during project configuration phase» when configuration cache enabled
  • KT-61652 MPP ConcurrentModificationException on transformCommonMainDependenciesMetadata
  • KT-61622 Upgrading to Kotlin 1.9 prevents commonMain sourceset classes from being processed by kapt/ksp (dagger/Hilt)

Tools. Gradle. Native

  • KT-61700 Native: linkDebugExecutableNative has duplicated freeCompilerArgs

Tools. Wasm

  • KT-61971 K/Wasm: wasmWasiTest should depends on kotlinNodeJsSetup

Checksums

File Sha256
kotlin-compiler-1.9.20-Beta2.zip 2ec2dd53daae4acc1fd04fe95d42332e21a350a6f3384c63a18b079e90ab5576
kotlin-native-linux-x86_64-1.9.20-Beta2.tar.gz f51bca5632e60910fb5fb8a3c08bf29c0e56fa413efd43944dd7b8e80f2fb8db
kotlin-native-macos-x86_64-1.9.20-Beta2.tar.gz 13a7ed1505e751860516b6729bba533861ad5d640bac1864702b5b098157e4b8
kotlin-native-macos-aarch64-1.9.20-Beta2.tar.gz 4f7b4096bfe0245be3ed18d73fb3c8f8f9687444852e7397c0329dc9a0b516e9
kotlin-native-windows-x86_64-1.9.20-Beta2.zip d2ac8d34bd0e4ef651969e3db9c65c9f9ed7db23a3b66f4d2f8f1aefc0120cb1

Kotlin 1.9.20-Beta

Changelog

Analysis API

New Features

  • KT-58834 Analysis API: Add source shadowing feature to resolve extensions

Performance Improvements

  • KT-57515 LL FIR: Performance bottleneck in CompositeModificationTracker.getModificationCount
  • KT-59266 K2: optimize FirElementBuilder.getOrBuildFir for elements outside body
  • KT-59454 K2: drop resolve from org.jetbrains.kotlin.analysis.api.fir.components.KtFirVisibilityChecker#collectContainingDeclarations
  • KT-59453 K2: completion regression from org.jetbrains.kotlin.analysis.api.fir.components.KtFirVisibilityChecker#collectContainingDeclarations
  • KT-59189 Analysis API: KtFirKDocReference.resolveToSymbols is slow
  • KT-58125 K2: LL FIR: KtToFirMapping.getElement is slow for KtUserTypes due to on-air resolution of types

Fixes

  • KT-60940 K2: Analysis API: Reference shortener incorrectly handles types in vararg parameters declarations
  • KT-61026 K2 Scripts: FirLazyExpression should be calculated before accessing from on-air resolve
  • KT-61009 K2 Scripts: KtFirExpressionTypeProvider: Expected FirResolvedTypeRef with ConeKotlinType but was FirImplicitTypeRefImplWithoutSource
  • KT-60357 K2 IDE. Reified types parameters are not resolved in a function body
  • KT-60954 K2: Analysis API: Reference shortener does not work correctly with variable assignments
  • KT-60317 K2 IDE. IAE «This method will only work on compiled declarations, but this declaration is not compiled» on invoking Find Usages for enum method in library
  • KT-60728 K2: proper support for scripts in LL FIR transformers
  • KT-60706 K2 IDE: FirJvmTypeMapper is not found for kotlin.kotlin-stdlib-common
  • KT-57743 K2 IDE: StackOverflowError from LLFirSessionCache for simple JPS project with cyclic dependencies
  • KT-60552 K2: merge StateKeeper and lazy body calculator for ANNOTATIONS_ARGUMENTS_MAPPING transformer
  • KT-60641 Analysis API: Scope for class org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl not found exception when stdlib is missing
  • KT-60586 K2: forbid analyze from write action
  • KT-60638 K2: Expected FirResolvedTypeRef with ConeKotlinType but was FirImplicitTypeRefImplWithoutSource
  • KT-54846 Analysis API: add isExpect/isActual to KtSymbol
  • KT-59077 KtFirExpressionTypeProvider behaviour for KtSimpleNameReferences in function calls
  • KT-60448 FirLazyResolveContractViolationException: lazyResolveToPhase(COMPILER_REQUIRED_ANNOTATIONS) cannot be called from a transformer with a phase COMPILER_REQUIRED_ANNOTATIONS from AllOpen plugin
  • KT-59342 K2 IDE. FirLazyResolveContractViolationException: lazyResolveToPhase(TYPES) cannot be called from a transformer with a phase TYPES
  • KT-59687 K2: Implement proper body update for in-block modifications
  • KT-60488 Analysis API: forbid providing custom KtLifetimeToken for every analyze call
  • KT-59329 Resolve Extensions reference resolution breaks Find Usages
  • KT-60295 K2: move checkIsResolved for annotations from LLFirAnnotationArgumentsLazyResolver to LLFirTypeLazyResolver
  • KT-59758 K2: Expected is FirResolvedTypeRef, but was FirImplicitTypeRefImplWithoutSource from ReturnTypeCalculatorWithJump
  • KT-60377 K2 IDE: This method will only work on compiled declarations, but this declaration is not compiled
  • KT-59685 K2: rewrite on-air resolution
  • KT-59159 K2 IDE: declaration is not found exception
  • KT-59297 K2: exception from body resolve leads to corrupted state and broken analysis
  • KT-60132 K2: properties and functions without a name should be re-analyzable as well
  • KT-59199 K2 IDE: PSI changes which do not cause OOB modifications can be unseen from the FIR elements
  • KT-59667 Analysis API: PsiInvalidElementAccessException from JavaClassifierTypeImpl.substitutor
  • KT-59705 KotlinExceptionWithAttachments: No fir element was found for getter
  • KT-59697 AA standalone: JRT module paths are not properly populated in Windows
  • KT-59505 K2: implicit type lazy resolution doesn’t work for delegated declaration from other module
  • KT-56426 K2 IDE: Typealised functional types cannot be rendered
  • KT-59598 AA: stackoverflow while simplifying a type with a recursive type parameter
  • KT-58497 K2: Expected FirResolvedTypeRef for initializer type of FirPropertyImpl(Source) but FirImplicitTypeRefImplWithoutSource found
  • KT-59511 AA standalone mode creates Application Environment for tests
  • KT-58161 Analysis API: Make methods in KtCallResolverMixIn more distinctive based on their receiver/return type
  • KT-59093 Do not throw exception on KtCall resolution, KtCallElement.resolveCall should return null on unknown cases
  • KT-59240 K2: FirLazyResolveContractViolationException: lazyResolveToPhase(IMPORTS) cannot be called from a transformer with a phase IMPORTS from superTypes
  • KT-59243 K2: FirLazyResolveContractViolationException: lazyResolveToPhase(IMPORTS) cannot be called from a transformer with a phase IMPORTS from permits types
  • KT-58194 K2: Low Level API: use smart pointers to store references to PSI from FIR declarations for JavaElement
  • KT-59133 K2: java.lang.IllegalStateException: Fir is not initialized for FirRegularClassSymbol
  • KT-58174 K2: LL FIR: Invalid type reference for T & Any type
  • KT-52615 LL FIR: build RAW FIR only by stubs
  • KT-55053 K2: Exception «lateinit property diagnostic has not been initialized» in FirBuilder
  • KT-58580 K2: LL FIR: Declarations provided by resolve extensions from a dependency module are not visible through LLFirCombinedKotlinSymbolProvider
  • KT-58992 Analysis API: move org.jetbrains.kotlin.analysis.api.fir.utils.addImportToFile out of Analysis API
  • KT-58727 K2: AA FIR: implicit type in delegated function treated as error
  • KT-58653 K2: Analysis API: add functions for KtScope members access by name
  • KT-57559 K2 IDE: KotlinExceptionWithAttachments: Modules are inconsistent on intellij project
  • KT-58262 Analysis API: Declarations from Analysis API Resolve Extensions are not seen from completion
  • KT-57455 LL FIR: Combine AbstractFirDeserializedSymbolProviders in session dependencies (optimization)
  • KT-57207 LL FIR: Combine JavaSymbolProviders in session dependencies (optimization)
  • KT-58546 K2: LL FIR: support name collision in a designation path
  • KT-58495 K2: Lazy calculation is redundant
  • KT-58500 K2: null cannot be cast to non-null type org.jetbrains.kotlin.fir.FirPureAbstractElement
  • KT-58493 K2: Expected FirResolvedTypeRef for default value type of FirValueParameterImpl(Source) but FirUserTypeRefImpl found
  • KT-58496 K2: Expected FirNamedReference, FirErrorNamedReference or FirFromMissingDependenciesNamedReference, b…

Kotlin 1.9.10

Changelog

Compiler

  • KT-60769 Partially revert KT-58371
  • KT-60659 Incorrect ‘unresolved reference: addFirst’ error with JDK 21
  • KT-60371 Native custom allocator link error
  • KT-60986 Native: static caches with custom runtime options are broken on Linux
  • KT-60770 Fix false-positive ABSTRACT_MEMBER_NOT_IMPLEMENTED on toArray with JDK 21
  • KT-60231 NoClassDefFoundError: $$$$$NON_LOCAL_RETURN$$$$$ after upgrade to Kotlin 1.9.0

JavaScript

  • KT-60785 KJS: Destructured value class in suspend function fails with Uncaught TypeError: can’t convert to primitive type error
  • KT-60852 Kotlin JS(IR): IllegalArgumentException: Cross module dependency resolution failed when updating to Kotlin 1.9.0
  • KT-57509 KJS: Compiler generates native JS operator == for comparing values with Any type

Native

  • KT-60230 Native: «unknown options: -ios_simulator_version_min -sdk_version» with Xcode 15 beta 3
  • KT-60758 Native: Building for ‘iOS-simulator’, but linking in dylib built for ‘iOS’ in Xcode 15 beta 4

Native. C and ObjC Import

  • KT-59167 Native: cinterop is unable to build interop libraries against the Xcode 15 Beta 1

Tools. Gradle

  • KT-61147 Kotlin Compiler 1.9.0 bundles a stripped unshadowed version of Gson
  • KT-60543 NoClassDefFoundError for com/gradle/scan/plugin/BuildScanExtension

Checksums

File Sha256
kotlin-compiler-1.9.10.zip 7d74863deecf8e0f28ea54c3735feab003d0eac67e8d3a791254b16889c20342
kotlin-native-linux-x86_64-1.9.10.tar.gz 1db3679919f4449514e9d82451e7dfa73558ac9bc80b82579cd74d452c8faa5b
kotlin-native-macos-x86_64-1.9.10.tar.gz f5650f2560438a692803d8fe07124529c19f1972f84fe09cfa2329b93f43828d
kotlin-native-macos-aarch64-1.9.10.tar.gz d2cf5a484ac0808ab29fd3f6099df7c07330f81f3cbab949947e42e36138c3de
kotlin-native-windows-x86_64-1.9.10.zip a34d56661455e94e1ba4dd09ec3c1adac6148fdedcf55eefb9a79c8ed01ff02c

Kotlin 1.9.0

Changelog

Analysis API

New Features

  • KT-57930 Analysis API: provide an API for extending Kotlin resolution
  • KT-57636 K2: Add the return type of K2 reference shortener AA ShortenCommand::invokeShortening() e.g., ShorteningResultInfo to allow callers to access the shortening result PSI

Fixes

  • KT-58249 Analysis API: Disable error logging for FE10 implementation of resolveCall when resolve is not successful
  • KT-55626 Impossible to restore symbol by psi from script file
  • KT-57314 LL FIR: Combine LLFirProvider$SymbolProviders in session dependencies (optimization)
  • KT-55527 K2 IDE: Rewrite KtScopeContext class to allow to handle each scope separately
  • KT-55329 LL FIR: Unexpected ACTUAL_WITHOUT_EXPECT error on constructor and function declaration
  • KT-50732 LL API: fix compiler based tests
  • KT-57850 K2: contract violation due to SymbolLightAccessorMethod.propertyAccessorSymbol
  • KT-56543 LL FIR: rework lazy transformers so transformers modify only declarations they suppose to
  • KT-56721 K2: FirExtensionDeclarationsSymbolProvider: java.lang.IllegalStateException: Recursive update
  • KT-50253 Analysis API: Solve issues with ProcessCancelledException
  • KT-56800 K2 IDE: optimize deprecation calculation for symbols
  • KT-55006 Analysis API does not transform Java type refs for callable symbol return types
  • KT-57256 AA FIR: Reduce lazy resolve phase for deprecation status
  • KT-57619 K2: CFG for class initializer is not correctly built in reversed resolve mode
  • KT-58141 K2: AA FIR: impossible to restore symbol for declaration with annotation with argument inside type
  • KT-57462 Symbol Light Classes: SymbolLightFieldForProperty should retrieve annotations not from KtPropertySymbol, but from the corresponding backing field
  • KT-54864 Analysis API: add function to get expect KtSymbol list by actual KtSymbol
  • KT-56763 Analysis API: .KtSourceModuleImpl is missing in the map. on symbol restore when symbol cannot be seen from the use-site module
  • KT-56617 Analysis API: optimize KtFirSymbolProviderByJavaPsi.getNamedClassSymbol
  • KT-54430 K2: .getAllOverriddenSymbols() returns invalid results

Backend. Native. Debug

  • KT-55440 Kotlin/Native debugger: inline function parameters are not visible during debugging

Backend. Wasm

  • KT-58293 Wasm: ReferenceError: e is not defined in kotlin.test.jsThrow
  • KT-58931 Wasm tests are failing to start on Kotlin 1.9.0-Beta
  • KT-58188 Restore binary compatibility of PlatformDiagnosticSuppressor.shouldReportUnusedParameter
  • KT-57136 K/Wasm: Restrict non-external types in JS interop
  • KT-57060 Clarify the lack of support for dynamic in Kotlin/Wasm
  • KT-56955 K/Wasm: Support restricted version of K/JS js(code)
  • KT-57276 Wasm: «Body not found for function» error when compiling konform library with Kotlin/Wasm support
  • KT-56976 K/Wasm bug with calling override of external function with default parameters

Compiler

New Features

  • KT-55333 Allow secondary constructors in value classes with bodies
  • KT-54944 @Volatile support in native
  • KT-54746 Deprecate with ERROR JvmDefault annotation and old -Xjvm-default modes
  • KT-47902 Do not propagate method deprecation through overrides
  • KT-29378 K2: rework warnings/errors for equality/identity operators on incompatible types
  • KT-57477 False-positive overload resolution ambiguity in case of lambda without arguments
  • KT-57010 Kotlin/Native: make it possible to compile bitcode in a separate compiler invocation
  • KT-55691 K2: Avoid inferring Nothing? in presence of other constraints (beside type parameter bounds)
  • KT-46288 Unexpected behavior of extension function on lambda with suspend receiver
  • KT-24779 Inconsistent smart cast behavior for bound data flow values

Performance Improvements

  • KT-23397 Optimize out field for property delegate when it’s safe (JVM)
  • KT-56906 FIR: Use cached instance of FirImplicitTypeRefImpl in FIR builders
  • KT-56276 LanguageVersion.getVersionString() allocates 5k objects on project opening

Fixes

  • KT-57784 «NullPointerException: Parameter specified as non-null is null:» with enum, companion object, ‘entries’ and map
  • KT-55217 K2: support callable reference conversions on top-level expressions
  • KT-57232 K2: build Space JVM (master)
  • KT-59079 «AE: SyntheticAccessorLowering should not attempt to modify other files!» with callable reference to constructor with value class parameter
  • KT-58837 Partial linkage fails to report any compiler message on Windows when launched through Gradle plugin
  • KT-57602 K2: Rework member scope of types having projection arguments for covariant parameters
  • KT-55171 Put new contracts syntax under a feature flag
  • KT-58719 K2: false-positive INVISIBLE_REFERENCE error in case of importing an internal abstract class
  • KT-56030 [K2/N] Support Objective-C overloading by param names only
  • KT-57510 K2: Data class equals/hashCode/toString methods are not written to Klib metadata
  • KT-56331 K2: compiler backend crash on usage of expected function with default arguments
  • KT-53846 K2 / Context receivers: ClassCastException on secondary constructor of class with context receiver
  • KT-58621 K2: Private class shadows public function defined in the same package
  • KT-59102 K2: constant evaluator does not provide Long type on shl
  • KT-59066 [K2] delegation leads to «IllegalStateException: Expected some types»
  • KT-56074 K2: build Space JVM (snapshot 2022.3)
  • KT-58787 KAPT: «NullPointerException: null cannot be cast to non-null type» with delegate
  • KT-57022 K2 IllegalStateException in signature computation
  • KT-56792 K2: build kotlinpoet
  • KT-57373 K2: FIR properties synthesized when implementing interface by delegation don’t have accessors
  • KT-56583 K1: Implement opt-in for integer cinterop conversions
  • KT-59030 [PL] Workaround for broken @Deprecated annotations in c-interop KLIBs
  • KT-58618 K2: Local property delegates cannot infer generic return type
  • KT-36770 Prohibit unsafe calls with expected @NotNull T and given Kotlin generic parameter with nullable bound
  • KT-56739 K2: build Space iOS
  • KT-57131 K2: stdlib test compilation fails on ListTest.kt in FirJvmMangleComputer
  • KT-58137 K2: ISE «Usage of default value argument for this annotation is not yet possible» when instan…

Kotlin 1.9.0-RC

Changelog

Backend. Wasm

  • KT-58188 Restore binary compatibility of PlatformDiagnosticSuppressor.shouldReportUnusedParameter
  • KT-58293 Wasm: ReferenceError: e is not defined in kotlin.test.jsThrow
  • KT-58931 Wasm tests are failing to start on Kotlin 1.9.0-Beta

Compiler

Fixes

  • KT-58621 K2: Private class shadows public function defined in the same package
  • KT-59102 K2: constant evaluator does not provide Long type on shl
  • KT-59079 «AE: SyntheticAccessorLowering should not attempt to modify other files!» with callable reference to constructor with value class parameter
  • KT-58787 KAPT: «NullPointerException: null cannot be cast to non-null type» with delegate
  • KT-58837 Partial linkage fails to report any compiler message on Windows when launched through Gradle plugin
  • KT-59030 [PL] Workaround for broken @Deprecated annotations in c-interop KLIBs
  • KT-58618 K2: Local property delegates cannot infer generic return type
  • KT-58897 K2: False positive unresolved reference with same-named enum class and its entry
  • KT-56927 Enum with secondary constructor can’t be compiled with K2 using JS/Native backend
  • KT-57570 Remove source code excerpts from platform type nullability assertion exceptions
  • KT-52774 Resolve unqualified enum constants based on expected type

IDE. Gradle Integration

  • KT-59034 MPP build failed with «Factory type is not known for plugin variants» in kt-231-*

JavaScript

  • KT-58570 KJS: ES6 classes + PL throw java.lang.NullPointerException
  • KT-58835 K2/JS: Fix incremental compilation klib tests
  • KT-58794 KJS / K2: Assertion failed with Space build

Libraries

  • KT-58985 Update KClass.isData KDoc
  • KT-58276 Deprecate redundant public declarations in kotlin.native.concurrent

Native. ObjC Export

  • KT-58839 K/N: Exception during HiddenFromObjC marked class extension function compiling

Tools. Compiler plugins. Serialization

  • KT-58918 Serialization: NPE at run time obtaining a serializer for a sealed class with a generic self-referencing property
  • KT-58954 Serialization: NPE at run time when accessing a delegating property of a deserialized object
  • KT-59113 Serialization: NPE at run time when accessing a delegating property of a deserialized object
  • KT-57647 Serialization: «IllegalAccessError: Update to static final field» caused by serializable value class

Tools. Gradle

  • KT-59256 [1.9.0-Beta] ServiceLoader does not pick up classes defined in the same project
  • KT-58662 Gradle 8.1 + Configuration Cache: custom values data is missing from build report
  • KT-59063 Explicit API mode broken in Kotlin 1.9.0-Beta
  • KT-59191 Actual compilation failure exception might be hidden in the case of a Kotlin daemon crash
  • KT-59056 FreeCompilerArgs options added using ‘subprojects’ extension override module-level freeCompilerArgs options
  • KT-55740 Gradle 8: Listener registration using Gradle.addBuildListener() has been deprecated
  • KT-58251 Build Statistics. Kotlin-specific tags are missing in build scans if projects use Gradle 8+
  • KT-58916 [1.9.0-Beta] PLUGIN_CLASSPATH_CONFIGURATION_NAME and NATIVE_COMPILER_PLUGIN_CLASSPATH_CONFIGURATION_NAME should stay public or offer an alternative API
  • KT-58869 K2, Gradle: Improve message «100% (2/2) tasks have compiled with Kotlin 2»

Tools. Gradle. JS

  • KT-59116 K/JS npm dependcies are not resolved properly on Kotlin 1.9
  • KT-58970 browserTest gradle task fails if karma is used and gradle configuration cache is enabled
  • KT-59004 Kotlin JS 1.9.0-Beta, yarn.lock is unstable in multi module project

Tools. Gradle. Multiplatform

  • KT-57903 Prepare for migration to the pluggable android target plugin
  • KT-58661 KGP: KotlinJvmTarget: Implement ‘run’ carrier task
  • KT-59055 KotlinJvmRun not respecting jvmToolchain setting

Tools. Gradle. Native

  • KT-57823 KotlinNativeCompileOptions.moduleName value is ignored and replaced with the default one if to set up using compilations
  • KT-58838 KGP/Multiplatform: 1.9.0-Beta with custom cinterops: IllegalStateException: Could not create domain object ‘jni’ (DefaultCInteropSettings)

Tools. Incremental Compile

  • KT-58986 New IC: ISE «The following LookupSymbols are not yet converted to ProgramSymbols: LookupSymbol(name=$$delegatedProperties, …)»

Tools. Parcelize

  • KT-59112 K2: «IllegalStateException: Function has no body with @Parcelize» on nested sealed class hierarchies

Checksums

File Sha256
kotlin-compiler-1.9.0-RC.zip d00312caa89de1dd3f62d80d5b31724efc333101616ba4a22caf4458862315e7
kotlin-native-linux-x86_64-1.9.0-RC.tar.gz 2dc30ef2b73bcc561decd5efc7b78b7431cfe2fb982c471baaa6762c5022ce5a
kotlin-native-macos-x86_64-1.9.0-RC.tar.gz a4b9b2dbb6793ee6857e3cbdecceb2d972aba1c1055e64bd7cce90fe0c776afc
kotlin-native-macos-aarch64-1.9.0-RC.tar.gz 1ca609007c2cbc587b4ce5e689064867ec18a377ce0ca24a777edf8d74cb7df9
kotlin-native-windows-x86_64-1.9.0-RC.zip b3e35851992132fea2608fa6be87f0fda4b613bca2a4417e5dc3bf1509128a2d

Kotlin 1.8.22

Changelog

Tools. Gradle

  • KT-58280 org.jetbrains.kotlin.jvm Gradle plugin contributes build directories to the test compile classpath

Checksums

File Sha256
kotlin-compiler-1.8.22.zip 91f50fe25c9edfb1e79ae1fe2ede85fa4728f7f4b0587644a4eee40252cdfaa6
kotlin-native-linux-x86_64-1.8.22.tar.gz a1fb41fc010b347d5d9a5449ebb48ad200c59ec2a9121b01db5165db6697e58b
kotlin-native-macos-x86_64-1.8.22.tar.gz 0d6e6b12569a4b8ff2f301f827192dd715a29962cc01eed05557aa8e6eb7c20d
kotlin-native-macos-aarch64-1.8.22.tar.gz 29805af3220eab3c163ac54f02a6097436d4ddfa83eca7815eb053517093e417
kotlin-native-windows-x86_64-1.8.22.zip 91b04aa9f3dc3d5968c75d8e7f163e542458867915777e995162864cc805b2e5

Kotlin 1.9.0-Beta

Changelog

Analysis API

New Features

  • KT-57930 Analysis API: provide an API for extending Kotlin resolution
  • KT-57636 K2: Add the return type of K2 reference shortener AA ShortenCommand::invokeShortening() e.g., ShorteningResultInfo to allow callers to access the shortening result PSI

Fixes

  • KT-55626 Impossible to restore symbol by psi from script file
  • KT-57314 LL FIR: Combine LLFirProvider$SymbolProviders in session dependencies (optimization)
  • KT-55527 K2 IDE: Rewrite KtScopeContext class to allow to handle each scope separately
  • KT-55329 LL FIR: Unexpected ACTUAL_WITHOUT_EXPECT error on constructor and function declaration
  • KT-50732 LL API: fix compiler based tests
  • KT-57850 K2: contract violation due to SymbolLightAccessorMethod.propertyAccessorSymbol
  • KT-56543 LL FIR: rework lazy transformers so transformers modify only declarations they suppose to
  • KT-56721 K2: FirExtensionDeclarationsSymbolProvider: java.lang.IllegalStateException: Recursive update
  • KT-50253 Analysis API: Solve issues with ProcessCancelledException
  • KT-56800 K2 IDE: optimize deprecation calculation for symbols
  • KT-55006 Analysis API does not transform Java type refs for callable symbol return types
  • KT-57256 AA FIR: Reduce lazy resolve phase for deprecation status
  • KT-58141 K2: AA FIR: impossible to restore symbol for declaration with annotation with argument inside type
  • KT-57462 Symbol Light Classes: SymbolLightFieldForProperty should retrieve annotations not from KtPropertySymbol, but from the corresponding backing field
  • KT-58249 Analysis API: Disable error logging for FE10 implementation of resolveCall when resolve is not successful
  • KT-54864 Analysis API: add function to get expect KtSymbol list by actual KtSymbol
  • KT-56763 Analysis API: .KtSourceModuleImpl is missing in the map. on symbol restore when symbol cannot be seen from the use-site module
  • KT-56617 Analysis API: optimize KtFirSymbolProviderByJavaPsi.getNamedClassSymbol
  • KT-54430 K2: .getAllOverriddenSymbols() returns invalid results

Backend. Native. Debug

  • KT-55440 Kotlin/Native debugger: inline function parameters are not visible during debugging

Backend. Wasm

  • KT-57136 K/Wasm: Restrict non-external types in JS interop
  • KT-57060 Clarify the lack of support for dynamic in Kotlin/Wasm
  • KT-56955 K/Wasm: Support restricted version of K/JS js(code)
  • KT-57276 Wasm: «Body not found for function» error when compiling konform library with Kotlin/Wasm support
  • KT-56976 K/Wasm bug with calling override of external function with default parameters
  • KT-56584 K/Wasm: Can’t link symbol class

Compiler

New Features

  • KT-49276 Warn about potential overload resolution change if Range/Progression starts implementing Collection
  • KT-55333 Allow secondary constructors in value classes with bodies
  • KT-54944 @Volatile support in native
  • KT-54746 Deprecate with ERROR JvmDefault annotation and old -Xjvm-default modes
  • KT-29378 K2: rework warnings/errors for equality/identity operators on incompatible types
  • KT-57010 Kotlin/Native: make it possible to compile bitcode in a separate compiler invocation
  • KT-55691 K2: Avoid inferring Nothing? in presence of other constraints (beside type parameter bounds)
  • KT-46288 Unexpected behavior of extension function on lambda with suspend receiver
  • KT-24779 Inconsistent smart cast behavior for bound data flow values

Performance Improvements

  • KT-56906 FIR: Use cached instance of FirImplicitTypeRefImpl in FIR builders
  • KT-56276 LanguageVersion.getVersionString() allocates 5k objects on project opening

Fixes

  • KT-56609 K2: False positive NULL_FOR_NONNULL_TYPE with -Xjsr305=strict and @Nullable annotation Java parameter
  • KT-56656 K1/K2: inconsistent NOTHING_TO_OVERRIDE with complex nullable annotations
  • KT-58332 K2: local fun with suspend type is not marked as suspend in IR
  • KT-57991 K2: Modifier ‘suspend’ is not applicable to ‘anonymous function’
  • KT-4113 No smartcast for nullable lambda property (functional type) with implicit/operator invoke call
  • KT-54294 K2: «Not all type variables found» in builder inference with type parameters inferred through a union of two branches
  • KT-52597 Provide Alpha Support for Multiplatform in the K2 platform
  • KT-58523 K2: reference is resolved to imported type-alias instead of identically named top-level property
  • KT-57098 Native: avoid object initialization while accessing const val
  • KT-57973 32-th default value in inline classes override function is not used
  • KT-57714 «IllegalStateException: <B::!>» using reified generics
  • KT-57810 toString of object erroneously considered as constant function in string concatenation
  • KT-58076 K2: Incorrect inference of type of labeled receiver
  • KT-57929 K2: Arguments of annotations are not calculated in a lot of strange locations
  • KT-55388 Consider enabling ProhibitUsingNullableTypeParameterAgainstNotNullAnnotated
  • KT-53041 NPE in Kotlin 1.7.0 when using RxJava Maybe.doOnEvent with anonymous parameters
  • KT-54829 Cleanup local types approximation logic
  • KT-38871 Kotlin Gradle DSL, MPP: UNUSED_VARIABLE when configuring a sourceset with delegated property
  • KT-58587 MUST_BE_INITIALIZED must take into account effectivelly final
  • KT-58524 K2: false-positive overload resolution ambiguity error on invoking a generic class’s member function with id-shaped function-typed parameter on intersection-typed receiver
  • KT-53929 Enum.entries: consider changing scope behavior in K1
  • KT-58520 K2: FIR2IR: ISE during const evaluation of operator times with exposed
  • KT-56662 K1: false negative INVISIBLE_SETTER for a var with internal setter accessed from a derived class
  • KT-57770 K2: Support generation of serializer if base class for serializable class declared in different module
  • KT-58375 Kapt: «wrong number of type arguments. required 1» when more than 22 type arguments
  • KT-56077 K2: build atomicfu
  • KT-56074 K2: build Space JVM (snapshot 2022.3)
  • KT-48870 [FIR] Different behavior for explicit receiver resolution inside delegated constructors
  • KT-53865 Partial linkage: overriding function with parameter losing vararg: Native is successful, JS fails in runtime
  • KT-53568 Partial linkage: absent class as type parameter bound causes failure of compileProductionExecutableKotlinJs
  • [KT-53608](https://youtrack.jetbrains.com/iss…

Kotlin 1.8.21

Changelog

Compiler

  • KT-57848 Native: compilation of dynamic/static library fails with Xcode 14.3
  • KT-57875 Native compilation failure: Suspend functions should be lowered out at this point, but FUN LOCAL_FUNCTION_FOR_LAMBDA
  • KT-57946 KAPT: «RuntimeException: No type for expression» with delegate

JavaScript

  • KT-57356 KJS: StackOverflowException on @JsExport with type parameters referring to one another

Tools. Commonizer

  • KT-57796 NoSuchFileException in :module-B:commonizeCInterop with Kotlin 1.8.20

Tools. Compiler plugins. Serialization

  • KT-58067 Serialization: NullPointerException caused by @Contextual property with type with generic
  • KT-57730 Serialization: «IllegalStateException: Serializer for element of type .Foo has not been found» caused by serialization of Java type

Tools. Gradle. JS

  • KT-57766 KJS / Gradle «Module not found: Error: Can’t resolve ‘kotlin-kotlin-stdlib-js-ir'» when using «useEsModules»

Tools. Kapt

  • KT-58027 Kotlin 1.8.20 kapt issue «null: KtCallExpression: build()»

Tools. Maven

  • KT-58048 Maven: «Too many source module declarations found» after upgrading to 1.8.20
  • KT-58101 ‘Unable to access class’ in kotlin-maven-plugin after updating to Kotlin 1.8.20

Checksums

File Sha256
kotlin-compiler-1.8.21.zip 6e43c5569ad067492d04d92c28cdf8095673699d81ce460bd7270443297e8fd7
kotlin-native-linux-x86_64-1.8.21.tar.gz 0fc854641dd6d88dce3cc044bb5bc99b9035480474e23541eff03771690c68cf
kotlin-native-macos-x86_64-1.8.21.tar.gz e73bfdac0461ee0c84f25e61063c243bf8d4eb8e0ff5da250456d6a23c677fd6
kotlin-native-macos-aarch64-1.8.21.tar.gz 0a97957921ed55458f3e6cc9117643914ccf3663d8ad7eb161a4a03035a7521b
kotlin-native-windows-x86_64-1.8.21.zip f23d3288a47ee580f82f862d55452a75074fce3d26fe7e7f55e27b6015226d8d

Kotlin 1.8.20

Changelog

Analysis API

  • KT-55510 K2: Lost designation for local classes
  • KT-55191 AA: add an API to compare symbol pointers
  • KT-55487 K2: symbol pointer restoring doesn’t work for static members
  • KT-55336 K2 IDE: «java.lang.IllegalStateException: Required value was null.» exception while importing a compiled JPS project
  • KT-55098 AA: KtDeclarationRenderer should render a context receivers
  • KT-51181 LL API: errors for SAM with suspend function from another module
  • KT-50250 Analysis API: Implement Analysis API of KtExpression.isUsedAsExpression
  • KT-54360 KtPropertySymbol: support JvmField in javaSetterName and javaGetterName

Analysis API. FE1.0

  • KT-55825 AA FE1.0: stackoverflow when resolution to a function with a recursive type parameter

Analysis API. FIR

  • KT-54311 K2: proper implementation of KtSymbolPointer
  • KT-50238 Analysis API: Implement KSymbolPointer for KtSymbol

Analysis API. FIR Low Level API

  • KT-52160 FIR: Substitution overrides on FirValueParameter-s are incorrectly unwrapped
  • KT-55566 LL FIR: Tests in compiler/testData/diagnostics/tests/testsWithJava17 fail under LL FIR
  • KT-55339 LL FIR: Missing RECURSIVE_TYPEALIAS_EXPANSION error in function type alias
  • KT-55327 LL FIR: Diverging UNRESOLVED_REFERENCE errors in recursive local function test
  • KT-54826 KtSymbolPointer: migrate from IdSignature to our own solution

Android

  • KT-54464 MPP, Android SSL2: Add a flag for suppressing warning in case of using Android Style folders

Backend. Wasm

  • KT-38924 Wasm support in nodejs
  • KT-56160 Getting WebAssembly.CompileError in browsers not supported GC and other required proposals
  • KT-46773 Implement an experimental version of the Kotlin/Wasm compiler backend
  • KT-56584 K/Wasm: Can’t link symbol class
  • KT-56166 Fix compatibility with Firefox Nightly
  • KT-55589 Basic support of WASI
  • KT-53790 Reading from «node:module» is not handled by plugins error with Kotlin/Wasm 1.7.20-Beta

Compiler

New Features

  • KT-54535 Implement custom equals and hashCode for value classes in Kotlin/JVM
  • KT-55949 Release experimental @Volatile support in native
  • KT-44698 Frontend (K2): print file name/line on compiler crash/exception
  • KT-54666 K2: Allow to skip specifying type arguments for members from raw type scope
  • KT-54524 Implement Java synthetic property references in compiler
  • KT-54024 K2: support -Xlink-via-signatures mode

Performance Improvements

  • KT-33722 JVM: Result API causes unnecessary boxing
  • KT-53330 Optimize for-loops and contains over open-ended ranges with until operator (..<) for all backends
  • KT-54415 JVM BE: performance loss related to multi-field inline class lowering
  • KT-48759 Infix compareTo boxes inline classes
  • KT-55033 Make org.jetbrains.kotlin.resolve.calls.inference.model.NewConstraintSystemImpl#runTransaction an inline function
  • KT-54501 Improve code generation for inline classes with custom equals

Fixes

  • KT-56965 K/N: linkDebugFrameworkIosArm64 tasks failing with UnsupportedOperationException: VAR name:disposables type:com.badoo.reaktive.disposable.CompositeDisposable [val]
  • KT-56611 Native: new native caches are broken when KONAN_DATA_DIR is defined to a directory inside ~/.gradle
  • KT-55251 Enum.entries compilation error should be more specific
  • KT-56527 K2: «AssertionError: Assertion failed» during compilation in SequentialFilePositionFinder
  • KT-56526 InvalidProtocolBufferException on reading module metadata compiled by K2 in 1.8.20
  • KT-57388 Kapt+JVM_IR: «RuntimeException: No type for expression» for delegated property
  • KT-53153 Synthetic Enum.entries can be shadowed by user-defined declarations
  • KT-51290 «AssertionError: Parameter indices mismatch at context» with context receivers
  • KT-57242 Equals behaviour for value classes implementing interfaces is different between 1.8.10 and 1.8.20-RC
  • KT-57261 «IllegalArgumentException was thrown at: MemoizedInlineClassReplacements.getSpecializedEqualsMethod» when comparing non-inline class instance with an inline class instance
  • KT-57107 Handling of Windows line endings CRLF broken in latest snapshot with K2
  • KT-57117 K2: Compiler reports invalid columns in diagnostics in case of crlf line endings
  • KT-56500 The type parameter TYPE_PARAMETER name:E index:0 variance: superTypes:[kotlin.Any?] reified:false is not defined in the referenced function FUN LOCAL_FUNCTION_FOR_LAMBDA
  • KT-56258 VerifyError: Bad local variable type when using -Xdebug
  • KT-54455 Unexpected result of equality comparison of inline class objects
  • KT-56251 Generic Java synthetic property references don’t work in K2
  • KT-55886 K2: Wrong code location mapping with Windows line endings
  • KT-43296 FIR: Complicated interaction between smart cast and inference leads to false-positive diagnostic
  • KT-57053 Problem around anonymous objects in inline functions
  • KT-54950 NoSuchMethodError on calling ‘addAll’ on inline class implementing mutable list
  • KT-56815 compileKotlin task is stuck with while(true) and suspend function
  • KT-56847 Unresolved reference to Java annotation in Kotlin class with the same name packages
  • KT-52459 Context receivers: AbstractMethodError caused by Interface method with both an extension and a context receiver is overriden incorrectly in subclasses
  • KT-56215 JVM: Object extension function nullable receiver null check false negative when object is null
  • KT-56188 K/N: AssertionError when casting SAM wrapper with generic type parameter
  • KT-56033 Restore ‘isMostPreciseContravariantArgument’ function signature for compatibility
  • KT-56407 Backend Internal error: Exception during IR lowering during :daemon-common-new:compileKotlin
  • KT-55887 K2. «IllegalStateException: org.jetbrains.kotlin.ir.expressions.impl.IrErrorCallExpressionImpl is not expected» on adding kotlin.plugin.jpa
  • KT-56701 K2 (with LightTree) reports syntax errors without additional information
  • KT-56649 K2 uses 0-index for line numbers rather than 1-index
  • KT-54807 K2. Support @OnlyInputTypes diagnostic checks (contains like calls)
  • KT-51247 «AssertionError: org.jetbrains.kotlin.ir.expressions.impl.IrFunctionReferenceImpl» caused by context receiver functional types
  • KT-55436 K1: implement warning about shadowing of the derived property by the base class field
  • KT-56521 Static scope…

Kotlin 1.8.20-RC2

Changelog

Compiler

  • KT-57388 Kapt+JVM_IR: «RuntimeException: No type for expression» for delegated property
  • KT-57242 Equals behaviour for value classes implementing interfaces is different between 1.8.10 and 1.8.20-RC
  • KT-57261 «IllegalArgumentException was thrown at: MemoizedInlineClassReplacements.getSpecializedEqualsMethod» when comparing non-inline class instance with an inline class instance
  • KT-56527 K2: «AssertionError: Assertion failed» during compilation in SequentialFilePositionFinder
  • KT-57107 Handling of Windows line endings CRLF broken in latest snapshot with K2

Tools. Gradle

  • KT-57296 Build statistics sending errors in case of buildSrc directory usage with kotlin-dsl plugin applied

Tools. Gradle. JS

  • KT-57285 KJS / Gradle / MPP: FileNotFoundException on publishing empty KJS sourceset

Tools. Gradle. Multiplatform

  • KT-57460 Kotlin Gradle Plugin: Null this pointer in transformCommonMainDependenciesMetadata
  • KT-57306 [Kotlin 1.8.20-RC] GradleException: Could not load the value of field apiConfiguration of org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.DefaultKotlinCompilationConfigurationsContainer

Checksums

File Sha256
kotlin-compiler-1.8.20-RC2.zip 0db23d86962bece7577c19b76ec6b27611e5c4b7c70e93d71451d289e6a7741b
kotlin-native-linux-x86_64-1.8.20-RC2.tar.gz e38429bd0f778689c3953d4c3d5aa67c30fc9c39c0fa4d75463fa645356aa97b
kotlin-native-macos-x86_64-1.8.20-RC2.tar.gz 0939c73f2d30b0eaed826d2dd3eb6ce0a4720ccaa48a8fed2b9439b3168273ef
kotlin-native-macos-aarch64-1.8.20-RC2.tar.gz 536fb2d6f26d4f9ed351a07c8673fe3c8d669cedc983b6151ef1d36f8bd564b4
kotlin-native-windows-x86_64-1.8.20-RC2.zip 2fd80c2f59125469d17d35a79c7711302875f8dd4a0403d6e0885e678a099ece

download install kotlin windows

So you want to download and install Kotlin on Windows?

Then look no further!

In this guide, you’ll learn how to download the compiler…

…and how to configure it so you can use it from command line.

So let’s fire away:

What is Kotlin?

Kotlin is a programming language. It runs on the Java Virtual Machine (JVM) but also provides the ability to target JavaScript.

A key aspect of Kotlin is the interoperability with Java. You can write Kotlin and Java code in the same project and they’ll work hand in hand.

Kotlin originated at JetBrains and has been open source since 2012.

Step #1: Check Prerequisites

Kotlin needs a JDK to work. So let’s check if you have one configured on your system.

Click on the search button. Then type “cmd” (without quotes).

On Windows 7 click on the Windows button.

Click on the Command Prompt shortcut.

windows search cmd

Wait for the command prompt to open.

Type “javac -version” and press ENTER.

jdk version command

The above command prints the installed JDK version.

jdk installed version

For Kotlin you need JDK version 1.6 or higher.

If you do not have a Java Development Kit installed on your system. Check following post which details how to install a JDK on Windows 10.

Step #2: Download

Go to the Kotlin Latest Release page on GitHub.

Click on the kotlin-compiler-X.X.X.zip link under the Assets section.

At the time of writing the latest stable Kotlin release was version 1.2.61.

kotlin latest stable release

Wait for the download to complete.

Step #3: Install

Open the location of the downloaded installer.

kotlin downloaded compiler

Right-click the ZIP archive file. Select Extract All….

kotlin downloaded compiler extract all

Select an extract destination for the Kotlin files.

In this example, we extract in C:\Users\Downlinko\tools\kotlin.

kotlin extract destination

Click on Extract. This extracts all kotlin files under C:\Users\Downlinko\tools\kotlin\kotlinc.

From now on we refer to this location as [KOTLIN_INSTALL_DIR].

kotlin install dir

Step #4: Setup

We need to set up an environment variable that will point to our Kotlin installation.

Click on the search button. Then type “env”.

On Windows 7 click on the Windows button.

Click on the Edit environment variables for your account shortcut.

windows search env

Wait for the environment variables window to open.

Click on New….

windows account environment variables jdk new

Enter “KOTLIN_HOME” as variable name. Enter the [KOTLIN_INSTALL_DIR] as variable value.

In this tutorial the installation directory is: C:\Users\Downlinko\tools\kotlin\kotlinc.

Click OK.

kotlin home variable

Next, we need to configure the PATH environment variable so we can run Kotlin from a command prompt.

Select the PATH variable. Click on Edit….

kotlin edit path variable

Click on New and type “%KOTLIN_HOME%\bin” as shown below.

Click OK.

kotlin path variable

Click OK once more to close the environment variables window.

kotlin windows account environment variables

On Windows 7 you cannot add extra values for an existing Path variable. You need to append “;%KOTLIN_HOME%\bin” at the end of the variable value instead.

Step #5: Test

To test the setup click on the search button. Then type “cmd”.

Click on the Command Prompt shortcut.

windows search cmd

Wait for the command prompt to open.

Type “kotlinc -version” and press ENTER.

kotlin version command

The above command prints the installed Kotlin version.

kotlin version output

Congratulations, you have installed Kotlin on Windows 10!

Now get started and write your first lines of Kotlin code.

Be sure to leave a comment if you liked this post.

Thanks!

The Kotlin Programming Language.

  • Overview
  • Versions
  • Reviews
  • Resources

Changelog

Backend. Wasm

  • KT-58188 Restore binary compatibility of PlatformDiagnosticSuppressor.shouldReportUnusedParameter
  • KT-58293 Wasm: ReferenceError: e is not defined in kotlin.test.jsThrow
  • KT-58931 Wasm tests are failing to start on Kotlin 1.9.0-Beta

Compiler

Fixes

  • KT-58621 K2: Private class shadows public function defined in the same package
  • KT-59102 K2: constant evaluator does not provide Long type on shl
  • KT-59079 «AE: SyntheticAccessorLowering should not attempt to modify other files!» with callable reference to constructor with value class parameter
  • KT-58787 KAPT: «NullPointerException: null cannot be cast to non-null type» with delegate
  • KT-58837 Partial linkage fails to report any compiler message on Windows when launched through Gradle plugin
  • KT-59030 [PL] Workaround for broken @Deprecated annotations in c-interop KLIBs
  • KT-58618 K2: Local property delegates cannot infer generic return type
  • KT-58897 K2: False positive unresolved reference with same-named enum class and its entry
  • KT-56927 Enum with secondary constructor can’t be compiled with K2 using JS/Native backend
  • KT-57570 Remove source code excerpts from platform type nullability assertion exceptions
  • KT-52774 Resolve unqualified enum constants based on expected type

IDE. Gradle Integration

  • KT-59034 MPP build failed with «Factory type is not known for plugin variants» in kt-231-*

JavaScript

  • KT-58570 KJS: ES6 classes + PL throw java.lang.NullPointerException
  • KT-58835 K2/JS: Fix incremental compilation klib tests
  • KT-58794 KJS / K2: Assertion failed with Space build

Libraries

  • KT-58985 Update KClass.isData KDoc
  • KT-58276 Deprecate redundant public declarations in kotlin.native.concurrent

Native. ObjC Export

  • KT-58839 K/N: Exception during HiddenFromObjC marked class extension function compiling

Tools. Compiler plugins. Serialization

  • KT-58918 Serialization: NPE at run time obtaining a serializer for a sealed class with a generic self-referencing property
  • KT-58954 Serialization: NPE at run time when accessing a delegating property of a deserialized object
  • KT-59113 Serialization: NPE at run time when accessing a delegating property of a deserialized object
  • KT-57647 Serialization: «IllegalAccessError: Update to static final field» caused by serializable value class

Tools. Gradle

  • KT-59256 [1.9.0-Beta] ServiceLoader does not pick up classes defined in the same project
  • KT-58662 Gradle 8.1 + Configuration Cache: custom values data is missing from build report
  • KT-59063 Explicit API mode broken in Kotlin 1.9.0-Beta
  • KT-59191 Actual compilation failure exception might be hidden in the case of a Kotlin daemon crash
  • KT-59056 FreeCompilerArgs options added using ‘subprojects’ extension override module-level freeCompilerArgs options
  • KT-55740 Gradle 8: Listener registration using Gradle.addBuildListener() has been deprecated
  • KT-58251 Build Statistics. Kotlin-specific tags are missing in build scans if projects use Gradle 8+
  • KT-58916 [1.9.0-Beta] PLUGIN_CLASSPATH_CONFIGURATION_NAME and NATIVE_COMPILER_PLUGIN_CLASSPATH_CONFIGURATION_NAME should stay public or offer an alternative API
  • KT-58869 K2, Gradle: Improve message «100% (2/2) tasks have compiled with Kotlin 2»

Tools. Gradle. JS

  • KT-59116 K/JS npm dependcies are not resolved properly on Kotlin 1.9
  • KT-58970 browserTest gradle task fails if karma is used and gradle configuration cache is enabled
  • KT-59004 Kotlin JS 1.9.0-Beta, yarn.lock is unstable in multi module project

Tools. Gradle. Multiplatform

  • KT-57903 Prepare for migration to the pluggable android target plugin
  • KT-58661 KGP: KotlinJvmTarget: Implement ‘run’ carrier task
  • KT-59055 KotlinJvmRun not respecting jvmToolchain setting

Tools. Gradle. Native

  • KT-57823 KotlinNativeCompileOptions.moduleName value is ignored and replaced with the default one if to set up using compilations
  • KT-58838 KGP/Multiplatform: 1.9.0-Beta with custom cinterops: IllegalStateException: Could not create domain object ‘jni’ (DefaultCInteropSettings)

Tools. Incremental Compile

  • KT-58986 New IC: ISE «The following LookupSymbols are not yet converted to ProgramSymbols: LookupSymbol(name=$$delegatedProperties, …)»

Tools. Parcelize

  • KT-59112 K2: «IllegalStateException: Function has no body with @Parcelize» on nested sealed class hierarchies

Checksums

File Sha256
kotlin-compiler-1.9.0-RC.zip d00312caa89de1dd3f62d80d5b31724efc333101616ba4a22caf4458862315e7
kotlin-native-linux-x86_64-1.9.0-RC.tar.gz 2dc30ef2b73bcc561decd5efc7b78b7431cfe2fb982c471baaa6762c5022ce5a
kotlin-native-macos-x86_64-1.9.0-RC.tar.gz a4b9b2dbb6793ee6857e3cbdecceb2d972aba1c1055e64bd7cce90fe0c776afc
kotlin-native-macos-aarch64-1.9.0-RC.tar.gz 1ca609007c2cbc587b4ce5e689064867ec18a377ce0ca24a777edf8d74cb7df9
kotlin-native-windows-x86_64-1.9.0-RC.zip b3e35851992132fea2608fa6be87f0fda4b613bca2a4417e5dc3bf1509128a2d

Changelog

Tools. Gradle

  • KT-58280 org.jetbrains.kotlin.jvm Gradle plugin contributes build directories to the test compile classpath

Checksums

File Sha256
kotlin-compiler-1.8.22.zip 91f50fe25c9edfb1e79ae1fe2ede85fa4728f7f4b0587644a4eee40252cdfaa6
kotlin-native-linux-x86_64-1.8.22.tar.gz a1fb41fc010b347d5d9a5449ebb48ad200c59ec2a9121b01db5165db6697e58b
kotlin-native-macos-x86_64-1.8.22.tar.gz 0d6e6b12569a4b8ff2f301f827192dd715a29962cc01eed05557aa8e6eb7c20d
kotlin-native-macos-aarch64-1.8.22.tar.gz 29805af3220eab3c163ac54f02a6097436d4ddfa83eca7815eb053517093e417
kotlin-native-windows-x86_64-1.8.22.zip 91b04aa9f3dc3d5968c75d8e7f163e542458867915777e995162864cc805b2e5

Changelog

Compiler

  • KT-57848 Native: compilation of dynamic/static library fails with Xcode 14.3
  • KT-57875 Native compilation failure: Suspend functions should be lowered out at this point, but FUN LOCAL_FUNCTION_FOR_LAMBDA
  • KT-57946 KAPT: «RuntimeException: No type for expression» with delegate

JavaScript

  • KT-57356 KJS: StackOverflowException on @JsExport with type parameters referring to one another

Tools. Commonizer

  • KT-57796 NoSuchFileException in :module-B:commonizeCInterop with Kotlin 1.8.20

Tools. Compiler plugins. Serialization

  • KT-58067 Serialization: NullPointerException caused by @Contextual property with type with generic
  • KT-57730 Serialization: «IllegalStateException: Serializer for element of type .Foo has not been found» caused by serialization of Java type

Tools. Gradle. JS

  • KT-57766 KJS / Gradle «Module not found: Error: Can’t resolve ‘kotlin-kotlin-stdlib-js-ir'» when using «useEsModules»

Tools. Kapt

  • KT-58027 Kotlin 1.8.20 kapt issue «null: KtCallExpression: build()»

Tools. Maven

  • KT-58048 Maven: «Too many source module declarations found» after upgrading to 1.8.20
  • KT-58101 ‘Unable to access class’ in kotlin-maven-plugin after updating to Kotlin 1.8.20

Checksums

File Sha256
kotlin-compiler-1.8.21.zip 6e43c5569ad067492d04d92c28cdf8095673699d81ce460bd7270443297e8fd7
kotlin-native-linux-x86_64-1.8.21.tar.gz 0fc854641dd6d88dce3cc044bb5bc99b9035480474e23541eff03771690c68cf
kotlin-native-macos-x86_64-1.8.21.tar.gz e73bfdac0461ee0c84f25e61063c243bf8d4eb8e0ff5da250456d6a23c677fd6
kotlin-native-macos-aarch64-1.8.21.tar.gz 0a97957921ed55458f3e6cc9117643914ccf3663d8ad7eb161a4a03035a7521b
kotlin-native-windows-x86_64-1.8.21.zip f23d3288a47ee580f82f862d55452a75074fce3d26fe7e7f55e27b6015226d8d

Changelog

Compiler

  • KT-57388 Kapt+JVM_IR: «RuntimeException: No type for expression» for delegated property
  • KT-57242 Equals behaviour for value classes implementing interfaces is different between 1.8.10 and 1.8.20-RC
  • KT-57261 «IllegalArgumentException was thrown at: MemoizedInlineClassReplacements.getSpecializedEqualsMethod» when comparing non-inline class instance with an inline class instance
  • KT-56527 K2: «AssertionError: Assertion failed» during compilation in SequentialFilePositionFinder
  • KT-57107 Handling of Windows line endings CRLF broken in latest snapshot with K2

Tools. Gradle

  • KT-57296 Build statistics sending errors in case of buildSrc directory usage with kotlin-dsl plugin applied

Tools. Gradle. JS

  • KT-57285 KJS / Gradle / MPP: FileNotFoundException on publishing empty KJS sourceset

Tools. Gradle. Multiplatform

  • KT-57460 Kotlin Gradle Plugin: Null this pointer in transformCommonMainDependenciesMetadata
  • KT-57306 [Kotlin 1.8.20-RC] GradleException: Could not load the value of field apiConfiguration of org.jetbrains.kotlin.gradle.plugin.mpp.compilationImpl.DefaultKotlinCompilationConfigurationsContainer

Checksums

File Sha256
kotlin-compiler-1.8.20-RC2.zip 0db23d86962bece7577c19b76ec6b27611e5c4b7c70e93d71451d289e6a7741b
kotlin-native-linux-x86_64-1.8.20-RC2.tar.gz e38429bd0f778689c3953d4c3d5aa67c30fc9c39c0fa4d75463fa645356aa97b
kotlin-native-macos-x86_64-1.8.20-RC2.tar.gz 0939c73f2d30b0eaed826d2dd3eb6ce0a4720ccaa48a8fed2b9439b3168273ef
kotlin-native-macos-aarch64-1.8.20-RC2.tar.gz 536fb2d6f26d4f9ed351a07c8673fe3c8d669cedc983b6151ef1d36f8bd564b4
kotlin-native-windows-x86_64-1.8.20-RC2.zip 2fd80c2f59125469d17d35a79c7711302875f8dd4a0403d6e0885e678a099ece

Changelog

Backend. Wasm

  • KT-56584 K/Wasm: Can’t link symbol class

Compiler

Fixes

  • KT-57053 Problem around anonymous objects in inline functions
  • KT-56965 K/N: linkDebugFrameworkIosArm64 tasks failing with UnsupportedOperationException: VAR name:disposables type:com.badoo.reaktive.disposable.CompositeDisposable [val]
  • KT-56815 compileKotlin task is stuck with while(true) and suspend function
  • KT-56258 VerifyError: Bad local variable type when using -Xdebug
  • KT-56847 Unresolved reference to Java annotation in Kotlin class with the same name packages
  • KT-56526 InvalidProtocolBufferException on reading module metadata compiled by K2 in 1.8.20
  • KT-56500 The type parameter TYPE_PARAMETER name:E index:0 variance: superTypes:[kotlin.Any?] reified:false is not defined in the referenced function FUN LOCAL_FUNCTION_FOR_LAMBDA
  • KT-56611 Native: new native caches are broken when KONAN_DATA_DIR is defined to a directory inside ~/.gradle
  • KT-56215 JVM: Object extension function nullable receiver null check false negative when object is null
  • KT-56033 Restore ‘isMostPreciseContravariantArgument’ function signature for compatibility
  • KT-56407 Backend Internal error: Exception during IR lowering during :daemon-common-new:compileKotlin
  • KT-56701 K2 (with LightTree) reports syntax errors without additional information
  • KT-56649 K2 uses 0-index for line numbers rather than 1-index
  • KT-56521 Static scope initializers sometimes not called when first accessed from interop
  • KT-49182 Strange cast from Unit to String
  • KT-55125 Difference in generated bytecode for open suspend functions of generic classes

IDE. Gradle. Script

  • KT-56941 Gradle KTS / Navigation: Go to declaration for Java types doesn’t work

JavaScript

  • KT-56602 KJS / Serialization: polymorphicDefaultDeserializer unbound on Kotlin 1.8.20-Beta
  • KT-56580 KJS: languageVersionSettings string is unstable
  • KT-56581 KJS: Lock file for incremental cache
  • KT-56582 KJS: Function type interface reflection crashes the compiler in incremental build
  • KT-56469 KJS: BE Incremental rebuild spoils source map comment

Libraries

  • KT-55935 [Kotlin/JVM] Path.copyToRecursively does not work across file systems

Native

  • KT-56443 Native link task reports w: Cached libraries will not be used for optimized compilation

Tools. CLI

  • KT-56789 Metaspace memory leak in CoreJrtFileSystem
  • KT-56992 Performance test regression in Gradle when switching to Kotlin 1.8.20
  • KT-56925 Remove warning about assignment plugin
  • KT-57077 1.8.20-RC-243 shows Java 19 warnings even if configured with Java 17 toolchain

Tools. Compiler Plugins

  • KT-56487 Add more methods to DescriptorSerializerPlugin

Tools. Compiler plugins. Serialization

  • KT-56738 Unexpected SERIALIZER_NOT_FOUND when compiling against binary with enum
  • KT-56990 «AssertionError: SyntheticAccessorLowering should not attempt to modify other files» in kotlinx-serialization using @Serializer and List argument

Tools. Gradle

  • KT-56221 Gradle KTS: False positive Val cannot be reassigned when using an extension and its property with an implicit set operator
  • KT-55452 Values of the compiler arguments set via KotlinCompile task configuration are duplicated by the KaptGenerateStubs task
  • KT-56645 Gradle: KGP reports an incorrect resources processing task name for JVM projects
  • KT-55565 Consider de-duping or blocking standard addition of freeCompilerArgs to KaptGenerateStubsTask
  • KT-56414 Dependency locking and failed builds with Kotlin 1.8.10

Tools. Gradle. JS

  • KT-57068 KJS / Gradle: «Unable to find method ‘kotlin.gradle.targets.js.dsl.KotlinJsBrowserDsl.testTask'» after updating to 1.8.20-Beta
  • KT-56999 K/JS: KotlinJsIrLink::rootCacheDirectory property must be public
  • KT-56765 K/JS: Several binaries use same cache directory
  • KT-56488 Debugger won’t stop on breakpoints of JS browser test
  • KT-56719 KJS / Gradle: Compile sync task has to sync only changed files

Tools. Gradle. Multiplatform

  • KT-56729 commonizeCInterop: Duplicated libraries: co.touchlab:sqliter-driver-cinterop-sqlite3
  • KT-56510 Import with included plugin build may fail with OverlappingFileLockException during commonizeNativeDistribution

Tools. Kapt

  • KT-56635 KAPT / IR: «Unresolved reference: DaggerGeneratedCodeTest_AppComponent » caused by stub generation with Kotlin 1.8.20-Beta
  • KT-56360 Kapt with JVM IR changes fields order

Checksums

File Sha256
kotlin-compiler-1.8.20-RC.zip cd90d3fef3608f8866520c84f4fe729e6733b13cfa18bf93ebb52a2cf3f37b7b
kotlin-native-linux-x86_64-1.8.20-RC.tar.gz 35296775617118bc2e703f3e226bbb827885765be7001a9ebcd5cb68783ce323
kotlin-native-macos-x86_64-1.8.20-RC.tar.gz f76faf8063d9d170db2dc5bb1b5d442787b0cf69983aa0605c1da22f31ef33b7
kotlin-native-macos-aarch64-1.8.20-RC.tar.gz 45694d385d09eb0eb075fa08b1bbf5000289120e6de677b71504481010a170a7
kotlin-native-windows-x86_64-1.8.20-RC.zip 9a0ce3887a4fc188b209a3ceff2b9235b2bd5ac965b1259b62ac91b9ea914b0f

v1.8.20-Beta

8 months ago

Changelog

Analysis API

  • KT-55510 K2: Lost designation for local classes
  • KT-55191 AA: add an API to compare symbol pointers
  • KT-55487 K2: symbol pointer restoring doesn’t work for static members
  • KT-55336 K2 IDE: «java.lang.IllegalStateException: Required value was null.» exception while importing a compiled JPS project
  • KT-55098 AA: KtDeclarationRenderer should render a context receivers
  • KT-51181 LL API: errors for SAM with suspend function from another module
  • KT-50250 Analysis API: Implement Analysis API of KtExpression.isUsedAsExpression
  • KT-54360 KtPropertySymbol: support JvmField in javaSetterName and javaGetterName

Analysis API. FIR

  • KT-54311 K2: proper implementation of KtSymbolPointer
  • KT-50238 Analysis API: Implement KSymbolPointer for KtSymbol

Analysis API. FIR Low Level API

  • KT-52160 FIR: Substitution overrides on FirValueParameter-s are incorrectly unwrapped
  • KT-54826 KtSymbolPointer: migrate from IdSignature to our own solution

Android

  • KT-54464 MPP, Android SSL2: Add a flag for suppressing warning in case of using Android Style folders

Backend. Wasm

  • KT-56160 Getting WebAssembly.CompileError in browsers not supported GC and other required proposals
  • KT-56166 Fix compatibility with Firefox Nightly
  • KT-55589 Basic support of WASI
  • KT-46773 Implement an experimental version of the Kotlin/Wasm compiler backend
  • KT-53790 Reading from «node:module» is not handled by plugins error with Kotlin/Wasm 1.7.20-Beta

Compiler

New Features

  • KT-55949 Release experimental @Volatile support in native
  • KT-44698 Frontend (K2): print file name/line on compiler crash/exception
  • KT-54666 K2: Allow to skip specifying type arguments for members from raw type scope
  • KT-54535 Implement custom equals and hashCode for value classes in Kotlin/JVM
  • KT-54524 Implement Java synthetic property references in compiler
  • KT-54024 K2: support -Xlink-via-signatures mode

Performance Improvements

  • KT-53330 Optimize for-loops and contains over open-ended ranges with until operator (..<) for all backends
  • KT-48759 Infix compareTo boxes inline classes
  • KT-55033 Make org.jetbrains.kotlin.resolve.calls.inference.model.NewConstraintSystemImpl#runTransaction an inline function
  • KT-33722 JVM: Result API causes unnecessary boxing

Fixes

  • KT-53153 Synthetic Enum.entries can be shadowed by user-defined declarations
  • KT-54140 SOE at IrBasedDescriptorsKt.makeKotlinType with mixing recursive definitely not nullable type with nullability
  • KT-56224 Clarify message «Secondary constructors with bodies are reserved for for future releases» for secondary constructors in value classes with bodies
  • KT-54662 K2: Assign operator ambiguity on synthetic property from java
  • KT-54507 K2: Wrong implicitModality for interface in FirHelpers
  • KT-55912 «UnsupportedOperationException: Unsupported const element type kotlin.Any» caused by kotlin fqn in annotation
  • KT-55251 Enum.entries compilation error should be more specific
  • KT-43296 FIR: Complicated interaction between smart cast and inference leads to false-positive diagnostic
  • KT-55483 K2: Fir is not initialized for FirRegularClassSymbol java/lang/invoke/LambdaMetafactory
  • KT-56188 K/N: AssertionError when casting SAM wrapper with generic type parameter
  • KT-54209 K2: false positive deprecation on a class literal with deprecated companion
  • KT-55408 K2: can’t access indirectly inherited from a package-private class Java members through a type alias
  • KT-55116 K2: store static qualifiers in dispatch receiver field
  • KT-55436 K1: implement warning about shadowing of the derived property by the base class field
  • KT-55368 K2/MPP: Metadata compiler
  • KT-53846 K2 / Context receivers: ClassCastException on secondary constructor of class with context receiver
  • KT-54305 K1: implement warning «synthetic setter projected out»
  • KT-52027 «NullPointerException» when using context receivers with inline fun
  • KT-55984 Stack allocated array is not cleaned between loop iterations
  • KT-52593 Provide Alpha support for JS in the K2 platform
  • KT-54656 NoSuchMethodError on invoking Java constructor which takes an inline value class as a parameter
  • KT-55606 K2. Infix operator «in» works on ConcurrentHashMap when it’s declared through another class
  • KT-53884 K2: «IllegalStateException: Fir is not initialized for FirRegularClassSymbol com/appodeal/consent/Consent.a» when importing this class
  • KT-54502 Synthetic extensions on raw types work differently from regular getter calls
  • KT-49351 FIR: Raw type scopes are unsupported
  • KT-49345 FIR: Properly support raw types in type parameter upper bounds
  • KT-55887 K2. «IllegalStateException: org.jetbrains.kotlin.ir.expressions.impl.IrErrorCallExpressionImpl is not expected» on adding kotlin.plugin.jpa
  • KT-55733 K2. Reference resolve works incorrectly for classes declared through typealias
  • KT-46369 FIR: Investigate raw types for arrays
  • KT-41794 [FIR] Implement raw type based scope
  • KT-55181 K2. No compilation error on throwing not throwable
  • KT-55398 Kotlin inline nested inline lambda’s inline variable will inline not correctly
  • KT-55359 K2. No error when secondary constructor does not delegate to primary one
  • KT-55759 K2: Unresolved reference of serializer if library linking is used (with kotlinx.serialization plugin)
  • KT-54705 Kotlin scripting doesn’t support files with UTF-8 BOM
  • KT-51753 FIR: various errors due to expect/actual mapping absence in translator
  • KT-44515 FIR DFA: extract non-null info from anonymous object’s initialization
  • KT-55018 K2 / serialization: FIR2IR fails on local companion
  • KT-55284 Refactor org.jetbrains.kotlin.diagnostics.KtDiagnosticReportContextHelpersKt#reportOn(…)
  • KT-55693 K2. Type inference changed in k2
  • KT-54332 Add deprecation warning for false-negative TYPE_MISMATCH for KT-49404
  • KT-55597 K2. This type has a constructor, and thus must be initialized here error is missed for anonymous object inherits class with no-arg constructor
  • KT-52459 Context receivers: AbstractMethodError caused by Interface method with both an extension and a context receiver is overriden incorrectly in subclasses
  • KT-54357 «ClassCastException: class org.jetbrains.kotlin.resolve.scopes.receivers.ExtensionReceiver cannot be cast to class org.jetbrains.kotlin.resolve.scopes.receivers.ContextClassReceiver» with anonymous object extending a class with a context receiver
  • KT-51397 «VerifyError: Bad type on operand stack» with context receivers
  • KT-54905 KLIB check on compiled with pre-release version
  • KT-55615 K2 often does not expand type aliases in annotation position
  • KT-54522 K2: ambiguity between operator candidates on += (plusAssign) to reassigned var of MutableList type
  • KT-54300 K2: No «Projections are not allowed for immediate arguments of a supertype» for projection in supertypes of an anonymous object
  • KT-55495 K2: support lateinit intrinsic applicability checker
  • KT-33132 Cannot override the equals operator twice (in a class and its subclass) unless omitting the operator keyword in the subclass
  • KT-55288 False negative WRONG_ANNOTATION_TARGET on type under a nullability qualifier
  • KT-54730 K2: type aliases to generic functional interfaces attempt to re-infer explicitly specified type parameters
  • KT-55611 IC / MPP: Optional internal annotations are not visible on incremental builds
  • KT-55656 K2: PRIMARY_CONSTRUCTOR_DELEGATION_CALL_EXPECTED being a warning causes a NPE in runtime
  • KT-51277 «NoSuchElementException: Collection contains no element matching the predicate» with context receivers and star projection
  • KT-52791 Class with multiple context receivers fails -Xvalidate-ir with «Validation failed in file»
  • KT-55071 Shared Native Compilation: Calls from intermediate common source set cannot use default parameters declared in expect common functions
  • KT-54573 K2: untouched implicit types in delegated constructor call of data class with @JvmRecord
  • KT-55037 Support jspecify annotations moved to the new package org.jspecify.annotations in jspecify 0.3
  • KT-48989 JVM / IR: «IllegalStateException: Bad exception handler end» when first parameter of inline function is nullable with «try/catch/finally» default value and second parameter tries to call toString() on the first
  • KT-55231 K2: Contract declarations are not passed to checkers
  • KT-54411 False positive: INFERRED_TYPE_VARIABLE_INTO_POSSIBLE_EMPTY_INTERSECTION on kotlinx.coroutines code
  • KT-55005 Inconsistent behavior of array set operation in Kotlin 1.7.21
  • KT-44625 Property backing/delegate field annotations are not serialized/deserialized for non-JVM targets
  • KT-42490 Receiver annotations are not serialized/deserialized for non-JVM targets
  • KT-53441 K2: cannot access static method of package-private Java grandparent class
  • KT-54197 [K2] Exception from inliner for inline function with context receiver
  • KT-55246 Disable ‘CustomEqualsInValueClasses’ feature in 1.9 language version
  • KT-55247 Disable ‘InlineLateinit’ feature in 1.9 language version
  • KT-53957 K2 and -Xlambdas=indy: LambdaConversionException on reference to method with both context and extension receivers
  • KT-55421 K2: get rid of potentially redundant call of preCacheBuiltinClassMembers from getIrClassSymbol
  • KT-52815 Compiler option -Xjdk-release fails to compile mixed projects
  • KT-52236 Different modality in psi and fir
  • KT-54921 K2: cannot access static field of package-private Java parent class
  • KT-53698 K2: FIR2IR fails on call of inivisble extension function with Suppress
  • KT-53920 K2: «NoSuchElementException: Key org.jetbrains.kotlin.fir.resolve.dfa.cfg.ClassExitNode is missing in the map» with unreachable code and anonymous object
  • KT-51290 «AssertionError: Parameter indices mismatch at context» with context receivers
  • KT-51475 «ArrayIndexOutOfBoundsException: Index 4 out of bounds for length 4» with context(Any) on inline function with contract
  • KT-51247 «AssertionError: org.jetbrains.kotlin.ir.expressions.impl.IrFunctionReferenceImpl» caused by context receiver functional types
  • KT-51951 «IllegalStateException: No receiver» caused by implicit invoke on typealias context receiver
  • KT-52373 Context receivers: ClassCastException: function with dispatch, context, and extension receivers produces this when a parameter’s default is included
  • KT-54807 K2. Support @OnlyInputTypes diagnostic checks (contains like calls)
  • KT-54824 K2: missing smartcast after two levels of aliasing and a reassignment
  • KT-53368 Out of bounds read in sse version of String::hashCode
  • KT-51863 ClassCastException when using context receivers with named argument.
  • KT-55123 JvmSerializableLambda is not applicable in common code in multiplatform projects
  • KT-45970 Missing deprecation warnings for constant operators calls in property initializers
  • KT-54851 K2: analysis of as/is contains multiple errors that result in missing diagnostics
  • KT-54668 K2: Inference error in body of lazy property with elvis with Nothing in RHS
  • KT-53070 Update intellij testdata fixes for FIR and merge it to master
  • KT-54950 NoSuchMethodError on calling ‘addAll’ on inline class implementing mutable list
  • KT-53492 No parameter null check generated for constructor taking an inline class type
  • KT-55160 Kotlin’s fragment element types must not extend IStubFileElementType
  • KT-55143 K2: INAPPLICABLE_JVM_NAME in JVM does not work for inline classes
  • KT-47933 Report warning if kotlin.annotation.Repeatable is used together with java.lang.annotation.Repeatable
  • KT-55035 FIR: do not use FirValueParameter for FirFunctionalTypeRef
  • KT-55095 Wrong containingDeclarationSymbol in type parameter from Enhancement
  • KT-53946 K2: don’t resolve Enum.declaringClass and Enum.getDeclaringClass
  • KT-55074 OptIn false negative: constructor call with default argument value
  • KT-54260 K2: «AssertionError: No modifier list, but modifier has been found by the analyzer» when annotated annotation and AllOpen plugin
  • KT-55034 FIR: provide information about containing function/constructor to FirValueParameter
  • KT-53988 K2: False negative «The expression cannot be a selector (occur after a dot)»
  • KT-53983 K2 crashes with NPE when ‘this’ is used inside enum class constructor
  • KT-53371 Properly resolve FIR to get fully resolved annotations
  • KT-53519 FIR: argument mapping for annotations on value parameter is not properly built
  • KT-54827 MPP: «java.lang.IndexOutOfBoundsException: Index: 0» during compilation of androidMain target
  • KT-54417 K2: move receiver-targeted annotations to KtReceiverParameterSymbol and remove it from FirProperty receiver type
  • KT-54762 Private constructor is accessible from a public inline function via @PublishedAPI annotation
  • KT-54732 DirectedGraphCondensationBuilder.paint fails with StackOverflowError during linkReleaseFrameworkIos64
  • KT-54897 K2: value class with private constructor stripped by jvm-abi-gen cannot be used in another module
  • KT-54784 NPE from IrSourceCompilerForInlineKt.nonLocalReturnLabel on non-local break and continue in anonymous initializers and in scripts
  • KT-54840 Field for const property on interface companion object loses deprecated status when copied to interface
  • KT-53825 class files are generated when compilation fails with platform declaration clash
  • KT-52157 Annotation on type parameter isn’t present in the symbol loaded from the library
  • KT-54654 K2: Implicit types leaks into delegated member
  • KT-53255 [FIR2IR] StackOverflowError with long when-expression conditions
  • KT-48861 No warning on incorrect usage of array type annotated as Nullable in Java
  • KT-54539 @Deprecated on members of private companion object is no longer needed
  • KT-54401 Unhandled exception on compilation inline class with ‘equals’ from ‘Any’ returning ‘Nothing’
  • KT-54455 Unexpected result of equality comparison of inline class objects
  • KT-54378 K2: smart cast breaks subtyping in case with complex projections
  • KT-53761 Reified type not propagated to supertype token through two inline functions
  • KT-53876 Manually instantiated annotations with unsigned arrays are not equal
  • KT-51740 NO_VALUE_FOR_PARAMETER: Consider increasing error highlighting range
  • KT-54084 ClassCastException when trying to call a context receiver’s method
  • KT-51282 IllegalAccessError: Compiler for JVM 1.8+ makes lambdas access unaccessible classes when using @JvmMultifileClasses
  • KT-53479 False positive «Cannot access ‘runCatching’ before superclass constructor has been called»
  • KT-50950 JVM IR: «AssertionError: FUN SYNTHETIC_GENERATED_SAM_IMPLEMENTATION» when using bound reference to suspend SAM function
  • KT-49364 «VerifyError: Bad type on operand stack» on cast which «can never succeed» from ULong to Int

IDE

Performance Improvements

  • KT-55445 KtUltraLightClassModifierList.hasModifierProperty requires resolve for PsiModifier.PRIVATE

Fixes

  • KT-55862 Can’t resolve kotlin-stdlib-js sources in IDE
  • KT-55743 K2 SLC: SymbolLightClassForClassOrObject must have a name
  • KT-55604 Descriptor leak
  • KT-55502 SLC: drop redundant ‘final’ modifier from synthetic static enum members
  • KT-55497 LC: drop @NotNull annotation from parameter from synthetic Enum.valueOf
  • KT-55496 SLC: generated synthetic enum methods by symbols instead of manual creation
  • KT-55481 SLC: implement correct java annotations for annotation classes (Retention, Target, etc.)
  • KT-55470 SLC: implement light class for RepeatableContainer
  • KT-55442 SLC: ‘isInheritor’ for ‘DefaultImpls’ should work correctly
  • KT-40609 IDE: False positive «Exception is never thrown…» in Java when Kotlin getter is annotated with Throws
  • KT-54051 Migrate symbol light classes from KtSymbol to KtElement

JavaScript

New Features

  • KT-35655 Investigate could we use «names» field in SourceMaps to improve debug experience
  • KT-54118 Kotlin/JS IR: keep declarations with non-minified names

Fixes

  • KT-55720 KJS: ReferenceError: SuspendFunction1 is not defined with 1.8 when importingkotlin.coroutines.SuspendFunction1
  • KT-55930 KJS: A recursive callable reference of the inline function leads broken cross module references
  • KT-31888 Kotlin/JS: make possible to call main() in main run tasks, but not in test tasks
  • KT-51581 FIR: support JS backend
  • KT-55786 KJS: Rewriting of secondary constructors if they are protected
  • KT-52563 KJS / IR: Invalid TypeScript generated for class extending base class with private constructor
  • KT-55367 KJS / IR + IC: Moving an external declaration between different JsModules() doesn’t rebuild the JS code
  • KT-55240 KJS: «NoSuchElementException: No element of given type found» caused by @JsExport and Throwable's child class
  • KT-54398 KJS / IR + IC: Support *.d.ts generation
  • KT-55144 KJS / IR + IC: Modifying an inline function which is used as a default param in another inline function doesn’t invalidate a caller
  • KT-54134 KJS / IR: «TypeError: Cannot read properties of undefined» in js block wrapped with suspend functions around
  • KT-54911 KJS / IR + IC: invalidate all klib dependencies after removing it
  • KT-54912 KJS / IR + IC: Commit cache header only in the end (after lowering)
  • KT-52677 Native: StackOverFlow during «kotlin.ir.util.RenderIrElementVisitor$renderTypeAnnotations$1.invoke»
  • KT-54480 KJS: «Exported declaration contains non-consumable identifier» warning when exporting modules as default
  • KT-41294 KJS: Weird behaviour of j2v8 in test infra

Language Design

  • KT-55344 Deprecate @Synchronized in platforms except JVM

Libraries

  • KT-55978 Provide Common Base64 encoding in stdlib
  • KT-46211 [Kotlin/Native] Stack overflow crash in Regex classes with simple pattern and very large input
  • KT-31066 Add Closeable & use to common stdlib
  • KT-55609 Introduce experimental kotlin.concurrent.Volatile annotation
  • KT-39789 Segfault in Kotlin/Native regex interpreter
  • KT-35508 EXC_BAD_ACCESS(code=2, address=0x16d8dbff0) crashes on iOS when using a sequence (from map() etc.)
  • KT-53310 Native: HashMap/HashSet doesn’t reclaim storage after removing elements

Native

  • KT-55938 [Kotlin/Native] Inline functions accessing ObjC class companion cause compiler to crash when building static caches in 1.8.20 dev build

Native. C and ObjC Import

  • KT-55303 Objective-C import: improve -fmodules flag discoverability.
  • KT-39120 Cinterop tool doesn’t support the -fmodules compiler argument
  • KT-40426 Incorrect Objective-C extensions importing that prevents UIKit usage
  • KT-55653 Since Kotlin 1.8.0 NSView.resetCursorRects doesn’t exist anymore and cannot override it
  • KT-54284 Kotlin/Native: cinterop produces non-deterministic metadata

Native. ObjC Export

  • KT-56350 Kotlin/Native: restore «use Foundation» in generated Objective-C frameworks
  • KT-53638 Native: support disabling mangling globally for Swift names in generated Objective-C header
  • KT-53069 SOE on K/N framework build for Arm64
  • KT-53317 ObjCName annotation is not applied to an extension receiver in Objective-C export

Native. Stdlib

  • KT-53064 Native: provide stdlib API to obtain memory management statistics

Reflection

  • KT-27585 Flaky IllegalPropertyDelegateAccessException: Cannot obtain the delegate of a non-accessible property. Use «isAccessible = true» to make the property accessible
  • KT-55178 Improve performance of KCallable.callBy
  • KT-53279 Reflection: «KotlinReflectionInternalError: Method is not supported» caused by @Repeatable annotation deserialization at runtime if it’s repeated and contains arrays
  • KT-44977 Reflection: ClassCastException caused by annotations with «AnnotationTarget.TYPE» usage on array attributes access

Tools. CLI

  • KT-54652 Enable -Xuse-fir-lt by default when -Xuse-k2 is turned on, provide way to disable
  • KT-55784 Unable to format compilation errors with ansi colors in compilation server
  • KT-54337 CLI: compiling module-info.java without explicitly specified JDK home leads to a weird error

Tools. Commonizer

  • KT-47429 [Commonizer] OKIO support
  • KT-51517 C Interop Commonizer Fails On Classifier That Doesn’t Exist

Tools. Compiler Plugins

  • KT-53590 K2 Allopen does not look for transitive meta-annotations
  • KT-54020 [K2] [NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER] error in case ‘static Name’ param was added to @ AllArgsConstructor annotation and an empty list is set as a constructor param value
  • KT-53096 Create a pack of compiler utilities for generating declarations from plugins
  • KT-55248 K2/PluginAPI: getCallableNamesForClass/generateClassLikeDeclaration are not called for synthetic companions of local classes
  • KT-54756 Deprecate «legacy» mode of jvm-abi-gen plugin
  • KT-55233 jvm-abi-gen strips out InnerClass attributes
  • KT-54500 Private type aliases can be referenced from public declarations, but are stripped by jvm-abi-gen

Tools. Compiler plugins. Serialization

  • KT-49983 Implement prototype of kotlinx.serialization for K2 compiler
  • KT-54441 Prohibit implicit serializer customization via companion object
  • KT-48733 «AssertionError: Unexpected IR element found during code generation» caused by Serialization and annotation with default parameter
  • KT-54297 Regression in serializable classes with star projections

Tools. Gradle

New Features

  • KT-54492 Send gradle build errors from idea
  • KT-55540 Add compilation speed metric in build reports
  • KT-54691 Kotlin Gradle Plugin libraries alignment platform
  • KT-55541 Validate FUS metrics values on Gradle side

Performance Improvements

  • KT-55995 Add ability to perform precise compilation task outputs backup
  • KT-54836 Kotlin/JVM Gradle plugin creates task eagerly on Gradle 7.3+
  • KT-54579 Kapt tasks slow down significantly on Windows when running with JDK 17 compared to JDK 11
  • KT-54588 KotlinCompile: Avoid calling FileCollection.getFiles() multiple times

Fixes

  • KT-52625 Compatibility with Gradle 7.4 release
  • KT-55544 Gradle: add more debugging information for finding usages of kotlinOptions.freeCompilerArgs
  • KT-52149 Gradle: declare shared build services usages with Task#usesService
  • KT-53811 Compatibility with Gradle 7.6 release
  • KT-52998 Compatibility with Gradle 7.5 release
  • KT-55741 Gradle 8: Build service ‘‘ is being used by task ‘‘ without the corresponding declaration via ‘Task#usesService’.
  • KT-55174 KotlinCompile task produces deprecation «Build service ‘variant_impl_factories_…’ is being used by task»
  • KT-54425 Kotlin Gradle Plugin should not use deprecated UsageContext#getUsage()
  • KT-54998 «kotlin.gradle.performance» FUS collector reports data twice
  • KT-55520 Add required configuration for Kotlin Gradle Plugin API reference publication
  • KT-52963 Build report code breaks Gradle project isolation.
  • KT-55164 KGP: «Cannot access project ‘:’ from project ‘:list'» JVM — Project Isolation with Multi Modules and Configuration Cache fails
  • KT-52490 Gradle: [org.jetbrains.kotlin.gradle.testing.internal] TestReport.destinationDir and TestReport.reportOn deprecation warnings
  • KT-55000 Include information about the new IC into «kotlin.gradle.performance» FUS collector
  • KT-45748 Migrate all Kotlin Gradle plugin Android tests to new test setup
  • KT-54029 Validate Binary Compatibility for kotlin-gradle-plugin-api

Tools. Gradle. Cocoapods

  • KT-41830 CocoaPods integration: Support link-only mode for pods
  • KT-55801 Deprecate useLibraries
  • KT-55790 Improper sdk selected for watchosDeviceArm64 target

Tools. Gradle. JS

New Features

  • KT-37759 [Gradle, JS] Support arguments of command line for webpack and nodejs task
  • KT-33518 Allow specifying command line args for node in nodejs or mocha tests
  • KT-46163 KJS / Ktor: Support run on the next free port if default one is occupied

Performance Improvements

  • KT-39108 Kotlin multiplatform plugin targeting js takes too long compared to the old kotlin-frontend plugin
  • KT-45411 Investigate memory consumption in npm package
  • KT-55476 KotlinWebpack should be cacheable
  • KT-51376 KJS / Gradle: Dukat tasks make impact on build time even if there’s no npm dependencies

Fixes

  • KT-56131 KJS / Gradle: Could not create an instance of type org.jetbrains.kotlin.gradle.targets.js.subtargets.KotlinNodeJs when task configuration avoidance is broken
  • KT-37668 Kotlin/JS: nodeTest failure due to main() function fail is reported as «BUILD SUCCESSFUL»
  • KT-35285 Kotlin/JS + Gradle: browserDevelopementWebpack and browserProductionWebpack could write to different locations
  • KT-55593 KotlinJsCompilerType and KotlinJsCompilerTypeHolder LEGACY and BOTH constants should be marked as @Deprecated in 1.8
  • KT-33291 JS: No build result with gradle parallel build in multiproject build
  • KT-40925 KJS: need a way to configure extra environment variables for the test task
  • KT-47236 KJS: kotlinNpmInstall fails if no yarn is downloaded
  • KT-53288 KJS / Gradle: FileNotFoundException when customising moduleName
  • KT-54445 KJS Remove dukat integration
  • KT-54421 KJS / Legacy: Kotlin 1.7.20 fails when running tests on Node 14
  • KT-54418 KJS: Change test running with kotlin-test adapter
  • KT-54132 KJS IR: Sometimes karma failed on teamcity because of uninitialized browser

Tools. Gradle. Multiplatform

New Features

  • KT-53570 multiplatform ‘natural hierarchy’ prototype

Fixes

  • KT-55873 Unrequested dependencies leaking into common source sets: Regression after 703fd0f2
  • KT-55891 Deprecate pre-HMPP flags
  • KT-56285 TCS: Gradle Sync: IdeProjectToProjectCInteropDependencyResolver: Ensure lenient resolution
  • KT-56115 Multiplatform;Composite Builds: Support import with cinterop commonization enabled
  • KT-56204 KotlinTargetHierarchy: Changing naming from ‘any’ to ‘with’ prefix
  • KT-54974 TCS: Gradle Sync: Implement IdeKotlinDependencyResolvers
  • KT-38712 Gradle configuration’s name with word «implementation» is camelcased to «İmplementation» if default locale is Turkish
  • KT-54975 TCS: Gradle Sync: Implement stdlib-common filter for platform source sets
  • KT-36943 Gradle Plugin (multiplatform) — Consider publishing a ‘sourcesElements’ variant for the sources.jar
  • KT-48839 Sources.jar of the root artifact of MPP library includes source files from test sourcesets
  • KT-55492 TCS: Gradle Sync: Sources and Documentation as extra ‘classpath’
  • KT-55237 TCS: Gradle Sync: Support stdlib-native sources
  • KT-55475 TCS: Gradle Sync: Fine tune jvmAndAndroid source sets
  • KT-55189 TCS: Gradle Sync: Support icons (native, js) and global libraries
  • KT-55218 KotlinTargetHierarchy: Disambiguate declaring targets vs including targets
  • KT-55112 TCS: Gradle Sync: Resolve Source Dependencies
  • KT-54977 TCS: Gradle Sync: Implement debugging tools
  • KT-54948 TCS: Gradle Sync: Port IdeaKpmPlatformDependencyResolver to TCS
  • KT-55289 TCS: Gradle Sync: Prototypical sources jar resolution
  • KT-55238 TCS: Gradle Sync: Support commonized native distribution
  • KT-55230 Remove metadata dependencies transformation for runtimeOnly scope
  • KT-53338 Prettify the message about incompatible AGP and KGP versions
  • KT-54506 Test tasks are considered up-to-date after a failure when triggered by allTests
  • KT-54787 Test tasks are not up-to-date when an individual test task called after aggregating test task
  • KT-54033 Multiplatform/Android Source Set Layout 1: Also support setting source dirs using AGP Apis
  • KT-54202 CInterop Commonization fails on first run when native distribution is not yet commonizied
  • KT-54135 Add documentation with examples to CompositeMetadataArtifact

Tools. Gradle. Native

  • KT-55650 Pass through errors from Gradle to Xcode
  • KT-56205 Shared Native Compilation: False positive ‘w: Could not find’ warnings on metadata klibs
  • KT-54969 Support podspec generation for the new K/N artifact DSL

Tools. Incremental Compile

  • KT-53832 Enable new incremental compilation by default in Gradle
  • KT-55309 IC: Get rid of NonCachingLazyStorage
  • KT-53402 Incremental compilation tries to compile resources

Tools. JPS

  • KT-56165 Language version 1.9 and 2.0 is absent in Kotlin Compiler settings
  • KT-51536 [JPS] Recompile module on facet settings change
  • KT-53735 JPS / IC: «IOException: The system cannot find the file specified» on Windows
  • KT-47983 [JPS] Adding compilerSettings to Facet should initiate rebuild of module
  • KT-54449 Cyrillic characters in a filename break builds on linux

Tools. Kapt

New Features

  • KT-53135 Enable JVM IR for KAPT stub generation by default
  • KT-41129 kotlin-maven-plugin + kapt — allow aptMode to be set according to docs

Fixes

  • KT-54380 Kapt / IR: Build failed when inheritance by functional interface with suspend modifier
  • KT-55490 Kapt + JVM IR: «annotation @Foo is missing default values»
  • KT-43786 KAPT: IllegalStateException: SimpleTypeImpl should not be created for error type: ErrorScope
  • KT-43117 Kapt: «System is already defined in this compilation unit»
  • KT-46966 Kapt: correctErrorTypes: receiver type is NonExistentClass
  • KT-46965 Kapt: correctErrorTypes: custom setter gets Object parameter type
  • KT-51087 KAPT: @JvmRepeatable annotations are present in inverse order in KAPT stubs
  • KT-54245 JVM IR / Kapt / Serialization: NullPointerException in SerializableIrGenerator.kt
  • KT-54870 KAPT stub generation with JVM_IR backend throws exception for delegated properties
  • KT-44350 Kapt Gradle integration tests failing with Android Gradle plugin 7.0
  • KT-33847 Kapt does not included Filer-generated class files on compilation classpath
  • KT-54030 Kapt: annotation processor warnings are displayed as errors on JDK 17+
  • KT-32596 kapt replaces class generated by annotation processor with error.NonExistentClass when the class is used as an annotation
  • KT-37586 KAPT: When delegated property use an unknown type (to-be-generated class), correctTypeError will mess up the $delegate field type

Tools. Maven

  • KT-29346 Add components.xml to automatically compile kotlin maven projects
  • KT-13995 Maven: Kotlin compiler plugin should respect model’s compile source roots
  • KT-54822 Maven: Too low-level error message «Parameter specified as non-null is null: method kotlin.text.StringsKt__StringsJVMKt.startsWith, parameter » from Kotlin Maven plugin invoking compiler when tags are empty
  • KT-47110 Disable jdk8-specific warnings in kotlin-maven-plugin

Tools. Scripts

  • KT-54461 Warnings and stack traces when executing scripts via kotlin-maven-plugin
  • KT-54733 Scripts: ConcurrentModificationException in *.main.kts scripts
  • KT-53283 Scripts: main-kts JAR does not relocate embedded SLF4J and jsoup libraries
  • KT-54095 It is difficult (if not impossible) to use kotlin compiler plugins with scripting

Checksums

File Sha256
kotlin-compiler-1.8.20-Beta.zip ed487b3555967bb09ca46c1ccd2fca8d6ce8a813fcbd7ab31c74887a5826370a
kotlin-native-linux-x86_64-1.8.20-Beta.tar.gz 388df4048fa53d1137ce7ca1036d049061b6b7a5111f450dfbc6680d8bca30ed
kotlin-native-macos-x86_64-1.8.20-Beta.tar.gz b6856aeecf104c92dfedf23a603477e45711e064db10174cf863b94d0cff92e5
kotlin-native-macos-aarch64-1.8.20-Beta.tar.gz eb8001fb8bf10ff599b749cf17761e4fe737b898b08bbbde07e03c082de6e856
kotlin-native-windows-x86_64-1.8.20-Beta.zip f7d8f466f142ea0c4ca4692353d09efa1e86689e12906f27ddf604675feb188b

Changelog

Compiler

  • KT-55483 K2: Fir is not initialized for FirRegularClassSymbol java/lang/invoke/LambdaMetafactory
  • KT-55729 «None of the following functions can be called with the arguments supplied:» in 1.8.0
  • KT-55769 «ERROR: Could not find accessor»: Android DataBinding fails with Kotlin 1.8.0
  • KT-55308 InnerClass attributes should be sorted (innermost last)

JavaScript

  • KT-56282 KJS: Invalidate incremental cache in case of compiler internal errors
  • KT-55852 JS: «IllegalStateException: Unexpected ir type argument» caused by List with star projection type
  • KT-55716 KJS / IC: «Cannot read properties of undefined» with overriding variables with 1.8.0
  • KT-55758 KJS / IR: Checking implemented interface on a class implementing a @JsExport interface returns the wrong result

Reflection

  • KT-56093 Metaspace leak in a Gradle plugin built with Kotlin 1.8.0

Tools. Compiler plugins. Serialization

  • KT-56347 [Kotlin 1.8] Regression kotlinx.serialization compiler plugin internal error
  • KT-55681 Serialization: NullPointerException after update to 1.8.0 caused by @Serializer(forClass= ..)
  • KT-56244 kotlinx.serialization compiler intrinsic does not work with encodeToString function in 1.8.0
  • KT-55683 Serialization: «IllegalStateException: Expected to have a primary constructor» with expect class and companion object
  • KT-55682 Serialization: «IllegalStateException: Function has no body: FUN name:serializer» with 1.8.0

Tools. Gradle

  • KT-55697 KGP 1.8.0 adds compileOnly dependencies to unit test compile classpath

Tools. Gradle. Multiplatform

  • KT-55730 MPP / Gradle: compileKotlinMetadata fails to resolve symbols in additional source sets

Tools. Gradle. Native

  • KT-56280 Gradle: freeCompilerArgs are no longer propagated from compilations to Native binaries

Tools. Kapt

  • KT-48013 Kapt generates illegal stubs for private interface methods

Checksums

File Sha256
kotlin-compiler-1.8.10.zip 4c3fa7bc1bb9ef3058a2319d8bcc3b7196079f88e92fdcd8d304a46f4b6b5787
kotlin-native-linux-x86_64-1.8.10.tar.gz 4c5c8a82a63a3a9845be2514d536ca407340db7fc558b97c43ed003f866a9742
kotlin-native-macos-x86_64-1.8.10.tar.gz 52ea7cf2dfaae058fc00fc4e00ec89fefe5a7e4c83abeadb7531cc9346ff18db
kotlin-native-macos-aarch64-1.8.10.tar.gz 08cef514e9d582b0e7bcf3f592dd853270b535a4b765555db97381aeb8c92a85
kotlin-native-windows-x86_64-1.8.10.zip e8b9a04f0df3cdec6fa360a6781723fc8551e93c70dfd1aaffbd282b7cddc19d

Last updated on August 30, 2023

Kotlin is a cross-platform statistically-typed programming language that runs on the JVM. It helps to reduce the time spent writing and maintaining the same code for different platforms while retaining the flexibility and benefits of native programming.

The fact that it is statistically-typed means that variable types are known at compile time. The types are solved during compilation. If you’re looking to create Android and iOS applications or libraries targeting JVM, JavaScript, and other platforms, give Kotlin a try.

Follow the instructions below and I’ll show you how to download and install Kotlin on your PC for free.

Note that Kotlin requires Java to run. So, the first thing you want to do is to download and install Java on your PC.

Secondly, you need to set the environment variables for Java. To do this, copy the path to your Java JDK folder for binaries (C:\Program Files\Java\jdk-19\bin) and add it to your environment variables.

  1. Click on the download button on the sidebar to go directly to the Kotlin download page.
  2. Click the “Get Started” button to proceed.
    Kotlin get started screenshot
  3. On the next page, go to the left pane and navigate to Tools>Compiler>Command-line compiler.
    Kotlin command line compiler screenshot
  4. Click on the “GitHub Releases” button as shown above. Scroll to the bottom of the page, under Assets, click on the link for the latest version of Kotlin compiler for your preferred OS and wait for the download to complete.
    Kotlin assets screenshot
  5. Go to your download folder and extract the zip file into a new folder. Move the extracted folder to your local disk.
  6. Next, you need to set the environment variable for Kotlin. To do this, go to the Kotlin folder and copy the path to the bin folder (C:\kotlin-compiler-1.7.20\0kotlinc\bin). Go to your Windows search button and type “ENV”, then click Enter.
    Kotlin Windows edit environment variables screenshot
    Select Path under “System Variables”, then click on New to paste the bin path you copied earlier. Click OK to exit the window. Now that the Kotlin environment variable has been set, you’re ready to use the Kotlin Command-line to create and run applications.
    To confirm that Kotlin has been installed, open Command Prompt and run “Kotlin -version”. If you have a similar result as shown below, then you can be sure that Kotlin has been installed successfully. Note that the version here is the latest Kotlin release as of the time of creating this guide.
    Kotlin version screenshot
    You do not necessarily need to install the command-line compiler before you can start using Kotlin. You can also write Kotlin applications using an IDE, such as IntelliJ IDEA or Android Studio. They offer full Kotlin support.

How to uninstall Kotlin from your PC

If you are no longer interested in using Kotlin, you basically have to undo all that you did during the installation process above. Follow the simple instructions below and I’ll show you how to remove the application from your computer:

  1. Go to your local disk and delete the Kotlin folder.
    Kotlin delete screenshot
  2. Also open Environment Variables again and delete the bin path you added under Path in System Variables.
    Kotlin environment variable delete screenshot
  3. Once you’ve completed the two steps above, you can go back to Command Prompt to confirm if Kotlin is still installed by running “Kotlin -version”. The message below tells you that Kotlin has been removed.
    Kotlin has been removed screenshot

If you would like to try other similar programming languages, check out the free alternatives below.

Kotlin is a modern open-source and statistically typed programming language commonly used by Android developers. It is designed to boost productivity and code safety. Kotlin supports multiplatform programming and specifically targets JVM, Android, JavaScript, and Native. Compared to the Java programming language, Kotlin is known to drastically cut down the number of lines of code to about 40%.

Kotlin is also 100% compatible with the Java programming language. Kotlin can be used for any kind of development, including server-side apps, client-side with JavaScript or JavaFX, and Android development. Kotlin is also very beneficial for web and desktop development. It is fully supported by IDEs like IntelliJ IDEA and Android Studio. Generally, the features of Kotlin indicate that it is inspired by prior languages like Java, C#, Groovy, and Scala.

Features of Kotlin

Multiplatform Programming

Kotlin’s endorsement of multiplatform programming stands out as a key feature that greatly benefits developers. This capability effectively minimizes the effort and resources required to create and manage identical code across diverse platforms, while also preserving the adaptability and advantages of native programming.

Open-objected and Functional Construct

While Kotlin is open-source, it has both object-oriented and functional constructs, meaning that you can use it in either styles or mixed together. These features make Kotlin a great choice for functional programming.

Less Lines of Code

Compared to the Java programming language, Kotlin brings about a roughly 40% cut in the number of lines of code. It is type-safe, making your apps less prone to NullPointerExceptions (NPE’s). You can also use Kotlin to write expressive codes, based on features like extension function, lambdas, and high-order functions.

Interoperable with Java

Kotlin is highly interoperable with the Java language, such that your existing codebase (Spring Boot, vert.x, or JSF) can interact well with Kotlin. Adoption is, therefore, less risky, and easier.

Useful for Multiple Developments

Kotlin is ideal for development projects of virtually any type. This includes mobile and server-side applications, client-side developments, and web and android development. In fact, Kolin is supported as a first-class language on Android.

Desktop and Web Development

For desktop development, Kotlin is compatible with Java UI frameworks, such as JavaFx, Swing, and Kotlin-specific frameworks like Tornado. Kotlin also works for backend web and client-side development. The language even supports native app development. This compiles Kotlin to native code that runs without a virtual machine.

Accessible via IDEs

IntelliJ IDEA and Android Studio are two IDEs that provide complete support for Kotlin. So without the Command-line compiler option, you can run Kotlin through these environments. It is also supported by other IDEs and source code editors like Eclipse, Visual Studio Code, and Atom. Also, build tools like Gradle, Maven, and Ant support Kotlin.

Flutter: Flutter is an open-source UI SDK designed to enable developers to build cross-platform apps for Android, iOS, Linux, macOS, Windows, Google Fuchsia, and the web using a single codebase. Flutter runs on the Dart platform, which is an open-source, client-side programming language for app development.

Swift: The Apple Swift programming language is designed for developers building applications for iOS, iPadOS, macOS, tvOS, and watchOS. Swift makes it flexible for you to write code in Applescript, C, C++, Objective-C, Objective-C++, Java, Python, React.js, and Ruby.

Groovy: Groovy is a Java-syntax-compatible, multifaceted, and object-oriented programming language for the Java platform. It is both an open-source language and comes with features similar to those of Python and Ruby.

Is Kotlin free?

Yes, Kotlin is free! Its source code is on GitHub. Follow the guide above and I’ll show you how to download and install Kotlin for free on your computer.

Is Kotlin secure?

Yes, Kotlin is secure. Compared to a universal programming language like Java, Kotlin is generally considered more secure and preferred in terms of compatibility, syntax, data classes, functional programming, and type preference. Kotlin’s security also prevents NPE through a Null safe technology. You can safely download and install Kotlin from the official website. This way, you avoid exposure to viruses and malware.

What is Kotlin best suited for?

You can use Kotlin for different kinds of app development projects, such as android, web, desktop, server-side, and client-side, to name a few.

Download Kotlin now!

It is an open-source, statically typed programming language supported and developed by JetBrains and open-source contributors. Support for multiplatform programming is one of Kotlin’s key benefits. It reduces time spent writing and maintaining the same code for different platforms while retaining the flexibility and benefits of native programming. Kotlin plugin is intended to work with several recent versions of IntelliJ IDEA and Android Studio. Each platform is allowed to have a different set of features and might provide a slightly different API. Instead of using several parallel Git branches, the project stores everything in a single branch, but files may have counterparts with version extensions (*.as32, *.172, *.181). The primary file is expected to be replaced with its counterpart when targeting a non-default platform.

Features

  • Modern, concise and safe programming language
  • Easy to pick up, so you can create powerful applications immediately
  • Compatible with the Java ecosystem
  • A productive way to write server‑side applications
  • Use your favorite JVM frameworks and libraries
  • Natural way to share code between mobile platforms

Project Samples

Kotlin Screenshot 1

Kotlin Screenshot 2

License

Apache License V2.0

Remote access, Application delivery and Security software for IT professionals Icon

Deploy secure Home Office in a minimum of time with the Remote Work solution: a unique kind of Remote Access to allow your employees to connect and work directly on their office workstations without leaving the safety of their home.

User Reviews

  • Скачать mach3 на русском языке для чпу windows 7 бесплатно
  • Скачать maple 15 для windows 10
  • Скачать kmsoffline для windows 10
  • Скачать live webcam для windows 7 бесплатно
  • Скачать macdrive для windows 10