Skip to content

Commit b445e77

Browse files
gregestrencopybara-github
authored andcommitted
Remove outdated affected by starlark transition flag.
This is unused ever since `--experimental_output_directory_naming_scheme` defaulted to `diff_against_dynamic_baseline`. Part of #27636 cleanup. PiperOrigin-RevId: 832476588 Change-Id: I6f97181d29c65f89f84ff5113aad223f621ef6b9
1 parent f272773 commit b445e77

File tree

11 files changed

+9
-158
lines changed

11 files changed

+9
-158
lines changed

src/main/java/com/google/devtools/build/lib/analysis/BUILD

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1756,7 +1756,6 @@ java_library(
17561756
"//src/main/java/com/google/devtools/build/lib/analysis/config:core_options",
17571757
"//src/main/java/com/google/devtools/build/lib/analysis/config:fragment_options",
17581758
"//src/main/java/com/google/devtools/build/lib/analysis/config:optioninfo",
1759-
"//src/main/java/com/google/devtools/build/lib/analysis/config:options_diff",
17601759
"//src/main/java/com/google/devtools/build/lib/analysis/config:scope",
17611760
"//src/main/java/com/google/devtools/build/lib/analysis/config:starlark_defined_config_transition",
17621761
"//src/main/java/com/google/devtools/build/lib/analysis/config/transitions:configuration_transition",

src/main/java/com/google/devtools/build/lib/analysis/config/BUILD

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,6 @@ java_library(
282282
":core_options",
283283
":fragment_options",
284284
"//src/main/java/com/google/devtools/build/lib/analysis:platform_options",
285-
"//src/main/java/com/google/devtools/build/lib/analysis:starlark/function_transition_util",
286285
"//src/main/java/com/google/devtools/build/lib/analysis/config/transitions:configuration_transition",
287286
"//src/main/java/com/google/devtools/build/lib/analysis/config/transitions:no_config_transition",
288287
"//src/main/java/com/google/devtools/build/lib/analysis/config/transitions:patch_transition",

src/main/java/com/google/devtools/build/lib/analysis/config/CoreOptions.java

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import com.google.devtools.build.lib.analysis.config.CoreOptionConverters.LabelToStringEntryConverter;
2525
import com.google.devtools.build.lib.cmdline.Label;
2626
import com.google.devtools.build.lib.util.RegexFilter;
27-
import com.google.devtools.common.options.Converter;
2827
import com.google.devtools.common.options.Converters;
2928
import com.google.devtools.common.options.Converters.BooleanConverter;
3029
import com.google.devtools.common.options.Converters.CommaSeparatedOptionSetConverter;
@@ -33,7 +32,6 @@
3332
import com.google.devtools.common.options.OptionDocumentationCategory;
3433
import com.google.devtools.common.options.OptionEffectTag;
3534
import com.google.devtools.common.options.OptionMetadataTag;
36-
import com.google.devtools.common.options.OptionsParsingException;
3735
import com.google.devtools.common.options.TriState;
3836
import java.util.ArrayList;
3937
import java.util.Comparator;
@@ -432,40 +430,6 @@ If specified, the value of the cpu constraint (`@platforms//cpu:cpu`) of
432430
""")
433431
public boolean useAutoExecGroups;
434432

435-
/** Regardless of input, converts to an empty list. For use with affectedByStarlarkTransition */
436-
public static class EmptyListConverter extends Converter.Contextless<List<String>> {
437-
@Override
438-
public List<String> convert(String input) throws OptionsParsingException {
439-
return ImmutableList.of();
440-
}
441-
442-
@Override
443-
public String getTypeDescription() {
444-
return "Regardless of input, converts to an empty list. For use with"
445-
+ " affectedByStarlarkTransition";
446-
}
447-
}
448-
449-
/**
450-
* This internal option is a *set* of names of options that have been changed by starlark
451-
* transitions at any point in the build at the time of accessing. It contains both native and
452-
* starlark options in label form. e.g. "//command_line_option:cpu" for native options and
453-
* "//myapp:foo" for starlark options. This is used to regenerate {@code
454-
* transitionDirectoryNameFragment} after each starlark transition.
455-
*/
456-
@Option(
457-
name = "affected by starlark transition",
458-
defaultValue = "",
459-
converter = EmptyListConverter.class,
460-
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
461-
effectTags = {
462-
OptionEffectTag.LOSES_INCREMENTAL_STATE,
463-
OptionEffectTag.AFFECTS_OUTPUTS,
464-
OptionEffectTag.LOADING_AND_ANALYSIS
465-
},
466-
metadataTags = {OptionMetadataTag.INTERNAL})
467-
public List<String> affectedByStarlarkTransition;
468-
469433
/* At the moment, EXPLICIT_IN_OUTPUT_PATH is not being set here because platform_suffix
470434
* is being used as a configuration distinguisher for the exec transition. */
471435
@Option(

src/main/java/com/google/devtools/build/lib/analysis/config/ExecutionTransitionFactory.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import com.google.devtools.build.lib.cmdline.Label;
3131
import com.google.devtools.build.lib.events.EventHandler;
3232
import com.google.devtools.build.lib.packages.AttributeTransitionData;
33-
import com.google.devtools.build.lib.packages.DeclaredExecGroup;
3433
import com.google.devtools.build.lib.rules.config.FeatureFlagValue;
3534
import com.google.devtools.build.lib.starlarkbuildapi.config.StarlarkConfigApi.ExecTransitionFactoryApi;
3635
import com.google.devtools.build.lib.util.Pair;
@@ -228,8 +227,6 @@ public BuildOptions patch(BuildOptionsView options, EventHandler eventHandler)
228227
// of exactly how the immutable state and mutable state of BuildOptions is interacting.
229228
// Might be good to have an option to wipeout that state rather than cloning so much.
230229
coreOptions.platformSuffix = "exec";
231-
coreOptions.affectedByStarlarkTransition =
232-
options.underlying().get(CoreOptions.class).affectedByStarlarkTransition;
233230
coreOptions.executionInfoModifier =
234231
options.underlying().get(CoreOptions.class).executionInfoModifier;
235232
coreOptions.overridePlatformCpuName =

src/main/java/com/google/devtools/build/lib/analysis/config/OutputPathMnemonicComputer.java

Lines changed: 8 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@
1515
package com.google.devtools.build.lib.analysis.config;
1616

1717
import static com.google.common.collect.ImmutableSet.toImmutableSet;
18-
import static com.google.devtools.build.lib.cmdline.LabelConstants.COMMAND_LINE_OPTION_PREFIX;
1918

2019
import com.google.common.annotations.VisibleForTesting;
2120
import com.google.common.base.Strings;
21+
import com.google.common.base.Verify;
2222
import com.google.common.collect.ImmutableList;
2323
import com.google.common.collect.ImmutableMap;
2424
import com.google.common.collect.ImmutableSet;
@@ -167,14 +167,9 @@ public ImmutableSet<String> getExplicitInOutputPathOptions() {
167167
*
168168
* <p>platform_suffix is omitted if empty.
169169
*
170-
* <p>The exact ST-hash used depends on if baselineOptions is available:
171-
*
172-
* <p>If not, assume in legacy mode and use `affected by starlark transition` to see what options
173-
* need to be hashed.
174-
*
175-
* <p>If available, the hash includes all options that are different between buildOptions and
176-
* baselineOptions but were also not excluded from the output path by a call to {@link
177-
* Fragment.OutputDirectoriesContext.markAsExplicitInOutputPathFor}
170+
* <p>The exact ST-hash used depends on baselineOptions. The hash includes all options that are
171+
* different between buildOptions and baselineOptions but were also not excluded from the output
172+
* path by a call to {@link Fragment.OutputDirectoriesContext.markAsExplicitInOutputPathFor}
178173
*/
179174
static final String computeMnemonic(
180175
BuildOptions buildOptions,
@@ -226,15 +221,10 @@ static final String computeMnemonic(
226221
+ missingOptions);
227222
}
228223

229-
if (baselineOptions == null) {
230-
ctx.checkedAddToMnemonic(
231-
computeNameFragmentWithAffectedByStarlarkTransition(buildOptions),
232-
"Transition directory name fragment");
233-
} else {
234-
ctx.checkedAddToMnemonic(
235-
computeNameFragmentWithDiff(buildOptions, baselineOptions, explicitInOutputPathOptions),
236-
"Transition directory name fragment");
237-
}
224+
ctx.checkedAddToMnemonic(
225+
computeNameFragmentWithDiff(
226+
buildOptions, Verify.verifyNotNull(baselineOptions), explicitInOutputPathOptions),
227+
"Transition directory name fragment");
238228
return ctx.getMnemonic();
239229
}
240230

@@ -319,43 +309,6 @@ public static String computeNameFragmentWithDiff(
319309
return hashChosenOptions(toOptions, chosenNativeOptions, chosenStarlarkOptions);
320310
}
321311

322-
/**
323-
* Compute the output directory name fragment corresponding to the new BuildOptions based on the
324-
* names and values of all options (both native and Starlark) previously transitioned anywhere in
325-
* the build by Starlark transitions. Options only set on command line are not affecting the
326-
* computation.
327-
*
328-
* @param toOptions the {@link BuildOptions} to use to calculate which we need to compute {@code
329-
* transitionDirectoryNameFragment}.
330-
*/
331-
private static String computeNameFragmentWithAffectedByStarlarkTransition(
332-
BuildOptions toOptions) {
333-
CoreOptions buildConfigOptions = toOptions.get(CoreOptions.class);
334-
if (buildConfigOptions.affectedByStarlarkTransition.isEmpty()) {
335-
return "";
336-
}
337-
338-
ImmutableList.Builder<String> affectedNativeOptions = ImmutableList.builder();
339-
ImmutableList.Builder<String> affectedStarlarkOptions = ImmutableList.builder();
340-
341-
// Note that explicitInOutputPathOptions is not sent to this function.
342-
// It is possible for two BuildOptions to differ only in `affected by Starlark transition`
343-
// where the only different is one includes a marked option and the other doesn't.
344-
// Thus, must include all options so those cases get a different output path.
345-
// This legacy is no longer the default and thus entire code path is slated for removal.
346-
for (String optionName : buildConfigOptions.affectedByStarlarkTransition) {
347-
if (optionName.startsWith(COMMAND_LINE_OPTION_PREFIX)) {
348-
String nativeOptionName = optionName.substring(COMMAND_LINE_OPTION_PREFIX.length());
349-
affectedNativeOptions.add(nativeOptionName);
350-
} else {
351-
affectedStarlarkOptions.add(optionName);
352-
}
353-
}
354-
355-
return hashChosenOptions(
356-
toOptions, affectedNativeOptions.build(), affectedStarlarkOptions.build());
357-
}
358-
359312
/**
360313
* Compute a hash of the given BuildOptions by hashing only the options referenced in both
361314
* chosenNative and chosenStarlark. The order of the chosen order does not matter (as this

src/main/java/com/google/devtools/build/lib/analysis/starlark/FunctionTransitionUtil.java

Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
import static com.google.common.base.Predicates.not;
1818
import static com.google.common.collect.ImmutableList.toImmutableList;
19-
import static com.google.common.collect.ImmutableSet.toImmutableSet;
2019
import static com.google.devtools.build.lib.analysis.config.transitions.ConfigurationTransition.PATCH_TRANSITION_KEY;
2120
import static com.google.devtools.build.lib.cmdline.LabelConstants.COMMAND_LINE_OPTION_PREFIX;
2221
import static java.util.stream.Collectors.joining;
@@ -30,13 +29,11 @@
3029
import com.google.common.collect.ImmutableSet;
3130
import com.google.common.collect.Sets;
3231
import com.google.common.collect.Sets.SetView;
33-
import com.google.common.collect.Streams;
3432
import com.google.devtools.build.lib.analysis.config.BuildOptions;
3533
import com.google.devtools.build.lib.analysis.config.CoreOptionConverters.CustomFlagConverter;
3634
import com.google.devtools.build.lib.analysis.config.CoreOptions;
3735
import com.google.devtools.build.lib.analysis.config.FragmentOptions;
3836
import com.google.devtools.build.lib.analysis.config.OptionInfo;
39-
import com.google.devtools.build.lib.analysis.config.OptionsDiff;
4037
import com.google.devtools.build.lib.analysis.config.Scope;
4138
import com.google.devtools.build.lib.analysis.config.StarlarkDefinedConfigTransition;
4239
import com.google.devtools.build.lib.analysis.config.StarlarkDefinedConfigTransition.ValidationException;
@@ -56,9 +53,7 @@
5653
import java.util.Objects;
5754
import java.util.Optional;
5855
import java.util.Set;
59-
import java.util.TreeSet;
6056
import java.util.stream.Collectors;
61-
import java.util.stream.Stream;
6257
import javax.annotation.Nullable;
6358
import net.starlark.java.eval.NoneType;
6459
import net.starlark.java.eval.Starlark;
@@ -578,8 +573,6 @@ private static BuildOptions applyTransition(
578573
// toOptions being null means the transition hasn't changed anything. We avoid preemptively
579574
// cloning it from fromOptions since options cloning is an expensive operation.
580575
BuildOptions toOptions = null;
581-
// The names of options (Starlark + native) that are different after this transition and must
582-
// be added to "affected by Starlark transition"
583576
// Starlark options that are different after this transition. We collect all of them, then clone
584577
// the build options once with all cumulative changes. Native option changes, in contrast, are
585578
// set directly in the BuildOptions instance. The former approach is preferred since it makes
@@ -717,7 +710,6 @@ private static BuildOptions applyTransition(
717710
toOptions = fromOptions.clone();
718711
}
719712
def.setValue(toOptions.get(optionInfo.getOptionClass()), convertedValue);
720-
721713
}
722714

723715
} catch (IllegalArgumentException e) {
@@ -741,48 +733,10 @@ private static BuildOptions applyTransition(
741733
.addStarlarkOptions(changedStarlarkOptions)
742734
.build();
743735
if (starlarkTransition.isForAnalysisTesting()) {
744-
// We need to record every time we change a configuration option.
745-
// see {@link #updateOutputDirectoryNameFragment} for usage.
746736
toOptions.get(CoreOptions.class).evaluatingForAnalysisTest = true;
747737
}
748738
return toOptions;
749739
}
750740

751-
/** Return different options in "affected by Starlark transition" form */
752-
// TODO(blaze-configurability-team):This only exists for pseudo-legacy fixups of native
753-
// transitions. Remove once those fixups are removed in favor of the global fixup.
754-
public static ImmutableSet<String> getAffectedByStarlarkTransitionViaDiff(
755-
BuildOptions toOptions, BuildOptions baselineOptions) {
756-
if (toOptions.equals(baselineOptions)) {
757-
return ImmutableSet.of();
758-
}
759-
760-
OptionsDiff diff = OptionsDiff.diff(toOptions, baselineOptions);
761-
Stream<String> diffNative =
762-
diff.getFirst().keySet().stream()
763-
.map(option -> COMMAND_LINE_OPTION_PREFIX + option.getOptionName());
764-
// Note: getChangedStarlarkOptions includes all changed options, added options and removed
765-
// options between baselineOptions and toOptions. This is necessary since there is no current
766-
// notion of trimming a Starlark option: 'null' or non-existent justs means set to default.
767-
Stream<String> diffStarlark = diff.getChangedStarlarkOptions().stream().map(Label::toString);
768-
return Streams.concat(diffNative, diffStarlark).collect(toImmutableSet());
769-
}
770-
771-
/**
772-
* Extend the global build config affectedByStarlarkTransition, by adding any new option names
773-
* from changedOptions. Does nothing if output directory naming scheme is not in legacy mode.
774-
*/
775-
public static void updateAffectedByStarlarkTransition(
776-
CoreOptions buildConfigOptions, Set<String> changedOptions) {
777-
if (changedOptions.isEmpty()) {
778-
return;
779-
}
780-
Set<String> mutableCopyToUpdate =
781-
new TreeSet<>(buildConfigOptions.affectedByStarlarkTransition);
782-
mutableCopyToUpdate.addAll(changedOptions);
783-
buildConfigOptions.affectedByStarlarkTransition =
784-
ImmutableList.sortedCopyOf(mutableCopyToUpdate);
785-
}
786-
787741
private FunctionTransitionUtil() {}
788742
}

src/main/java/com/google/devtools/build/lib/rules/config/BUILD

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ java_library(
3434
"//src/main/java/com/google/devtools/build/lib/analysis:required_config_fragments_provider",
3535
"//src/main/java/com/google/devtools/build/lib/analysis:rule_definition_environment",
3636
"//src/main/java/com/google/devtools/build/lib/analysis:rule_error_consumer",
37-
"//src/main/java/com/google/devtools/build/lib/analysis:starlark/function_transition_util",
3837
"//src/main/java/com/google/devtools/build/lib/analysis:starlark/starlark_config",
3938
"//src/main/java/com/google/devtools/build/lib/analysis:test/test_configuration",
4039
"//src/main/java/com/google/devtools/build/lib/analysis:transitive_info_collection",

src/test/java/com/google/devtools/build/lib/analysis/config/BuildConfigurationFunctionTest.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,6 @@ def _impl(ctx):
7878
""");
7979
}
8080

