Commit Graph

105454 Commits

Author SHA1 Message Date
Hung Nguyen 5ceebec331 Cache Gradle properties with a BuildService to improve performance
Currently, the performance overhead when loading a Gradle property
consists of:
  1. Creating a Provider
  2. Resolving the Provider

Both steps are performed even when the same property was loaded before.
That means this overhead will multiply when there are a large number of
property read requests (e.g., in KT-62496, the tested project 400,000
read requests for only 17 properties).

To improve performance, we will now cache both steps with a
BuildService.

With this commit, configuration time for the tested project returns to
the same level before commit d6becee where the performance regression
happened (that commit can't be reverted because it introduced
`Provider`s which are required for proper Gradle usage).

Test: Manually verified on the large project in KT-62496

^KT-62496 Fixed
2023-10-18 17:27:32 +00:00
Svyatoslav Scherbina 141f2e3234 Bump Kotlin/Native version in KGP to 2.0.0-dev-5387 2023-10-18 15:27:08 +00:00
Artem Kobzar d625d9a988 [K/JS] Fix ES6-classes compilation for objects without constructor generated by plugins 2023-10-18 13:29:15 +00:00
Nikolay Lunyak ba9baa7457 [FIR] Don't enable features without sinceKotlin in Progressive Mode
There are two BUG_FIX features that have
been added to the compiler, without a clear
decision to enable them somewhere in the
future. Since there is no decision to
force users rewrite their code, such
features should not be enabled in
Progressive Mode.

^KT-62644 Fixed
^KT-62143 Fixed
2023-10-18 13:16:10 +00:00
Dmitriy Novozhilov 9366847e96 [FIR2IR] Properly approximate intersection types during fir2ir conversion
^KT-62544 Fixed
2023-10-18 13:02:11 +00:00
Sergej Jaskiewicz 8c6da9fddb [FIR/IR generator] Deduplicate interface/abstract class configuration 2023-10-18 12:39:39 +00:00
Alejandro Serrano Mena b231e69cd3 Remove unneeded K1/K2 split in test 2023-10-18 12:34:58 +00:00
Alejandro Serrano Mena b9b15cba08 [K2] Warn about deprecation and opt-in markers for overrides of Any
^KT-62620 Fixed

Include opt-in markers in the diagnostics
2023-10-18 12:34:58 +00:00
Sebastian Sellmair 6afe716238 [Gradle] Implement CustomizeKotlinDependenciesSetupAction
KT-61634
2023-10-18 12:22:09 +00:00
Sebastian Sellmair eba13b5b91 [Gradle] KotlinSingleTargetExtension: Implement lateinit target as Future
It is not obvious from 'KotlinSingleTargetExtension' that calling
into 'target' is unsafe and it might throw.

Ordering code (especially with Android) is hard:
It is not clear when the target will become available.

The Future (and forAllTargets implementation) is intended
to make working with targets generically more safe.

KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair 77376f0d28 [Gradle] Implement KotlinMultiplatformSourceSetSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair 382482a26c [Gradle] Implement MultiplatformBuildStatsReportSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair 070b80a05f [Gradle] Implement KotlinMetadataTargetSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair 0ccb98f579 [Gradle] Implement KotlinArtifactsExtensionSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair cc0a9e1cc1 [Gradle] Implement MultiplatformPublishingSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair 822cb7f545 [Gradle] Implement UserDefinedAttributesSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair c22a7bf802 [Gradle] Implement LanguageSettingsSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair 8ca1c06cf2 [Gradle] Implement SyncLanguageSettingsWithKotlinExtensionSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair 58385ef64f [Gradle] Implement ScriptingGradleSubpluginSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair 9ca22fa999 [Gradle] Implement GlobalProjectStructureMetadataStorageSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair 2b823cba1e [Gradle] Implement IdeMultiplatformImportSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair 246deafd6d [Gradle] Implement IdeResolveDependenciesTaskSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair 9d01ad7c3b [Gradle] Implement CInteropCommonizedCInteropApiElementsConfigurationsSetupAction
KT-61634
2023-10-18 12:22:08 +00:00
Sebastian Sellmair b9db036053 [Gradle] Implement AddBuildListenerForXCodeSetupAction
KT-61634
2023-10-18 12:22:07 +00:00
Sebastian Sellmair 3be2eb9b31 [Gradle] Implement CreateFatFrameworksSetupAction
KT-61634
2023-10-18 12:22:07 +00:00
Sebastian Sellmair c7b4057dab [Gradle] Implement KotlinProjectSetupCoroutine
as util to easily launch configure action as suspending code

