Three changes: @AutoCodec some GlobalFrames I saw in test debugging; roll back unused unknown commit;

PiperOrigin-RevId: 209138584
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
index 00311c3..96204c8 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java
@@ -856,6 +856,10 @@
     return globals.getTransitiveBindings();
   }
 
+  public Object getGlobalsForConstantRegistration() {
+    return globals;
+  }
+
   /** Returns all registered {@link BuildConfiguration.Fragment} classes. */
   public ImmutableSortedSet<Class<? extends BuildConfiguration.Fragment>> getAllFragments() {
     ImmutableSortedSet.Builder<Class<? extends BuildConfiguration.Fragment>> fragmentsBuilder =
diff --git a/src/main/java/com/google/devtools/build/lib/packages/BazelLibrary.java b/src/main/java/com/google/devtools/build/lib/packages/BazelLibrary.java
index fa697c0..44fa1be 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/BazelLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/BazelLibrary.java
@@ -15,6 +15,7 @@
 package com.google.devtools.build.lib.packages;
 
 import com.google.common.collect.ImmutableMap;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
 import com.google.devtools.build.lib.syntax.Environment.GlobalFrame;
 import com.google.devtools.build.lib.syntax.MethodLibrary;
 import com.google.devtools.build.lib.syntax.Runtime;
@@ -25,7 +26,7 @@
 public class BazelLibrary {
 
   /** A global frame containing pure Skylark builtins and some Bazel builtins. */
-  public static final GlobalFrame GLOBALS = createGlobals();
+  @AutoCodec public static final GlobalFrame GLOBALS = createGlobals();
 
   private static GlobalFrame createGlobals() {
     ImmutableMap.Builder<String, Object> builder = ImmutableMap.builder();
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeModule.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeModule.java
index 806ca40..cb2b81e 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeModule.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeModule.java
@@ -28,7 +28,6 @@
 import com.google.devtools.build.lib.packages.NoSuchThingException;
 import com.google.devtools.build.lib.packages.Package;
 import com.google.devtools.build.lib.packages.PackageFactory;
-import com.google.devtools.build.lib.packages.RuleClassProvider;
 import com.google.devtools.build.lib.skyframe.PrecomputedValue;
 import com.google.devtools.build.lib.util.AbruptExitException;
 import com.google.devtools.build.lib.util.io.OutErr;
@@ -264,7 +263,8 @@
    * does not provide any helper, it should return null. Note that only one helper per Bazel/Blaze
    * runtime is allowed.
    */
-  public Package.Builder.Helper getPackageBuilderHelper(RuleClassProvider ruleClassProvider) {
+  public Package.Builder.Helper getPackageBuilderHelper(
+      ConfiguredRuleClassProvider ruleClassProvider) {
     return null;
   }
 
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
index 50aef61..de25b59 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
@@ -291,7 +291,7 @@
   private final ImmutableSet<PathFragment> hardcodedBlacklistedPackagePrefixes;
   private final PathFragment additionalBlacklistedPackagePrefixesFile;
 
-  private final RuleClassProvider ruleClassProvider;
+  private final ConfiguredRuleClassProvider ruleClassProvider;
 
   private final CrossRepositoryLabelViolationStrategy crossRepositoryLabelViolationStrategy;
 
@@ -391,7 +391,7 @@
     this.hardcodedBlacklistedPackagePrefixes = hardcodedBlacklistedPackagePrefixes;
     this.additionalBlacklistedPackagePrefixesFile = additionalBlacklistedPackagePrefixesFile;
 
-    this.ruleClassProvider = pkgFactory.getRuleClassProvider();
+    this.ruleClassProvider = (ConfiguredRuleClassProvider) pkgFactory.getRuleClassProvider();
     this.defaultBuildOptions = defaultBuildOptions;
     this.skyframeBuildView =
         new SkyframeBuildView(
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java b/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java
index 7c85b57..1e05dd04 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoader.java
@@ -26,6 +26,7 @@
 import com.google.devtools.build.lib.actions.FileStateValue;
 import com.google.devtools.build.lib.actions.FileValue;
 import com.google.devtools.build.lib.analysis.BlazeDirectories;
+import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider;
 import com.google.devtools.build.lib.analysis.ServerDirectories;
 import com.google.devtools.build.lib.clock.BlazeClock;
 import com.google.devtools.build.lib.cmdline.PackageIdentifier;
@@ -40,7 +41,6 @@
 import com.google.devtools.build.lib.packages.Package;
 import com.google.devtools.build.lib.packages.PackageFactory;
 import com.google.devtools.build.lib.packages.PackageFactory.EnvironmentExtension;
-import com.google.devtools.build.lib.packages.RuleClassProvider;
 import com.google.devtools.build.lib.pkgcache.PathPackageLocator;
 import com.google.devtools.build.lib.skyframe.ASTFileLookupFunction;
 import com.google.devtools.build.lib.skyframe.BazelSkyframeExecutorConstants;
@@ -120,7 +120,8 @@
         }
       };
   private final Reporter reporter;
-  protected final RuleClassProvider ruleClassProvider;
+  protected final ConfiguredRuleClassProvider ruleClassProvider;
+  private final PackageFactory pkgFactory;
   protected SkylarkSemantics skylarkSemantics;
   protected final ImmutableMap<SkyFunctionName, SkyFunction> extraSkyFunctions;
   private final AtomicReference<PathPackageLocator> pkgLocatorRef;
@@ -136,7 +137,7 @@
     protected final PathPackageLocator pkgLocator;
     final AtomicReference<PathPackageLocator> pkgLocatorRef;
     protected final ExternalFilesHelper externalFilesHelper;
-    protected RuleClassProvider ruleClassProvider = getDefaultRuleClassProvider();
+    protected ConfiguredRuleClassProvider ruleClassProvider = getDefaultRuleClassProvider();
     protected SkylarkSemantics skylarkSemantics;
     protected Reporter reporter = new Reporter(new EventBus());
     protected Map<SkyFunctionName, SkyFunction> extraSkyFunctions = new HashMap<>();
@@ -167,7 +168,7 @@
               directories);
     }
 
-    public Builder setRuleClassProvider(RuleClassProvider ruleClassProvider) {
+    public Builder setRuleClassProvider(ConfiguredRuleClassProvider ruleClassProvider) {
       this.ruleClassProvider = ruleClassProvider;
       return this;
     }
@@ -228,7 +229,7 @@
 
     protected abstract PackageLoader buildImpl();
 
-    protected abstract RuleClassProvider getDefaultRuleClassProvider();
+    protected abstract ConfiguredRuleClassProvider getDefaultRuleClassProvider();
   }
 
   AbstractPackageLoader(Builder builder) {
@@ -248,6 +249,13 @@
             skylarkSemantics,
             builder.pkgLocator,
             ImmutableList.copyOf(builder.extraPrecomputedValues));
+    pkgFactory =
+        new PackageFactory(
+            ruleClassProvider,
+            AttributeContainer::new,
+            getEnvironmentExtensions(),
+            "PackageLoader",
+            Package.Builder.DefaultHelper.INSTANCE);
   }
 
   private static ImmutableDiff makePreinjectedDiff(
@@ -310,6 +318,14 @@
     return result.build();
   }
 