81-
private CoreOptions getCoreOptions(ConfiguredTarget target) {
82-
return getConfiguration(target).getOptions().get(CoreOptions.class);
83-
}
84-
8581
private String getMnemonic(ConfiguredTarget target) {
8682
return getConfiguration(target).getMnemonic();
8783
}
@@ -145,7 +141,6 @@ def _basic_impl(ctx):
145141
ConfiguredTarget test = getConfiguredTarget("//test");
146142

147143
assertThat(getMnemonic(test)).doesNotContain("-ST-");
148-
assertThat(getCoreOptions(test).affectedByStarlarkTransition).isEmpty();
149144

150145
@SuppressWarnings("unchecked")
151146
ConfiguredTarget dep =
@@ -156,7 +151,6 @@ def _basic_impl(ctx):
156151
.endsWith(
157152
OutputPathMnemonicComputer.transitionDirectoryNameFragment(
158153
ImmutableList.of("//test:foo=transitioned")));
159-
assertThat(getCoreOptions(dep).affectedByStarlarkTransition).isEmpty();
160154
}
161155

162156
@Test
@@ -213,7 +207,6 @@ def _basic_impl(ctx):
213207

214208
assertThat(getConfiguration(test).getMnemonic()).contains("fastbuild");
215209
assertThat(getMnemonic(test)).doesNotContain("-ST-");
216-
assertThat(getCoreOptions(test).affectedByStarlarkTransition).isEmpty();
217210

