[JS IR] Rollback PL hacks from JS IR IC infra
^KT-57347 related
This commit is contained in:
committed by
Space Team
parent
fab8a101bb
commit
97620030c6
@@ -125,28 +125,12 @@ class CacheUpdater(
|
|||||||
libs.memoryOptimizedFilter { it.libraryFile.canonicalPath in friendPaths }
|
libs.memoryOptimizedFilter { it.libraryFile.canonicalPath in friendPaths }
|
||||||
}
|
}
|
||||||
|
|
||||||
private val klibCacheDirs = libraryDependencies.keys.map { lib ->
|
private val incrementalCaches = libraryDependencies.keys.associate { lib ->
|
||||||
val libFile = KotlinLibraryFile(lib)
|
val libFile = KotlinLibraryFile(lib)
|
||||||
val file = File(libFile.path)
|
val file = File(libFile.path)
|
||||||
val pathHash = file.absolutePath.cityHash64().toULong().toString(Character.MAX_RADIX)
|
val pathHash = file.absolutePath.cityHash64().toULong().toString(Character.MAX_RADIX)
|
||||||
File(cacheRootDir, "${file.name}.$pathHash")
|
val libraryCacheDir = File(cacheRootDir, "${file.name}.$pathHash")
|
||||||
}
|
libFile to IncrementalCache(KotlinLoadedLibraryHeader(lib, internationService), libraryCacheDir)
|
||||||
|
|
||||||
init {
|
|
||||||
// Enabled Partial Linkage may replace entire IR expressions with a stub during klib linking and loading.
|
|
||||||
// This may break the incremental cache dependency graph.
|
|
||||||
// Dropping incremental cache files after updating klibs (e.g. update klib version)
|
|
||||||
// covers almost all cases which could not be tracked due to a broken dependency graph.
|
|
||||||
// TODO: This code could be removed after fixing KT-57347
|
|
||||||
val oldKlibCaches = cacheRootDir.listFiles { file: File -> file.isDirectory }?.mapTo(hashSetOf()) { it.name } ?: emptySet()
|
|
||||||
val newKlibCaches = klibCacheDirs.mapTo(hashSetOf()) { it.name }
|
|
||||||
if (oldKlibCaches != newKlibCaches) {
|
|
||||||
cacheRootDir.deleteRecursively()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private val incrementalCaches = libraryDependencies.keys.zip(klibCacheDirs).associate { (lib, libraryCacheDir) ->
|
|
||||||
KotlinLibraryFile(lib) to IncrementalCache(KotlinLoadedLibraryHeader(lib, internationService), libraryCacheDir)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private val removedIncrementalCaches = buildList {
|
private val removedIncrementalCaches = buildList {
|
||||||
|
|||||||
Vendored
+2
-2
@@ -1,11 +1,11 @@
|
|||||||
STEP 0:
|
STEP 0:
|
||||||
added file: l1a.kt, l1b.kt
|
added file: l1a.kt, l1b.kt
|
||||||
STEP 1:
|
STEP 1:
|
||||||
added file: l1b.kt, l1a.kt
|
updated exports: l1b.kt, l1a.kt
|
||||||
STEP 2:
|
STEP 2:
|
||||||
updated exports: l1a.kt
|
updated exports: l1a.kt
|
||||||
STEP 3:
|
STEP 3:
|
||||||
added file: l1b.kt, l1a.kt
|
removed inverse depends: l1b.kt, l1a.kt
|
||||||
STEP 4:
|
STEP 4:
|
||||||
modifications:
|
modifications:
|
||||||
U : l1a.4.kt -> l1a.kt
|
U : l1a.4.kt -> l1a.kt
|
||||||
|
|||||||
Vendored
+1
@@ -14,5 +14,6 @@ STEP 3:
|
|||||||
rebuild klib: false
|
rebuild klib: false
|
||||||
modifications:
|
modifications:
|
||||||
D : l2.kt
|
D : l2.kt
|
||||||
|
removed file: l2.kt
|
||||||
STEP 4:
|
STEP 4:
|
||||||
rebuild klib: false
|
rebuild klib: false
|
||||||
|
|||||||
Vendored
+2
-2
@@ -7,7 +7,7 @@ STEP 1:
|
|||||||
dependencies: lib1, lib2
|
dependencies: lib1, lib2
|
||||||
modifications:
|
modifications:
|
||||||
U : m.1.kt -> m.kt
|
U : m.1.kt -> m.kt
|
||||||
added file: m.kt
|
modified ir: m.kt
|
||||||
STEP 2:
|
STEP 2:
|
||||||
dependencies: lib1, lib2
|
dependencies: lib1, lib2
|
||||||
updated imports: m.kt
|
updated imports: m.kt
|
||||||
@@ -15,6 +15,6 @@ STEP 3:
|
|||||||
dependencies: lib1
|
dependencies: lib1
|
||||||
modifications:
|
modifications:
|
||||||
U : m.0.kt -> m.kt
|
U : m.0.kt -> m.kt
|
||||||
added file: m.kt
|
modified ir: m.kt
|
||||||
STEP 4:
|
STEP 4:
|
||||||
dependencies: lib1
|
dependencies: lib1
|
||||||
|
|||||||
+1
-1
@@ -33,7 +33,7 @@ STEP 7:
|
|||||||
STEP 8:
|
STEP 8:
|
||||||
modifications:
|
modifications:
|
||||||
U : l1.0.kt -> l1.kt
|
U : l1.0.kt -> l1.kt
|
||||||
added file: l1.kt
|
modified ir: l1.kt
|
||||||
STEP 9:
|
STEP 9:
|
||||||
modifications:
|
modifications:
|
||||||
U : l1.1.kt -> l1.kt
|
U : l1.1.kt -> l1.kt
|
||||||
|
|||||||
+1
-1
@@ -14,7 +14,7 @@ STEP 8:
|
|||||||
dependencies: lib1, libProxy
|
dependencies: lib1, libProxy
|
||||||
modifications:
|
modifications:
|
||||||
U : m.proxy.kt -> m.kt
|
U : m.proxy.kt -> m.kt
|
||||||
added file: m.kt
|
modified ir: m.kt
|
||||||
STEP 9..13:
|
STEP 9..13:
|
||||||
dependencies: lib1, libProxy
|
dependencies: lib1, libProxy
|
||||||
updated imports: m.kt
|
updated imports: m.kt
|
||||||
|
|||||||
+3
-1
@@ -7,4 +7,6 @@ STEP 2:
|
|||||||
modifications:
|
modifications:
|
||||||
U : l1.2.kt -> l1.kt
|
U : l1.2.kt -> l1.kt
|
||||||
modified ir: l1.kt
|
modified ir: l1.kt
|
||||||
STEP 3..5:
|
STEP 3:
|
||||||
|
removed file: l1.kt
|
||||||
|
STEP 4..5:
|
||||||
|
|||||||
+3
-1
@@ -2,7 +2,9 @@ STEP 0:
|
|||||||
modifications:
|
modifications:
|
||||||
U : l1.0.kt -> l1.kt
|
U : l1.0.kt -> l1.kt
|
||||||
added file: l1.kt
|
added file: l1.kt
|
||||||
STEP 1..2:
|
STEP 1:
|
||||||
|
removed file: l1.kt
|
||||||
|
STEP 2:
|
||||||
STEP 3:
|
STEP 3:
|
||||||
modifications:
|
modifications:
|
||||||
U : l1.3.kt -> l1.kt
|
U : l1.3.kt -> l1.kt
|
||||||
|
|||||||
+2
-2
@@ -3,13 +3,13 @@ STEP 0:
|
|||||||
added file: m.kt
|
added file: m.kt
|
||||||
STEP 1:
|
STEP 1:
|
||||||
dependencies: lib1-new
|
dependencies: lib1-new
|
||||||
added file: m.kt
|
removed direct depends: m.kt
|
||||||
STEP 2:
|
STEP 2:
|
||||||
dependencies: lib1-new
|
dependencies: lib1-new
|
||||||
updated imports: m.kt
|
updated imports: m.kt
|
||||||
STEP 3:
|
STEP 3:
|
||||||
dependencies: lib1
|
dependencies: lib1
|
||||||
added file: m.kt
|
removed direct depends: m.kt
|
||||||
STEP 4..5:
|
STEP 4..5:
|
||||||
dependencies: lib1
|
dependencies: lib1
|
||||||
updated imports: m.kt
|
updated imports: m.kt
|
||||||
|
|||||||
+1
@@ -7,4 +7,5 @@ STEP 2..3:
|
|||||||
STEP 4:
|
STEP 4:
|
||||||
modifications:
|
modifications:
|
||||||
D : l1a.kt
|
D : l1a.kt
|
||||||
|
removed file: l1a.kt
|
||||||
STEP 5:
|
STEP 5:
|
||||||
|
|||||||
+1
@@ -14,4 +14,5 @@ STEP 3:
|
|||||||
STEP 4:
|
STEP 4:
|
||||||
modifications:
|
modifications:
|
||||||
D : l1b.kt
|
D : l1b.kt
|
||||||
|
removed file: l1b.kt
|
||||||
STEP 5:
|
STEP 5:
|
||||||
|
|||||||
+1
@@ -7,4 +7,5 @@ STEP 2..3:
|
|||||||
STEP 4:
|
STEP 4:
|
||||||
modifications:
|
modifications:
|
||||||
D : l1c.kt
|
D : l1c.kt
|
||||||
|
removed file: l1c.kt
|
||||||
STEP 5:
|
STEP 5:
|
||||||
|
|||||||
+1
@@ -9,6 +9,7 @@ STEP 1:
|
|||||||
D : l1a.kt
|
D : l1a.kt
|
||||||
D : l1b.kt
|
D : l1b.kt
|
||||||
D : l1c.kt
|
D : l1c.kt
|
||||||
|
removed file: l1c.kt, l1b.kt, l1a.kt
|
||||||
STEP 2..3:
|
STEP 2..3:
|
||||||
STEP 4:
|
STEP 4:
|
||||||
modifications:
|
modifications:
|
||||||
|
|||||||
+2
-2
@@ -5,12 +5,12 @@ STEP 0:
|
|||||||
added file: l2.kt
|
added file: l2.kt
|
||||||
STEP 1:
|
STEP 1:
|
||||||
dependencies: lib1-a, lib1-b, lib1-c
|
dependencies: lib1-a, lib1-b, lib1-c
|
||||||
added file: l2.kt
|
removed direct depends: l2.kt
|
||||||
STEP 2..3:
|
STEP 2..3:
|
||||||
dependencies: lib1-a, lib1-b, lib1-c
|
dependencies: lib1-a, lib1-b, lib1-c
|
||||||
updated imports: l2.kt
|
updated imports: l2.kt
|
||||||
STEP 4:
|
STEP 4:
|
||||||
dependencies: lib1
|
dependencies: lib1
|
||||||
added file: l2.kt
|
removed direct depends: l2.kt
|
||||||
STEP 5:
|
STEP 5:
|
||||||
dependencies: lib1
|
dependencies: lib1
|
||||||
|
|||||||
-2
@@ -3,11 +3,9 @@ STEP 0:
|
|||||||
added file: m.kt
|
added file: m.kt
|
||||||
STEP 1:
|
STEP 1:
|
||||||
dependencies: lib1-a, lib1-b, lib1-c, lib2
|
dependencies: lib1-a, lib1-b, lib1-c, lib2
|
||||||
added file: m.kt
|
|
||||||
STEP 2..3:
|
STEP 2..3:
|
||||||
dependencies: lib1-a, lib1-b, lib1-c, lib2
|
dependencies: lib1-a, lib1-b, lib1-c, lib2
|
||||||
STEP 4:
|
STEP 4:
|
||||||
dependencies: lib1, lib2
|
dependencies: lib1, lib2
|
||||||
added file: m.kt
|
|
||||||
STEP 5:
|
STEP 5:
|
||||||
dependencies: lib1, lib2
|
dependencies: lib1, lib2
|
||||||
|
|||||||
+2
-2
@@ -5,13 +5,13 @@ STEP 0:
|
|||||||
dirty js: lib1, lib2, main
|
dirty js: lib1, lib2, main
|
||||||
STEP 1:
|
STEP 1:
|
||||||
libs: lib1-a, lib1-b, lib1-c, lib2, main
|
libs: lib1-a, lib1-b, lib1-c, lib2, main
|
||||||
dirty js: lib1-a, lib1-b, lib1-c, main, lib2
|
dirty js: lib1-a, lib1-b, lib1-c, lib2
|
||||||
STEP 2..3:
|
STEP 2..3:
|
||||||
libs: lib1-a, lib1-b, lib1-c, lib2, main
|
libs: lib1-a, lib1-b, lib1-c, lib2, main
|
||||||
dirty js: lib1-b, lib2
|
dirty js: lib1-b, lib2
|
||||||
STEP 4:
|
STEP 4:
|
||||||
libs: lib1, lib2, main
|
libs: lib1, lib2, main
|
||||||
dirty js: lib1, lib2, main
|
dirty js: lib1, lib2
|
||||||
STEP 5:
|
STEP 5:
|
||||||
libs: lib1, lib2, main
|
libs: lib1, lib2, main
|
||||||
dirty js: lib1
|
dirty js: lib1
|
||||||
|
|||||||
Reference in New Issue
Block a user