+  public ConfiguredRuleClassProvider getRuleClassProvider() {
+    return ruleClassProvider;
+  }
+
+  public PackageFactory getPackageFactory() {
+    return pkgFactory;
+  }
+
   private static NoSuchPackageException exceptionFromErrorInfo(
       ErrorInfo error, PackageIdentifier pkgId) {
     if (!Iterables.isEmpty(error.getCycleInfo())) {
@@ -340,11 +356,6 @@
             /*keepEdges=*/ false));
   }
 
-  /**
-   * Version is the string BazelPackageLoader reports in native.bazel_version to be used by Skylark.
-   */
-  protected abstract String getVersion();
-
   protected abstract ImmutableList<EnvironmentExtension> getEnvironmentExtensions();
 
   protected abstract CrossRepositoryLabelViolationStrategy
@@ -363,13 +374,6 @@
     AtomicReference<PerBuildSyscallCache> syscallCacheRef =
         new AtomicReference<>(
             PerBuildSyscallCache.newBuilder().setConcurrencyLevel(legacyGlobbingThreads).build());
-    PackageFactory pkgFactory =
-        new PackageFactory(
-            ruleClassProvider,
-            AttributeContainer::new,
-            getEnvironmentExtensions(),
-            getVersion(),
-            Package.Builder.DefaultHelper.INSTANCE);
     pkgFactory.setGlobbingThreads(legacyGlobbingThreads);
     pkgFactory.setSyscalls(syscallCacheRef);
     pkgFactory.setMaxDirectoriesToEagerlyVisitInGlobbing(
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java b/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java
index bb3de55..d299418 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/packages/BazelPackageLoader.java
@@ -26,7 +26,6 @@
 import com.google.devtools.build.lib.bazel.rules.BazelRulesModule;
 import com.google.devtools.build.lib.packages.BuildFileName;
 import com.google.devtools.build.lib.packages.PackageFactory.EnvironmentExtension;
-import com.google.devtools.build.lib.packages.RuleClassProvider;
 import com.google.devtools.build.lib.rules.repository.RepositoryDelegatorFunction;
 import com.google.devtools.build.lib.rules.repository.RepositoryFunction;
 import com.google.devtools.build.lib.rules.repository.RepositoryLoaderFunction;
@@ -51,12 +50,6 @@
  * caching or incrementality.
  */
 public class BazelPackageLoader extends AbstractPackageLoader {
-
-  /**
-   * Version is the string BazelPackageLoader reports in native.bazel_version to be used by Skylark.
-   */
-  private final String version;
-
   /** Returns a fresh {@link Builder} instance. */
   public static Builder builder(Path workspaceDir, Path installBase, Path outputBase) {
     // Prevent PackageLoader from fetching any remote repositories; these should only be fetched by
@@ -115,8 +108,6 @@
 
     private final AtomicBoolean isFetch;
 
-    private String version = "";
-
     private static ConfiguredRuleClassProvider createRuleClassProvider() {
       ConfiguredRuleClassProvider.Builder classProvider = new ConfiguredRuleClassProvider.Builder();
       new BazelRepositoryModule().initializeRuleClasses(classProvider);
@@ -131,37 +122,22 @@
 
     @Override
     public BazelPackageLoader buildImpl() {
-      return new BazelPackageLoader(this, version);
+      return new BazelPackageLoader(this);
     }
 
     @Override
-    protected RuleClassProvider getDefaultRuleClassProvider() {
+    protected ConfiguredRuleClassProvider getDefaultRuleClassProvider() {
       return DEFAULT_RULE_CLASS_PROVIDER;
     }
 
-    /**
-     * Version is the string BazelPackageLoader reports in native.bazel_version to be used by
-     * Skylark.
-     */
-    public Builder setVersion(String version) {
-      this.version = version;
-      return this;
-    }
-
     Builder setFetchForTesting() {
       this.isFetch.set(true);
       return this;
     }
   }
 
-  private BazelPackageLoader(Builder builder, String version) {
+  private BazelPackageLoader(Builder builder) {
     super(builder);
-    this.version = version;
-  }
-
-  @Override
-  protected String getVersion() {
-    return version;
   }
 
   @Override
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Environment.java b/src/main/java/com/google/devtools/build/lib/syntax/Environment.java
index 3f752df..e32b545 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Environment.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Environment.java
@@ -1337,13 +1337,12 @@
   }
 
   /** A read-only {@link Environment.GlobalFrame} with False/True/None constants only. */
-  static final GlobalFrame CONSTANTS_ONLY = createConstantsGlobals();
+  @AutoCodec static final GlobalFrame CONSTANTS_ONLY = createConstantsGlobals();
 
   /**
-   * A read-only {@link Environment.GlobalFrame} with initial globals as defined in
-   * MethodLibrary.
+   * A read-only {@link Environment.GlobalFrame} with initial globals as defined in MethodLibrary.
    */
-  public static final GlobalFrame DEFAULT_GLOBALS = createDefaultGlobals();
+  @AutoCodec public static final GlobalFrame DEFAULT_GLOBALS = createDefaultGlobals();
 
   /** To be removed when all call-sites are updated. */
   public static final GlobalFrame SKYLARK = DEFAULT_GLOBALS;