218211
@SuppressWarnings("unchecked")
219212
ConfiguredTarget dep =
@@ -222,7 +215,6 @@ def _basic_impl(ctx):
222215

223216
assertThat(getConfiguration(dep).getMnemonic()).contains("opt");
224217
assertThat(getMnemonic(dep)).doesNotContain("-ST-");
225-
assertThat(getCoreOptions(dep).affectedByStarlarkTransition).isEmpty();
226218
}
227219

228220
@Test
@@ -292,7 +284,6 @@ def _basic_impl(ctx):
292284
ConfiguredTarget test = getConfiguredTarget("//test");
293285

294286
assertThat(getMnemonic(test)).doesNotContain("-ST-");
295-
assertThat(getCoreOptions(test).affectedByStarlarkTransition).isEmpty();
296287

297288
@SuppressWarnings("unchecked")
298289
ConfiguredTarget middle =
@@ -303,15 +294,13 @@ def _basic_impl(ctx):
303294
.endsWith(
304295
OutputPathMnemonicComputer.transitionDirectoryNameFragment(
305296
ImmutableList.of("//test:foo=transitioned")));
306-
assertThat(getCoreOptions(middle).affectedByStarlarkTransition).isEmpty();
307297

308298
@SuppressWarnings("unchecked")
309299
ConfiguredTarget root =
310300
Iterables.getOnlyElement(
311301
(List<ConfiguredTarget>) getMyInfoFromTarget(middle).getValue("dep"));
312302

