Commit Graph

12597 Commits

Author SHA1 Message Date
Igor Yakovlev 49beec33b4 [Wasm] Replace ClassId and InterfaceId with single TypeId 2023-04-04 18:39:18 +00:00
Igor Yakovlev 5a46cb1c40 [Wasm] Fix invalid float and double sign parser for '-Infinity' value 2023-04-04 18:39:18 +00:00
Igor Yakovlev b8f797af00 [Wasm] Support for Associated Objects feature 2023-04-04 18:39:17 +00:00
Anton Lakotka fac90070bc [Gradle] Add smoke test for appleGradlePlugin
^KT-57668 Verification Pending
2023-04-04 18:37:30 +00:00
Anton Lakotka fd63aee3e5 [Gradle] Test that binary frameworks can be consumed
^KT-57668 Verification Pending
2023-04-04 18:37:30 +00:00
Anton Lakotka ad9b34653a [Gradle] Add kotlinNativeFrameworkNameAttribute for binary frameworks
^KT-57668 Verification Pending
2023-04-04 18:37:29 +00:00
Pavel Kargashinsky ae228ece8a [Gradle][Tests][MPP] Fix test-data for MPP tests 2023-04-04 18:33:33 +00:00
Pavel Kargashinsky 5c56145a19 [Gradle][Tests][MPP] Use MAX_SUPPORTED AGP/Gradle versions for MPP tests 2023-04-04 18:33:33 +00:00
Artem Daugel-Dauge 4b66160afb [Gradle] Support dependencies between pods in CocoaPods plugin
^KT-38749 Verification Pending
2023-04-04 14:13:44 +00:00
Leonid Shalupov 7480befe32 Replace reflection-based compiler arguments copying with generated code
Using of Kotlin reflection for simple operations like bean management is very slow

First time initialization time: 261 ms for `copyBean(K2JVMCompilerArguments())`
Subsequent calls of `copyBean(K2JVMCompilerArguments())` take 1.7 ms per call

Unfortunately compiler argument handling is also used in Kotlin IntelliJ plugin
to parse facet settings. Big projects may have thousands of Kotlin facets

The same `ArgumentUtilsKt.copyProperties` frame is seen across various freezes:
IDEA-252440 2-3 minutes freeze on Kotlin project reimporting in last 203 eap
IDEA-253107 A lot of short freezes (1-3 sec) during Kotlin project development
KTIJ-23501 Make main run configuration detection lighter
KTIJ-22435 Unresponsive UI with 100% cpu

Reflection issue:
KT-56358 KClasses.getMemberProperties takes too much time

This commit replaces all reflection stuff with a simple code generation
Now `K2JVMCompilerArguments().clone()` goes to hard-to-measure time
2023-04-03 15:47:35 +02:00
Abduqodiri Qurbonzoda 352316ba9f [K/N] Add @SinceKotlin for ObjC annotations #KT-57197 2023-04-03 12:21:31 +00:00
Sebastian Sellmair e3c7241abd [Gradle] ModuleName.orNull: Use predefined 'instrumentedTest'
^KT-56654 Verification Pending
2023-04-03 11:24:21 +00:00
Sebastian Sellmair cdca6da679 [Gradle] KotlinSourceSet.commonizerTarget: Use awaitPlatformCompilations instead of Stage
^KT-56654 Verification Pending
2023-04-03 11:24:21 +00:00
Sebastian Sellmair 8fe444f15e [Gradle] Migrate LenientFuture<T>: Future<T?> to LenientFuture: Future<T>
^KT-56654 Verification Pending
2023-04-03 11:24:21 +00:00
Sebastian Sellmair 262b45405d [Gradle] Change signature of top-level await(Stage) to Stage.await()
^KT-56654 Verification Pending
2023-04-03 11:24:20 +00:00
Sebastian Sellmair 775e08e41d [Gradle] Property.awaitFinalValue: Support generic properties
... even when not declared as lifecycle aware

^KT-56654 Verification Pending
2023-04-03 11:24:20 +00:00
Sebastian Sellmair 2043c9db8e [Gradle] Rename Kotlin~Multiplatfom~PluginLifecycleCoroutineContextElement
^KT-56654 Verification Pending
2023-04-03 11:24:19 +00:00
Sebastian Sellmair a7a689841f [Gradle] Convert KotlinTargetHierarchy.ModuleName to regular class (instead of data)
^KT-56654 Verification Pending
2023-04-03 11:24:19 +00:00
Sebastian Sellmair b5d188d44e [Gradle] Remove suspend functions from KotlinTargetHierarchyBuilder API
^KT-56654 Verification Pending
2023-04-03 11:24:18 +00:00
Sebastian Sellmair 9b8611ea9b [Gradle] RestrictedLifecycleStages: Reuse ContinuationInterceptor as Key
^KT-34662 Verification Pending
2023-04-03 11:24:18 +00:00
Sebastian Sellmair e76119b5eb [Gradle] KotlinPluginLifecycle: Remove unnecessary before stages
^KT-34662 Verification Pending
2023-04-03 11:24:18 +00:00
Sebastian Sellmair 4a896a2579 [Gradle] invokeWhenCreated: Lenient until last stage of lifecycle
^KT-34662 Verification Pending
2023-04-03 11:24:17 +00:00
Sebastian Sellmair 28fa5423a1 [Gradle] warnAboutIncorrectDependencies: Use launch instead of whenEvaluated
^KT-34662 Verification Pending
2023-04-03 11:24:17 +00:00
Sebastian Sellmair c94c4df046 [Gradle] KotlinMetadataTargetConfigurator: Support metadataCompilationsCreated for !isKotlinGranularMetadataEnabled
^KT-34662 Verification Pending
2023-04-03 11:24:17 +00:00
Sebastian Sellmair ab81e92932 [Gradle] KotlinSoftwareComponent: Use future instead of lazy
^KT-34662 Verification Pending
2023-04-03 11:24:16 +00:00
Sebastian Sellmair 50f4531c77 [Gradle] UnusedSourceSetsChecker: Use lifecycle instead of whenEvaluated
^KT-34662 Verification Pending
2023-04-03 11:24:16 +00:00
Sebastian Sellmair 15ca5412d2 [Gradle] sourcesJarTask: Wait for compilations to finalise
^KT-34662 Verification Pending
2023-04-03 11:24:15 +00:00
Sebastian Sellmair aa969fe764 [Gradle] Implement lazyFuture as Future<T> instead of Lazy<Future<T>>
^KT-34662 Verification Pending
2023-04-03 11:24:15 +00:00
Sebastian Sellmair 510eca9da1 [Gradle] Implement source set inspection methods as 'suspend'
this includes:
- isNativeSourceSet
- getCommonSourceSetsForMetadataCompilation
- getPublishedPlatformCompilations
- getHostSpecificSourceSets
- getHostSpecificMainSharedSourceSets
- allPublishableCommonSourceSets

