Commit Graph

229 Commits

Author SHA1 Message Date
Dmitriy Dolovov 149282a888 [Commonizer] Fix: Stats not logged for "native-dist-commonize" CLI task 2021-03-04 22:24:11 +03:00
Dmitriy Dolovov 1c06972ec6 [Commonizer] Minor. Formatted 2021-03-04 22:24:05 +03:00
Dmitriy Dolovov d6961a6e60 [Commonizer] Rework MetadataDeclarationsComparator API
1. Formalize all possible variants of entities where mismatch could happen via sealed interface MetadataDeclarationsComparator.EntityKind
2. Track the path to the place of mismatch in terms of MetadataDeclarationsComparator.PathElement
2021-03-04 22:23:57 +03:00
Dmitriy Dolovov 43d9c6cc90 [Commonizer] Reworked functions for making nullable CIR types 2021-03-02 11:37:25 +03:00
Dmitriy Dolovov 7ad35b2f49 [Commonizer] Change CIR type calculation procedure
- By default, all CIR types are created as abbreviated types
  (if such information is available in descriptors).
- When necessary, CIR type can be "unabbreviated" to remove any
  abbreviations from it. This can be done via a separate function
  in CirTypeFactory: unabbreviate().
2021-03-01 23:17:16 +03:00
sebastian.sellmair a7a085d640 [Commonizer] ModuleSerializer: Sanitize library names for Windows
The CInterop tool can produce klibs that contain colons in their library name.
Therefore the library name, as is, cannot be used as file name.
The sanitizer will replace any occurring ':' with '_'
2021-03-01 19:53:08 +03:00
Alexander Udalov ca5a35b4b3 Move CompilerEnvironment from 'frontend' to 'cli'
This is needed in order to have a single convenient place where to
register frontend services implemented _outside_ of the 'frontend'
module, such as the control flow analysis, extracted to a separate
module in a subsequent commit.
2021-02-24 17:17:03 +01:00
Dmitriy Dolovov fa2b2c8735 [Commonizer] Make CirProperty.compileTimeInitializer non-nullable
There is effectively no difference between null and CirConstantValue.NullValue recorded in compileTimeInitializer.
2021-02-22 21:06:49 +03:00
Dmitriy Dolovov b3e68d3704 [Commonizer] Make CirProperty.[backing|delegate]FieldAnnotations non-nullable
There is effectively no difference between missing field and a field with no annotations.
2021-02-22 21:06:41 +03:00
Dmitriy Dolovov 215dd8515b Minor. Remove compilation warning 2021-02-22 21:06:34 +03:00
Dmitriy Dolovov 05447ce0c8 [Commonizer] Print true time for resolving of libraries to be commonized 2021-02-18 18:47:38 +03:00
Dmitriy Dolovov 0b26a281de [Commonizer] Print pretty target name in console output 2021-02-18 18:47:33 +03:00
Dmitriy Dolovov fb51105a5d [Commonizer] Log time in commonizer result consumers 2021-02-18 18:47:28 +03:00
Dmitriy Dolovov 496aad3c4a [Commonizer] Log commonization only for really present targets 2021-02-18 18:47:19 +03:00
Dmitriy Dolovov 3ad7b60747 [Commonizer] Prefer using CommonizerTarget instead of KonanTarget 2021-02-18 18:47:14 +03:00
Dmitriy Dolovov 1895c230ef [Commonizer] K/N dist: Process targets in alphabetical order 2021-02-18 18:47:10 +03:00
Dmitriy Dolovov f473b88e47 [Commonizer] Nicer API for CirProvidedClassifiers 2021-02-18 18:47:05 +03:00
Dmitriy Dolovov 84ce9c612c [Commonizer] Keep only "common" dependencies in CirKnownClassifiers 2021-02-18 18:47:00 +03:00
Dmitriy Dolovov 2581b67cda [Commonizer] Rename: CirCommonizedClassifiers -> CirCommonizedClassifierNodes 2021-02-18 18:46:55 +03:00
Dmitriy Dolovov 43ad0ed907 [Commonizer] Optimized implementation of CirProvidedClassifiers
Read classifiers directly from metadata, don't use descriptors.
2021-02-18 18:46:49 +03:00
Dmitriy Dolovov 79e3ce022f [Commonizer] Fix: Keep fwd declarations under real names in CirForwardDeclarations cache 2021-02-18 18:46:45 +03:00
sebastian.sellmair 35008df969 [Commonizer] Rename NativeDistributionCommonizer to LibraryCommonizer 2021-02-17 19:24:54 +00:00
sebastian.sellmair 4500b6ce74 [Commonizer] Implement :native:kotlin-klib-commonizer:api with support for library commonization
- Implement new Gradle module ':native:kotlin-klib-commonizer'
- Implement new NativeKlibCommonize task
- Implement CommonizerTarget.identityString
2021-02-17 19:24:54 +00:00
Dmitriy Dolovov 45b17120ad [Commonizer] Minor. Rename: 'dependee' -> 'dependency' 2021-02-16 17:19:49 +03:00
Dmitriy Dolovov ec7e411d80 [Commonizer] Remove classifierId from CIR class/TA nodes 2021-02-16 17:19:43 +03:00
Dmitriy Dolovov ef931d5561 [Commonizer] Don't keep kotlin/Any as the single supertype in CirClass 2021-02-16 17:19:38 +03:00
Dmitriy Dolovov 0eaea655d0 [Commonization] Improvements in approx. keys
- Don't print upper bounds if it contains only kotlin/Any?
- Print variance in lowercase
2021-02-15 13:25:52 +03:00
Dmitriy Dolovov 3c6eb8f8f4 Minor. Formatted 2021-02-15 13:25:47 +03:00
Dmitriy Dolovov 0af31abb04 [Commonizer] Add tests for overloading purely by different upper bounds 2021-02-15 13:25:40 +03:00
Dmitriy Dolovov 90cdb9203f [Commonizer] Fix integration tests: wrong mismatches filter 2021-02-15 13:25:34 +03:00
Dmitriy Dolovov 8a17de38d0 [Commonizer] Fix integration tests: serialize only own module contents 2021-02-15 13:25:28 +03:00
Dmitriy Dolovov 7f8f1dc4f8 [Commonizer] Calculate hash code by pure name in approximation keys 2021-02-15 13:25:22 +03:00
Dmitriy Dolovov 154a768a3a [Commonizer] Minor. Remove unused import 2021-02-10 14:18:14 +03:00
Dmitriy Dolovov ac966ad1d2 [Commonizer] Add getParentEntityId() method to CirEntityId 2021-02-10 14:18:14 +03:00
Dmitriy Dolovov 4bab505c3a [Commonizer] Introduce CIR entities for representing various flavors of names
- CirName - simple name
- CirPackageName - fully-qualified name of the package
- CirEntityName - fully-qualified name of some entity, ex: Class, TypeAlias
2021-02-10 14:18:14 +03:00
Dmitriy Dolovov f8c5244a39 [Commonizer] Use CirConstantValue class to represent constant values 2021-02-10 14:18:13 +03:00
Dmitriy Dolovov 25df25ccc6 [Commonizer] Minor. Extract common module names from CommonizerParameters 2021-02-10 14:18:13 +03:00
Dmitriy Dolovov 97000b1285 [Commonizer] Drop CirContainingClassdetails in favor of CirClass entity 2021-02-10 14:18:13 +03:00
Dmitriy Dolovov 054b59198b [Commonizer] Don't keep fqName inside of CirPackageNode 2021-02-10 14:18:13 +03:00
Dmitriy Dolovov 5d19ac16d5 [Commonizer] Drop useless CirPackageNode.moduleName property 2021-02-10 14:18:12 +03:00
Dmitriy Dolovov c6756762e5 [Commonizer] Refactoring: Clean-up in CirTreeMerger 2021-02-10 14:18:12 +03:00
Dmitriy Dolovov 27dcd07a5e [Commonizer] Remove filter for simd_ functions (no more relevant) 2021-02-05 15:56:33 +03:00
Dmitriy Dolovov 4d5ec6e52a [Commonizer] Minor. Rename: builders.kt -> entityBuilders.kt 2021-02-05 15:56:28 +03:00
Dmitriy Dolovov 955f86ef9f [Commonizer] Minor. Rename: buildingVisitor.kt -> metadataBuilder.kt 2021-02-05 15:56:23 +03:00
Dmitriy Dolovov 33c1ca01f4 [Commonizer] Simplify creation of SerializedMetadataLibraryProvider 2021-02-05 15:56:17 +03:00
Dmitriy Dolovov 6c92ea518b [Commonizer] Add ModulesProvider.loadModuleMetadata() to load raw metadata 2021-02-05 15:56:12 +03:00
Dmitriy Dolovov cb226e74a5 [Commonizer] Refactor ModulesProvider.loadModuleInfos() function
Change return type from Map<String, ModuleInfo> to Collection<ModuleInfo>
2021-02-05 15:56:06 +03:00
Dmitriy Dolovov 52e22796e1 [Commonizer] Prettier message about target with no libraries inside 2021-02-03 20:42:57 +03:00
Dmitriy Dolovov 73113c1041 [Commonizer] Dump every module to disk immediately when it's ready
No need to retain all metadata modules in memory -> lesser memory consumption.
2021-02-03 20:42:50 +03:00
Dmitriy Dolovov 62897a194b [Commonizer] Force GC after each serialized target 2021-02-02 23:13:14 +03:00