313303
assertThat(getMnemonic(test)).doesNotContain("-ST-");
314-
assertThat(getCoreOptions(test).affectedByStarlarkTransition).isEmpty();
315304

316305
assertThat(getConfiguration(test)).isEqualTo(getConfiguration(root));
317306
assertThat(getConfiguration(test)).isNotEqualTo(getConfiguration(middle));

src/test/java/com/google/devtools/build/lib/analysis/config/ExecutionTransitionFactoryTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,6 @@ public void executionTransitionOutputPathDistinguisher() throws Exception {
107107
new BuildOptionsView(options, transition.requiresOptionFragments()),
108108
new StoredEventHandler());
109109

110-
assertThat(result.get(CoreOptions.class).affectedByStarlarkTransition).isEmpty();
111110
assertThat(result.get(CoreOptions.class).platformSuffix).isEqualTo("exec");
112111
}
113112

src/test/java/com/google/devtools/build/lib/analysis/starlark/BUILD

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ java_test(
5555
"//src/main/java/com/google/devtools/build/lib/analysis:platform_options",
5656
"//src/main/java/com/google/devtools/build/lib/analysis:required_config_fragments_provider",
5757
"//src/main/java/com/google/devtools/build/lib/analysis/config:build_configuration",
58-
"//src/main/java/com/google/devtools/build/lib/analysis/config:build_options",
5958
"//src/main/java/com/google/devtools/build/lib/analysis/config:core_options",
6059
"//src/main/java/com/google/devtools/build/lib/analysis/config/transitions:configuration_transition",
6160
"//src/main/java/com/google/devtools/build/lib/cmdline",

0 commit comments

Comments
 (0)