As all of those methods are heavily lifecycle aware and might
return bad values when called to early

^KT-34662 Verification Pending
2023-04-03 11:24:15 +00:00
Sebastian Sellmair eb9936397b [Gradle] Future: Support Gradle Configuration Cache
^KT-34662 Verification Pending
2023-04-03 11:24:14 +00:00
Sebastian Sellmair ea48b52d43 [Gradle] GranularMetadataTransformation: ProjectData: Use Future instead of lambda
^KT-34662 Verification Pending
2023-04-03 11:24:14 +00:00
Sebastian Sellmair 7c65d00f29 [Gradle] Introduce lazyFuture and futureExtension methods
^KT-34662 Verification Pending
2023-04-03 11:24:14 +00:00
Sebastian Sellmair 7192b4c5af [Gradle] KotlinPluginLifecycle: Do not suspend when 'isFinished'
^KT-34662 Verification Pending
2023-04-03 11:24:13 +00:00
Sebastian Sellmair b064493c7b [Gradle] Implement CInteropCommonizerDependent factories as safe suspend functions
^KT-34662 Verification Pending
2023-04-03 11:24:13 +00:00
Sebastian Sellmair 9517667081 [Gradle] NativeExternalDependenciesIT: Build dependencies file at execution time
^KT-34662 Verification Pending
2023-04-03 11:24:13 +00:00
Sebastian Sellmair 4264e49970 [Gradle] Add test `test - launchInState - Configure`
^KT-34662 Verification Pending
2023-04-03 11:24:12 +00:00
Sebastian Sellmair b6a215d681 [Gradle] Implement 'findMetadataCompilation' in safe way
(replacing old getMetadataCompilationsForSourceSet)

^KT-34662 Verification Pending
2023-04-03 11:24:12 +00:00
Sebastian Sellmair 4c653a4297 [Gradle] KotlinPluginLifecycle: Ensure no enqueued actions will be missed
^KT-34662 Verification Pending
2023-04-03 11:24:11 +00:00
Sebastian Sellmair 4ba2107ec5 [Gradle] checkSourceSetVisibilityRequirements: Run in 'ReadyForExecution'
^KT-34662 Verification Pending
2023-04-03 11:24:11 +00:00
Sebastian Sellmair ec2d8150fd [Gradle] Implement .commonizerTarget as 'Future' value
^KT-34662 Verification Pending
2023-04-03 11:24:11 +00:00
Sebastian Sellmair 02120a6822 [Gradle] Introduce 'Future' to represent deferred values/calculations
^KT-34662 Verification Pending
2023-04-03 11:24:10 +00:00
Sebastian Sellmair 028780ae97 [Gradle] Introduce HasProject and implement HasMutableExtras in public entities
^KT-34662 Verification Pending
2023-04-03 11:24:10 +00:00
Sebastian Sellmair 37e1d09c3e [Gradle] KotlinTargetHierarchyDescriptorTest: Suppress deprecations
^KT-34662 Verification Pending
2023-04-03 11:24:10 +00:00
Sebastian Sellmair 32e05b4631 [Gradle] Add tests for KotlinPluginLifecycle.Stage utils
^KT-34662 Verification Pending
2023-04-03 11:24:09 +00:00
Sebastian Sellmair d277502237 [Gradle] KotlinPluginLifecycle: Add documentation
^KT-34662 Verification Pending
2023-04-03 11:24:09 +00:00
Sebastian Sellmair 72ee12cfc8 [Gradle] KotlinPluginLifecycle: await on current stage: Execute in queue
KT-34662
2023-04-03 11:24:08 +00:00
Sebastian Sellmair b502f7cd03 [Gradle] Add KotlinAndroidTargetVariantTypeDslImplTest to check refines edges
KT-34662
2023-04-03 11:24:08 +00:00
Sebastian Sellmair 40603bbda7 [Gradle] Update kotlin-gradle-plugin-api.api
KT-34662
2023-04-03 11:24:08 +00:00
Sebastian Sellmair cb97beb3d6 [Gradle][Minor] KotlinPluginLifecycle: Remove enqueuedStages field
KT-34662
2023-04-03 11:24:07 +00:00
Sebastian Sellmair 656ce4aead [Gradle] Promote KotlinMultiplatformPluginLifecycle to KotlinPluginLifecycle
KT-34662
2023-04-03 11:24:07 +00:00