Tags mapped singletons in SkyValueEncoder
PiperOrigin-RevId: 187209783
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/CollectTargetsInPackageValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/CollectTargetsInPackageValue.java
index 632a794..8325526 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/CollectTargetsInPackageValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/CollectTargetsInPackageValue.java
@@ -16,6 +16,7 @@
import com.google.auto.value.AutoValue;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
import com.google.devtools.build.lib.pkgcache.FilteringPolicy;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.skyframe.LegacySkyKey;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
@@ -23,6 +24,7 @@
/** Singleton result of {@link CollectTargetsInPackageFunction}. */
public class CollectTargetsInPackageValue implements SkyValue {
+ @AutoCodec
public static final CollectTargetsInPackageValue INSTANCE = new CollectTargetsInPackageValue();
private CollectTargetsInPackageValue() {}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternValue.java
index 1dc932d..2338368 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfPatternValue.java
@@ -20,6 +20,7 @@
import com.google.devtools.build.lib.pkgcache.FilteringPolicies;
import com.google.devtools.build.lib.skyframe.TargetPatternValue.TargetPatternKey;
import com.google.devtools.build.lib.skyframe.TargetPatternValue.TargetPatternSkyKeyOrException;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.skyframe.LegacySkyKey;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
@@ -40,6 +41,7 @@
public class PrepareDepsOfPatternValue implements SkyValue {
// Note that this value does not guarantee singleton-like reference equality because we use Java
// deserialization. Java deserialization can create other instances.
+ @AutoCodec
public static final PrepareDepsOfPatternValue INSTANCE = new PrepareDepsOfPatternValue();
private PrepareDepsOfPatternValue() {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryValue.java
index 4c948a7..ef2e04b 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PrepareDepsOfTargetsUnderDirectoryValue.java
@@ -44,6 +44,7 @@
* directories above that one, but they don't need to be re-run.
*/
public final class PrepareDepsOfTargetsUnderDirectoryValue implements SkyValue {
+ @AutoCodec
public static final PrepareDepsOfTargetsUnderDirectoryValue INSTANCE =
new PrepareDepsOfTargetsUnderDirectoryValue();
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TargetMarkerValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/TargetMarkerValue.java
index 9ecb401..7af9887 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TargetMarkerValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TargetMarkerValue.java
@@ -17,6 +17,7 @@
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.skyframe.LegacySkyKey;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
@@ -30,7 +31,7 @@
// Note that this value does not guarantee singleton-like reference equality because we use Java
// deserialization. java deserialization can create other instances.
- public static final TargetMarkerValue TARGET_MARKER_INSTANCE = new TargetMarkerValue();
+ @AutoCodec public static final TargetMarkerValue TARGET_MARKER_INSTANCE = new TargetMarkerValue();
private TargetMarkerValue() {
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/AutoRegistry.java b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/AutoRegistry.java
index cd8c3c4..bf11b86 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/AutoRegistry.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/AutoRegistry.java
@@ -35,7 +35,7 @@
private static ObjectCodecRegistry create() {
try {
- return CodecScanner.initializeCodecRegistry("com.google.devtools.build.lib")
+ return CodecScanner.initializeCodecRegistry("com.google.devtools.build")
.setAllowDefaultCodec(false)
.build();
} catch (IOException | ReflectiveOperationException e) {
diff --git a/src/main/java/com/google/devtools/build/skyframe/BUILD b/src/main/java/com/google/devtools/build/skyframe/BUILD
index 6d6a99f..c33e8ae 100644
--- a/src/main/java/com/google/devtools/build/skyframe/BUILD
+++ b/src/main/java/com/google/devtools/build/skyframe/BUILD
@@ -38,6 +38,7 @@
"//src/main/java/com/google/devtools/build/lib/collect/nestedset",
"//src/main/java/com/google/devtools/build/lib/concurrent",
"//src/main/java/com/google/devtools/build/lib/profiler",
+ "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
"//src/main/java/com/google/devtools/build/lib/vfs",
"//src/main/java/com/google/devtools/common/options",
"//third_party:guava",
diff --git a/src/main/java/com/google/devtools/build/skyframe/EmptySkyValue.java b/src/main/java/com/google/devtools/build/skyframe/EmptySkyValue.java
index 3ee8bba..bd31c4f 100644
--- a/src/main/java/com/google/devtools/build/skyframe/EmptySkyValue.java
+++ b/src/main/java/com/google/devtools/build/skyframe/EmptySkyValue.java
@@ -13,6 +13,7 @@
// limitations under the License.
package com.google.devtools.build.skyframe;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
@@ -20,6 +21,7 @@
* A SkyValue with no attached data. Preferable to a specialized empty value class to minimize
* bloat.
*/
+@AutoCodec(strategy = AutoCodec.Strategy.SINGLETON)
public final class EmptySkyValue implements SkyValue {
public static final EmptySkyValue INSTANCE = new EmptySkyValue();
diff --git a/src/main/java/com/google/devtools/build/skyframe/ErrorTransienceValue.java b/src/main/java/com/google/devtools/build/skyframe/ErrorTransienceValue.java
index 46b99c2..2d6de96 100644
--- a/src/main/java/com/google/devtools/build/skyframe/ErrorTransienceValue.java
+++ b/src/main/java/com/google/devtools/build/skyframe/ErrorTransienceValue.java
@@ -13,6 +13,7 @@
// limitations under the License.
package com.google.devtools.build.skyframe;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
@@ -20,6 +21,7 @@
* A value that represents "error transience", i.e. anything which may have caused an unexpected
* failure. Is not equal to anything, including itself, in order to force re-evaluation.
*/
+@AutoCodec(strategy = AutoCodec.Strategy.SINGLETON)
public final class ErrorTransienceValue implements SkyValue {
public static final SkyFunctionName FUNCTION_NAME = SkyFunctionName.create("ERROR_TRANSIENCE");
public static final SkyKey KEY = LegacySkyKey.create(FUNCTION_NAME, "ERROR_TRANSIENCE");