Dropped outdated klib version compatibility mechanisms

This commit is contained in:
Alexander Gorshenev
2020-11-05 22:31:45 +03:00
parent 8b2b36d61f
commit 891a4c4621
3 changed files with 6 additions and 31 deletions
@@ -19,8 +19,6 @@ import org.jetbrains.kotlin.util.Logger
class JsLibraryResolver(
repositories: List<String>,
directLibs: List<String>,
knownAbiVersions: List<KotlinAbiVersion>?,
knownCompilerVersions: List<CompilerVersion>?,
distributionKlib: String?,
localKotlinDir: String?,
skipCurrentDir: Boolean,
@@ -28,8 +26,6 @@ class JsLibraryResolver(
) : KotlinLibraryProperResolverWithAttributes<KotlinLibrary>(
repositories,
directLibs,
knownAbiVersions,
knownCompilerVersions,
distributionKlib,
localKotlinDir,
skipCurrentDir,
@@ -48,8 +44,6 @@ fun jsResolveLibraries(libraries: List<String>, logger: Logger): KotlinLibraryRe
val libraryResolver = JsLibraryResolver(
repositories = emptyList(),
directLibs = libraryAbsolutePaths,
knownAbiVersions = listOf(KotlinAbiVersion.CURRENT),
knownCompilerVersions = emptyList<CompilerVersion>(),
distributionKlib = null,
localKotlinDir = null,
skipCurrentDir = false,
@@ -21,8 +21,6 @@ val jvmLibrariesProvidedByDefault = setOf("stdlib", "kotlin")
class JvmLibraryResolver(
repositories: List<String>,
directLibs: List<String>,
knownAbiVersions: List<KotlinAbiVersion>?,
knownCompilerVersions: List<CompilerVersion>?,
distributionKlib: String?,
localKotlinDir: String?,
skipCurrentDir: Boolean,
@@ -30,8 +28,6 @@ class JvmLibraryResolver(
) : KotlinLibraryProperResolverWithAttributes<KotlinLibrary>(
repositories,
directLibs,
knownAbiVersions,
knownCompilerVersions,
distributionKlib,
localKotlinDir,
skipCurrentDir,
@@ -54,8 +50,6 @@ fun jvmResolveLibraries(libraries: List<String>, logger: Logger): KotlinLibraryR
val libraryResolver = JvmLibraryResolver(
repositories = emptyList(),
directLibs = libraryAbsolutePaths,
knownAbiVersions = listOf(KotlinAbiVersion.CURRENT),
knownCompilerVersions = emptyList<CompilerVersion>(),
distributionKlib = null,
localKotlinDir = null,
skipCurrentDir = false,
@@ -20,11 +20,6 @@ interface SearchPathResolver<L : KotlinLibrary> : WithLogger {
fun isProvidedByDefault(unresolved: UnresolvedLibrary): Boolean = false
}
interface SearchPathResolverWithAttributes<L : KotlinLibrary> : SearchPathResolver<L> {
val knownAbiVersions: List<KotlinAbiVersion>?
val knownCompilerVersions: List<CompilerVersion>?
}
// This is a simple library resolver that only cares for file names.
abstract class KotlinLibrarySearchPathResolver<L : KotlinLibrary>(
repositories: List<String>,
@@ -215,15 +210,13 @@ fun CompilerVersion.compatible(other: CompilerVersion) =
abstract class KotlinLibraryProperResolverWithAttributes<L : KotlinLibrary>(
repositories: List<String>,
directLibs: List<String>,
override val knownAbiVersions: List<KotlinAbiVersion>?,
override val knownCompilerVersions: List<CompilerVersion>?,
distributionKlib: String?,
localKotlinDir: String?,
skipCurrentDir: Boolean,
override val logger: Logger,
private val knownIrProviders: List<String>
) : KotlinLibrarySearchPathResolver<L>(repositories, directLibs, distributionKlib, localKotlinDir, skipCurrentDir, logger),
SearchPathResolverWithAttributes<L> {
SearchPathResolver<L> {
override fun libraryMatch(candidate: L, unresolved: UnresolvedLibrary): Boolean {
val candidatePath = candidate.libraryFile.absolutePath
@@ -231,13 +224,8 @@ abstract class KotlinLibraryProperResolverWithAttributes<L : KotlinLibrary>(
val candidateAbiVersion = candidate.versions.abiVersion
val candidateLibraryVersion = candidate.versions.libraryVersion
val abiVersionMatch = candidateAbiVersion != null &&
knownAbiVersions != null &&
knownAbiVersions!!.contains(candidateAbiVersion)
if (!abiVersionMatch) {
logger.warning("skipping $candidatePath. The abi versions don't match. Expected '${knownAbiVersions}', found '${candidateAbiVersion}'. The library produced by ${candidateCompilerVersion} compiler")
if (candidateAbiVersion?.isCompatible() != true) {
logger.warning("skipping $candidatePath. Incompatible abi version. Expected '${KotlinAbiVersion.CURRENT}', found '${candidateAbiVersion}'. The library produced by ${candidateCompilerVersion} compiler")
return false
}
@@ -262,11 +250,10 @@ abstract class KotlinLibraryProperResolverWithAttributes<L : KotlinLibrary>(
class SingleKlibComponentResolver(
klibFile: String,
knownAbiVersions: List<KotlinAbiVersion>?,
logger: Logger,
knownIrProviders: List<String>
) : KotlinLibraryProperResolverWithAttributes<KotlinLibrary>(
emptyList(), listOf(klibFile), knownAbiVersions, emptyList(),
emptyList(), listOf(klibFile),
null, null, false, logger, knownIrProviders
) {
override fun libraryComponentBuilder(file: File, isDefault: Boolean) = createKotlinLibraryComponents(file, isDefault)
@@ -287,7 +274,7 @@ class SingleKlibComponentResolver(
object CompilerSingleFileKlibResolveStrategy : SingleFileKlibResolveStrategy {
override fun resolve(libraryFile: File, logger: Logger) =
SingleKlibComponentResolver(
libraryFile.absolutePath, listOf(KotlinAbiVersion.CURRENT), logger, emptyList()
libraryFile.absolutePath, logger, emptyList()
).resolve(libraryFile.absolutePath)
}
@@ -303,6 +290,6 @@ class CompilerSingleFileKlibResolveAllowingIrProvidersStrategy(
) : SingleFileKlibResolveStrategy {
override fun resolve(libraryFile: File, logger: Logger) =
SingleKlibComponentResolver(
libraryFile.absolutePath, listOf(KotlinAbiVersion.CURRENT), logger, knownIrProviders
libraryFile.absolutePath, logger, knownIrProviders
).resolve(libraryFile.absolutePath)
}