KT-61634
2023-10-18 12:22:07 +00:00
Sebastian Sellmair 628bd7a6be [Gradle] Implement KotlinMultiplatformAndroidGradlePluginCompatibilityChecker
KT-61634
2023-10-18 12:22:07 +00:00
Sebastian Sellmair 234e5735e3 [Gradle] Implement KotlinToolingDiagnosticsSetupAction
KT-61634
2023-10-18 12:22:07 +00:00
Sebastian Sellmair 1c568c2a10 [Gradle] Implement RegisterBuildKotlinToolingMetadataTask
KT-61634
2023-10-18 12:22:07 +00:00
Sebastian Sellmair 13492d3316 [Gradle] Implement AddNpmDependencyExtensionProjectSetupAction
KT-61634
2023-10-18 12:22:07 +00:00
Sebastian Sellmair ff6b883cb4 [Gradle] Implement KotlinProjectSetupAction extensionPoint
KT-61634
2023-10-18 12:22:07 +00:00
Dmitriy Novozhilov 43929398da [FIR] Pass implications from subject of safe call in DFA
^KT-59689 Fixed
2023-10-18 12:17:44 +00:00
Dmitriy Novozhilov 5d3402339e [FIR DFA] Rename Persistent.logicStatements -> implications 2023-10-18 12:17:44 +00:00
Dmitriy Novozhilov dc08e3bf99 [FIR] Cleanup formatting in DFA code 2023-10-18 12:17:44 +00:00
Sergej Jaskiewicz 9a4c28498c [FIR generator] Deduplicate the logic of needPureAbstractElement 2023-10-18 11:12:55 +00:00
Alexander Kuznetsov 45792c2e60 [Analysis API] support unsigned arrays creation functions
IDEA-335151, KT-62663


Merge-request: KT-MR-12614
Merged-by: Alexander Kuznetsov <Aleksander.Kuznetsov@jetbrains.com>
2023-10-18 10:53:52 +00:00
Alexander Shabalin 4922223bec [K/N] Refactor :kotlin-native:dependencies
Move K/N dependencies handling logic into gradle plugins:

`NativeDependenciesDownloader` is instantiated in
`:kotlin-native:dependencies` and provides a single configuration that
contains all directories with the dependencies. The configuration has
a variant for each target.

`NativeDependencies` is instantiated by projects that require native
dependencies (i.e. previously used to depend on
`:kotlin-native:dependencies:update`). This plugin creates a configuration
that by default depends on `:kotlin-native:dependencies`. Its extension
provides `llvmDependency`, `libffiDependency`, `hostPlatformDependency`,
`targetDependency()` to depend on the parts needed for the project and
provides accessors `llvmPath`, `libffiPath`, `hostPlatform` that are
safe to use during configuration time, but which do not automatically
resolve those dependencies.

`llvmDir`, `*LibffiDir` properties on `:kotlin-native` are removed
completely, as their use is replaced by `NativeDependencies`. As a
consequence, `evaluationDependsOn(":kotlin-native:dependencies")` is
also gone.

All direct dependencies on `:kotlin-native:dependencies:update` are
replaced with dependencies on specific parts via `NativeDependencies`
2023-10-18 10:53:12 +00:00
Nataliya.Valtman 9de791b9ac Create FUS Gradle plugin
fus-statistics-gradle-plugin can be used by any other Gradle plugins to
collect additional metrics for FUS.

KT-59627
2023-10-18 10:32:11 +00:00
Mikhail Glukhikh 4ed7504d87 FIR deserializer: apply attributes on type parameter-based types
#KT-62578 Fixed
2023-10-18 10:30:31 +00:00
Dmitrii Krasnov 1d95927582 [Gradle IT] Added property for enabling/disabling k/n from master in IT
#KT-45978 Ready for Review
2023-10-18 09:24:27 +00:00
Dmitriy Novozhilov ef3d3a9724 [Metadata] Update tests according to KT-62580, KT-62581 and KT-62582 2023-10-18 07:59:27 +00:00
Dmitriy Novozhilov fa69d4837b [AA] Add workaround for KT-62578 2023-10-18 07:59:27 +00:00
Dmitriy Novozhilov 605a567e10 [AA] Add workaround for KT-62544 2023-10-18 07:59:27 +00:00
Alexander.Likhachev 274198d8f3 [Build] Return the logic to force LV=1.9 for KGP and its dependencies
KT-61951
KT-61449
2023-10-18 07:59:27 +00:00
Dmitriy Novozhilov 5602fcdf76 [Build] Handle renderDiagnosticNames build property in stdlib and dom-api-compat modules 2023-10-18 07:59:27 +00:00
Dmitriy Novozhilov 704e2ef5c5 Suppress K2 specific warnings in the codebase
^KT-62472
2023-10-18 07:59:27 +00:00
Dmitriy Novozhilov 9e66a7b999 Workaround KT-62473 in the codebase 2023-10-18 07:59:27 +00:00
Dmitriy Novozhilov 6114e4f068 Fix compilation problems caused by migration to 2.0 2023-10-18 07:59:27 +00:00
Dmitriy Novozhilov a35f2eb90e Build: switch language level for compilation to 2.0
KT-61951
2023-10-18 07:59:26 +00:00
Sebastian Sellmair 5642f2a8c4 [build] acceptAndroidSdkLicenses, functionalTest: Support Gradle configuration cache 2023-10-18 07:51:17 +00:00