# Bazel Starlark Evaluation and BUILD File Migration Inventory
## Your Task
Find all Java source files in bazelbuild/bazel under src/main/java/com/google/devtools/build/lib/packages/ and src/main/java/net/starlark/ that implement Starlark evaluation for BUILD files. Identify: the StarlarkThread class and its environment setup, the PackageFactory that invokes Starlark evaluation, the BzlLoadFunction for .bzl file loading, the rule() and macro() builtin function implementations, and the Package.Builder that accumulates targets. Report each file path and key class.
## Context
You are working on a codebase task involving repos from the migration domain.
## Available Resources
## Output Format
Use the published task contract:
- `TASK_WORKDIR=/workspace`
- `TASK_REPO_ROOT=/workspace`
- `TASK_OUTPUT=/workspace/answer.json`
Create a file at `TASK_OUTPUT` (`/workspace/answer.json`) with your findings in the following structure:
```json
{
"files": [
{"repo": "org/repo-name", "path": "relative/path/to/file.go"}
],
"symbols": [
{"repo": "org/repo-name", "path": "relative/path/to/file.go", "symbol": "SymbolName"}
],
"chain": [
{"repo": "org/repo-name", "path": "relative/path/to/file.go", "symbol": "FunctionName"}
],
"text": "Narrative explanation of your findings, citing repos and file paths."
}
```
Include only the fields relevant to this task. Your answer is evaluated against a closed-world oracle — completeness matters.
## Evaluation
Your answer will be scored on:
- **File recall and precision**: Did you find all relevant files?
| Tool | Calls |
|---|---|
Bash | 7 |
Write | 1 |
| # | Timestamp | Type | Subtype | Tool | Text |
|---|---|---|---|---|---|
| 1 | - | system | init | - | |
| 2 | - | assistant | text | - | I'll start by checking what's in the workspace, then locate the relevant Bazel source directories. |
| 3 | - | assistant | tool_use | Bash | |
| 4 | 2026-06-12T17:37:32.070Z | user | tool_result | Bash | bazel--8.0.0 |
| 5 | - | assistant | tool_use | Bash | |
| 6 | 2026-06-12T17:37:41.126Z | user | tool_result | Bash | BUILD BuiltinFunction.java CallUtils.java CpuProfiler.java Debug.java Dict.java Eval.java EvalException.java EvalUtils.java FlagGuardedValue.java FormatParser.java GuardedValue.java HasBinary.java ImmutableSingletonStarlarkList.java ImmutableStarlarkList.java JNI.java LazyImmutableStarlarkList.java MethodDescriptor.java MethodLibrary.java Module.java Mutability.java MutableStarlarkList.java NoneType.java ParamDescriptor.java Printer.java RangeList.java RegularImmutableStarlarkList.java RegularTuple.java Sequence.java SingletonTuple.java Starlark.java StarlarkCallable.java StarlarkFloat.java StarlarkFunction.java StarlarkIndexable.java StarlarkInt.java StarlarkIterable.java StarlarkList.java StarlarkSemantics.java StarlarkThread.java StarlarkValue.java StringModule.java Structure.java SymbolGenerator.java Tuple.java cpu_profiler_posix.cc cpu_profiler_unimpl.cc --- AbstractAttributeMapper.java AdvertisedProviderSet.java AggregatingAttributeMapper.java AllowlistChecker.java Aspect.java AspectClass.java AspectDefinition.java AspectDescriptor.java AspectParameters.java AspectsList.java Attribute.java AttributeFormatter.java AttributeMap.java AttributeTransitionData.java AttributeValueSource.java AutoloadSymbols.java BUILD BazelStarlarkEnvironment.java BuildFileContainsErrorsException.java BuildFileName.java BuildFileNotFoundException.java BuildGlobals.java BuildSetting.java BuildType.java BuilderFactoryForTesting.java BuiltinProvider.java BuiltinRestriction.java BuiltinsInternalModule.java BzlInitThreadContext.java BzlVisibility.java CachingPackageLocator.java CallStack.java ConfigurationFragmentPolicy.java ConfiguredAttributeMapper.java DefaultSetting.java DelegatingAttributeMapper.java DependencyFilter.java DotBazelFileSyntaxChecker.java EnumFilterConverter.java EnvironmentGroup.java EnvironmentLabels.java ErrorDeterminingRepositoryException.java ExecGroup.java FileTarget.java FunctionSplitTransitionAllowlist.java GlobCache.java Globber.java GlobberUtils.java ImplicitOutputsFunction.java Info.java InputFile.java InvalidPackageNameException.java LabelConverter.java LabelPrinter.java LabelVisitationUtils.java License.java MacroClass.java MacroInstance.java MaterializingDefault.java NativeAspectClass.java NativeInfo.java NoSuchPackageException.java NoSuchTargetException.java NoSuchThingException.java NonSkyframeGlobber.java NonconfigurableAttributeMapper.java NonconfiguredAttributeMapper.java OutputFile.java Package.java PackageArgs.java PackageCallable.java PackageCodecDependencies.java PackageFactory.java PackageGroup.java PackageGroupsRuleVisibility.java PackageLoadingListener.java PackageOverheadEstimator.java PackageSerializerInterface.java PackageSpecification.java PackageValidator.java PredicateWithMessage.java PrivateVisibilityInputFile.java Proto.java ProtoUtils.java Provider.java RawAttributeMapper.java RelativePackageNameResolver.java RepoFileGlobals.java RepoThreadContext.java RepositoryFetchException.java RequiredProviders.java Rule.java RuleClass.java RuleClassData.java RuleClassId.java RuleClassProvider.java RuleClassUtils.java RuleCodec.java RuleDataCodec.java RuleFactory.java |
| 7 | - | assistant | tool_use | Bash | |
| 8 | 2026-06-12T17:37:46.817Z | user | tool_result | Bash | StarlarkAspect.java StarlarkAspectClass.java StarlarkCallbackHelper.java StarlarkDefinedAspect.java StarlarkExportable.java StarlarkGlobals.java StarlarkInfo.java StarlarkInfoNoSchema.java StarlarkInfoWithMessage.java StarlarkInfoWithSchema.java StarlarkNativeAspect.java StarlarkNativeModule.java StarlarkProvider.java StarlarkProviderIdentifier.java StarlarkProviderWrapper.java StructImpl.java StructProvider.java Target.java TargetData.java TargetDefinitionContext.java TargetRecorder.java TargetSuggester.java TargetUtils.java TestSize.java TestSuiteImplicitTestsAccumulator.java TestTargetUtils.java TestTimeout.java TriState.java Type.java Types.java VendorFileGlobals.java VendorThreadContext.java VisibilityLicenseSpecifiedInputFile.java WorkspaceFactory.java WorkspaceFactoryHelper.java WorkspaceFileValue.java WorkspaceGlobals.java metrics producers semantics --- BUILD annot cmd eval lib spelling syntax |
| 9 | - | assistant | text | - | The directory structure is clear. Now let me locate the specific classes: BzlLoadFunction and the rule()/macro() builtin implementations. |
| 10 | - | assistant | tool_use | Bash | |
| 11 | 2026-06-12T17:38:02.401Z | user | tool_result | Bash | src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java --- src/main/java/com/google/devtools/build/lib/packages/MacroClass.java src/main/java/com/google/devtools/build/lib/packages/TargetRecorder.java src/main/java/com/google/devtools/build/lib/packages/RuleFactory.java |
| 12 | - | assistant | tool_use | Bash | |
| 13 | 2026-06-12T17:38:10.110Z | user | tool_result | Bash | src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java:202: name = "macro",
src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java:429: name = "rule",
---
1059: public static class Builder extends TargetDefinitionContext {
---
47:public final class StarlarkThread {
---
80:public final class PackageFactory {
---
108:public class BzlLoadFunction implements SkyFunction {
1694: private static final class BzlLoadFunctionException extends SkyFunctionException { |
| 14 | - | assistant | tool_use | Bash | |
| 15 | 2026-06-12T17:38:21.739Z | user | tool_result | Bash | 146:public class StarlarkRuleClassFunctions implements StarlarkRuleFunctionsApi {
362: public MacroFunctionApi macro(
493: public StarlarkRuleFunction rule(
1392: public static final class MacroFunction implements StarlarkExportable, MacroFunctionApi {
2105: return StarlarkRuleFunction.class;
---
59:public final class BazelStarlarkEnvironment {
52:public final class Module implements Resolver.Module {
286: * {@link #executeBuildFile} after this caller has fully loaded the package.
344: public void executeBuildFile(
377: executeBuildFileImpl(
390: private void executeBuildFileImpl(
416: Starlark.execFileProgram(buildFileProgram, module, thread);
69:public abstract class TargetDefinitionContext extends StarlarkThreadContext { |
| 16 | - | assistant | tool_use | Bash | |
| 17 | 2026-06-12T17:38:37.969Z | user | tool_result | Bash | 33:public interface StarlarkGlobals {
36:public class BuildGlobals {
31: * This class encapsulates knowledge of how to set up the Starlark environment for BUILD, WORKSPACE,
56: * BUILD files. This happens in {@link PackageFunction}.
61: // TODO(#11954): Eventually the BUILD and WORKSPACE bzl dialects should converge. Right now they
81: /** The {@code native} module fields for a BUILD-loaded bzl module, before builtins injection. */
84: * The top-level predeclared symbols (including {@code native}) for a BUILD-loaded bzl module,
88: /** The top-level predeclared symbols for BUILD files, before builtins injection and prelude. */
89: private final ImmutableMap<String, Object> uninjectedBuildEnv;
110: * provider) top-level symbols for BUILD files, prior to builtins injection. These symbols are
56:final class Eval {
1047: return execFileProgram(prog, module, thread);
1070: public static Object execFileProgram(Program prog, Module module, StarlarkThread thread)
1074: // A given Module may be passed to execFileProgram multiple times in sequence, |
| 18 | - | assistant | text | - | I have all the information needed. Writing the answer file now. |
| 19 | - | assistant | tool_use | Write | |
| 20 | 2026-06-12T17:39:31.689Z | user | tool_result | Write | File created successfully at: /workspace/answer.json (file state is current in your context — no need to Read it back) |
| 21 | - | assistant | text | - | I located and verified all five requested components in the bazelbuild/bazel source tree (at `/workspace/bazel--8.0.0`) and wrote the inventory to `/workspace/answer.json`. Summary of findings: **1. StarlarkThread and environment setup** - `net/starlark/java/eval/StarlarkThread.java` — `StarlarkThread` (line 47), the interpreter thread holding the call stack, semantics, and mutability. - `net/starlark/java/eval/Module.java` — `Module`, the per-file environment of predeclared bindings and globals. - `lib/packages/BazelStarlarkEnvironment.java` — `BazelStarlarkEnvironment`, which "encapsulates knowledge of how to set up the Starlark environment for BUILD, WORKSPACE, and bzl files" (its own doc comment), including builtins injection; supported by `StarlarkGlobals.java` and `BuildGlobals.java`. - `net/starlark/java/eval/Starlark.java` (`execFileProgram`) and `Eval.java` (the tree-walking interpreter) perform the actual evaluation. **2. PackageFactory** — `lib/packages/PackageFactory.java`, whose `executeBuildFile`/`executeBuildFileImpl` (lines 344/390) create the thread and call `Starlark.execFileProgram` on the compiled BUILD program (line 416). **3. BzlLoadFunction** — `lib/skyframe/BzlLoadFunction.java` (`class BzlLoadFunction implements SkyFunction`, line 108). This sits outside the two named directories but is the canonical .bzl loader, so I included it. **4. rule() and macro() builtins** — `lib/analysis/starlark/StarlarkRuleClassFunctions.java`: `macro(...)` at line 362, `rule(...)` at line 493, returning the nested `MacroFunction` and `StarlarkRuleFunction` callables. The `@StarlarkMethod(name = "rule")` / `name = "macro"` declarations are on the interface `lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java` (lines 429/202). `lib/packages/MacroClass.java` holds the symbolic-macro schema. **5. Package.Builder** — nested in `lib/packages/Package.java` at line 1059 (`public static class Builder extends TargetDefinitionContext`); `TargetDefinitionContext.java` is the StarlarkThreadContext base, and `RuleFactory.java` (`createAndAddRule`) is how rule calls land in the builder. The answer.json includes 15 files, the key symbol per file, and the evaluation chain (BzlLoadFunction → rule()/macro() definitions → PackageFactory.executeBuildFile → Starlark/Eval on a StarlarkThread → RuleFactory/MacroClass → Package.Builder). |
Bash @ -{
"command": "ls /workspace/ && ls /workspace/src/main/java/com/google/devtools/build/lib/packages/ 2>/dev/null | head -50",
"description": "List workspace and packages directory"
}{
"stdout": "bazel--8.0.0",
"stderr": "",
"interrupted": false,
"isImage": false,
"noOutputExpected": false
}Bash @ -{
"command": "ls /workspace/bazel--8.0.0/src/main/java/net/starlark/java/eval/ | head -60; echo ---; ls /workspace/bazel--8.0.0/src/main/java/com/google/devtools/build/lib/packages/ | head -100",
"description": "List starlark eval and packages directories"
}{
"stdout": "BUILD\nBuiltinFunction.java\nCallUtils.java\nCpuProfiler.java\nDebug.java\nDict.java\nEval.java\nEvalException.java\nEvalUtils.java\nFlagGuardedValue.java\nFormatParser.java\nGuardedValue.java\nHasBinary.java\nImmutableSingletonStarlarkList.java\nImmutableStarlarkList.java\nJNI.java\nLazyImmutableStarlarkList.java\nMethodDescriptor.java\nMethodLibrary.java\nModule.java\nMutability.java\nMutableStarlarkList.java\nNoneType.java\nParamDescriptor.java\nPrinter.java\nRangeList.java\nRegularImmutableStarlarkList.java\nRegularTuple.java\nSequence.java\nSingletonTuple.java\nStarlark.java\nStarlarkCallable.java\nStarlarkFloat.java\nStarlarkFunction.java\nStarlarkIndexable.java\nStarlarkInt.java\nStarlarkIterable.java\nStarlarkList.java\nStarlarkSemantics.java\nStarlarkThread.java\nStarlarkValue.java\nStringModule.java\nStructure.java\nSymbolGenerator.java\nTuple.java\ncpu_profiler_posix.cc\ncpu_profiler_unimpl.cc\n---\nAbstractAttributeMapper.java\nAdvertisedProviderSet.java\nAggregatingAttributeMapper.java\nAllowlistChecker.java\nAspect.java\nAspectClass.java\nAspectDefinition.java\nAspectDescriptor.java\nAspectParameters.java\nAspectsList.java\nAttribute.java\nAttributeFormatter.java\nAttributeMap.java\nAttributeTransitionData.java\nAttributeValueSource.java\nAutoloadSymbols.java\nBUILD\nBazelStarlarkEnvironment.java\nBuildFileContainsErrorsException.java\nBuildFileName.java\nBuildFileNotFoundException.java\nBuildGlobals.java\nBuildSetting.java\nBuildType.java\nBuilderFactoryForTesting.java\nBuiltinProvider.java\nBuiltinRestriction.java\nBuiltinsInternalModule.java\nBzlInitThreadContext.java\nBzlVisibility.java\nCachingPackageLocator.java\nCallStack.java\nConfigurationFragmentPolicy.java\nConfiguredAttributeMapper.java\nDefaultSetting.java\nDelegatingAttributeMapper.java\nDependencyFilter.java\nDotBazelFileSyntaxChecker.java\nEnumFilterConverter.java\nEnvironmentGroup.java\nEnvironmentLabels.java\nErrorDeterminingRepositoryException.java\nExecGroup.java\nFileTarget.java\nFunctionSplitTransitionAllowlist.java\nGlobCache.java\nGlobber.java\nGlobberUtils.java\nImplicitOutputsFunction.java\nInfo.java\nInputFile.java\nInvalidPackageNameException.java\nLabelConverter.java\nLabelPrinter.java\nLabelVisitationUtils.java\nLicense.java\nMacroClass.java\nMacroInstance.java\nMaterializingDefault.java\nNativeAspectClass.java\nNativeInfo.java\nNoSuchPackageException.java\nNoSuchTargetException.java\nNoSuchThingException.java\nNonSkyframeGlobber.java\nNonconfigurableAttributeMapper.java\nNonconfiguredAttributeMapper.java\nOutputFile.java\nPackage.java\nPackageArgs.java\nPackageCallable.java\nPackageCodecDependencies.java\nPackageFactory.java\nPackageGroup.java\nPackageGroupsRuleVisibility.java\nPackageLoadingListener.java\nPackageOverheadEstimator.java\nPackageSerializerInterface.java\nPackageSpecification.java\nPackageValidator.java\nPredicateWithMessage.java\nPrivateVisibilityInputFile.java\nProto.java\nProtoUtils.java\nProvider.java\nRawAttributeMapper.java\nRelativePackageNameResolver.java\nRepoFileGlobals.java\nRepoThreadContext.java\nRepositoryFetchException.java\nRequiredProviders.java\nRule.java\nRuleClass.java\nRuleClassData.java\nRuleClassId.java\nRuleClassProvider.java\nRuleClassUtils.java\nRuleCodec.java\nRuleDataCodec.java\nRuleFactory.java",
"stderr": "",
"interrupted": false,
"isImage": false,
"noOutputExpected": false
}Bash @ -{
"command": "ls /workspace/bazel--8.0.0/src/main/java/com/google/devtools/build/lib/packages/ | tail -40; echo ---; ls /workspace/bazel--8.0.0/src/main/java/net/starlark/java/",
"description": "List rest of packages dir and net/starlark/java"
}{
"stdout": "StarlarkAspect.java\nStarlarkAspectClass.java\nStarlarkCallbackHelper.java\nStarlarkDefinedAspect.java\nStarlarkExportable.java\nStarlarkGlobals.java\nStarlarkInfo.java\nStarlarkInfoNoSchema.java\nStarlarkInfoWithMessage.java\nStarlarkInfoWithSchema.java\nStarlarkNativeAspect.java\nStarlarkNativeModule.java\nStarlarkProvider.java\nStarlarkProviderIdentifier.java\nStarlarkProviderWrapper.java\nStructImpl.java\nStructProvider.java\nTarget.java\nTargetData.java\nTargetDefinitionContext.java\nTargetRecorder.java\nTargetSuggester.java\nTargetUtils.java\nTestSize.java\nTestSuiteImplicitTestsAccumulator.java\nTestTargetUtils.java\nTestTimeout.java\nTriState.java\nType.java\nTypes.java\nVendorFileGlobals.java\nVendorThreadContext.java\nVisibilityLicenseSpecifiedInputFile.java\nWorkspaceFactory.java\nWorkspaceFactoryHelper.java\nWorkspaceFileValue.java\nWorkspaceGlobals.java\nmetrics\nproducers\nsemantics\n---\nBUILD\nannot\ncmd\neval\nlib\nspelling\nsyntax",
"stderr": "",
"interrupted": false,
"isImage": false,
"noOutputExpected": false
}Bash @ -{
"command": "cd /workspace/bazel--8.0.0 && find src/main/java -name \"BzlLoadFunction.java\" -o -name \"StarlarkRuleClassFunctions.java\" -o -name \"StarlarkRuleFunctions*.java\" 2>/dev/null; echo ---; grep -rln '\"macro\"' src/main/java/com/google/devtools/build/lib/analysis/starlark/ src/main/java/com/google/devtools/build/lib/packages/ 2>/dev/null | head",
"description": "Find BzlLoadFunction and rule()/macro() builtins"
}{
"stdout": "src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java\nsrc/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java\nsrc/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java\n---\nsrc/main/java/com/google/devtools/build/lib/packages/MacroClass.java\nsrc/main/java/com/google/devtools/build/lib/packages/TargetRecorder.java\nsrc/main/java/com/google/devtools/build/lib/packages/RuleFactory.java",
"stderr": "",
"interrupted": false,
"isImage": false,
"noOutputExpected": false
}Bash @ -{
"command": "grep -n 'name = \"rule\"\\|name = \"macro\"' src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java | head; echo ---; grep -n \"class Builder\" src/main/java/com/google/devtools/build/lib/packages/Package.java | head -5; echo ---; grep -n \"public final class StarlarkThread\\|public class StarlarkThread\" src/main/java/net/starlark/java/eval/StarlarkThread.java; echo ---; grep -n \"class PackageFactory\" src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java | head -3; echo ---; grep -n \"class BzlLoadFunction\" src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java | head -3",
"description": "Verify key classes and builtin definitions"
}{
"stdout": "src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java:202: name = \"macro\",\nsrc/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java:429: name = \"rule\",\n---\n1059: public static class Builder extends TargetDefinitionContext {\n---\n47:public final class StarlarkThread {\n---\n80:public final class PackageFactory {\n---\n108:public class BzlLoadFunction implements SkyFunction {\n1694: private static final class BzlLoadFunctionException extends SkyFunctionException {",
"stderr": "",
"interrupted": false,
"isImage": false,
"noOutputExpected": false
}Bash @ -{
"command": "grep -n \"public StarlarkRuleFunction rule\\|public Object rule\\|public.*macro(\\|StarlarkRuleFunction\\b.*class\\|class MacroFunction\\|implements StarlarkRuleFunctionsApi\" src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java | head; echo ---; grep -n \"class BazelStarlarkEnvironment\" src/main/java/com/google/devtools/build/lib/packages/BazelStarlarkEnvironment.java; grep -n \"class Module\" src/main/java/net/starlark/java/eval/Module.java | head -2; grep -n \"execFileProgram\\|executeBuildFile\\|compileBuildFile\" src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java | head; grep -n \"class TargetDefinitionContext\" src/main/java/com/google/devtools/build/lib/packages/TargetDefinitionContext.java | head -2",
"description": "Verify rule/macro implementations and environment classes"
}{
"stdout": "146:public class StarlarkRuleClassFunctions implements StarlarkRuleFunctionsApi {\n362: public MacroFunctionApi macro(\n493: public StarlarkRuleFunction rule(\n1392: public static final class MacroFunction implements StarlarkExportable, MacroFunctionApi {\n2105: return StarlarkRuleFunction.class;\n---\n59:public final class BazelStarlarkEnvironment {\n52:public final class Module implements Resolver.Module {\n286: * {@link #executeBuildFile} after this caller has fully loaded the package.\n344: public void executeBuildFile(\n377: executeBuildFileImpl(\n390: private void executeBuildFileImpl(\n416: Starlark.execFileProgram(buildFileProgram, module, thread);\n69:public abstract class TargetDefinitionContext extends StarlarkThreadContext {",
"stderr": "",
"interrupted": false,
"isImage": false,
"noOutputExpected": false
}Bash @ -{
"command": "grep -n \"class StarlarkGlobals\\|interface StarlarkGlobals\" src/main/java/com/google/devtools/build/lib/packages/StarlarkGlobals.java; grep -n \"class BuildGlobals\" src/main/java/com/google/devtools/build/lib/packages/BuildGlobals.java; grep -n \"newBuildModule\\|uninjectedBuildEnv\\|BUILD\" src/main/java/com/google/devtools/build/lib/packages/BazelStarlarkEnvironment.java | head -8; grep -n \"class Eval\" src/main/java/net/starlark/java/eval/Eval.java | head -2; grep -n \"execFileProgram\" src/main/java/net/starlark/java/eval/Starlark.java | head -3",
"description": "Check environment setup helper classes"
}{
"stdout": "33:public interface StarlarkGlobals {\n36:public class BuildGlobals {\n31: * This class encapsulates knowledge of how to set up the Starlark environment for BUILD, WORKSPACE,\n56: * BUILD files. This happens in {@link PackageFunction}.\n61: // TODO(#11954): Eventually the BUILD and WORKSPACE bzl dialects should converge. Right now they\n81: /** The {@code native} module fields for a BUILD-loaded bzl module, before builtins injection. */\n84: * The top-level predeclared symbols (including {@code native}) for a BUILD-loaded bzl module,\n88: /** The top-level predeclared symbols for BUILD files, before builtins injection and prelude. */\n89: private final ImmutableMap<String, Object> uninjectedBuildEnv;\n110: * provider) top-level symbols for BUILD files, prior to builtins injection. These symbols are\n56:final class Eval {\n1047: return execFileProgram(prog, module, thread);\n1070: public static Object execFileProgram(Program prog, Module module, StarlarkThread thread)\n1074: // A given Module may be passed to execFileProgram multiple times in sequence,",
"stderr": "",
"interrupted": false,
"isImage": false,
"noOutputExpected": false
}Write @ -{
"file_path": "/workspace/answer.json",
"content": "{\n \"files\": [\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/net/starlark/java/eval/StarlarkThread.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/net/starlark/java/eval/Module.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/net/starlark/java/eval/Starlark.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/net/starlark/java/eval/Eval.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/BazelStarlarkEnvironment.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/StarlarkGlobals.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/BuildGlobals.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/MacroClass.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/Package.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/TargetDefinitionContext.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/RuleFactory.java\"}\n ],\n \"symbols\": [\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/net/starlark/java/eval/StarlarkThread.java\", \"symbol\": \"StarlarkThread\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/net/starlark/java/eval/Module.java\", \"symbol\": \"Module\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/net/starlark/java/eval/Starlark.java\", \"symbol\": \"Starlark.execFileProgram\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/net/starlark/java/eval/Eval.java\", \"symbol\": \"Eval\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/BazelStarlarkEnvironment.java\", \"symbol\": \"BazelStarlarkEnvironment\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/StarlarkGlobals.java\", \"symbol\": \"StarlarkGlobals\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/BuildGlobals.java\", \"symbol\": \"BuildGlobals\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java\", \"symbol\": \"PackageFactory\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java\", \"symbol\": \"BzlLoadFunction\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java\", \"symbol\": \"StarlarkRuleClassFunctions\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java\", \"symbol\": \"StarlarkRuleClassFunctions.StarlarkRuleFunction\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java\", \"symbol\": \"StarlarkRuleClassFunctions.MacroFunction\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/
...{
"type": "create",
"filePath": "/workspace/answer.json",
"content": "{\n \"files\": [\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/net/starlark/java/eval/StarlarkThread.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/net/starlark/java/eval/Module.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/net/starlark/java/eval/Starlark.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/net/starlark/java/eval/Eval.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/BazelStarlarkEnvironment.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/StarlarkGlobals.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/BuildGlobals.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/MacroClass.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/Package.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/TargetDefinitionContext.java\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/RuleFactory.java\"}\n ],\n \"symbols\": [\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/net/starlark/java/eval/StarlarkThread.java\", \"symbol\": \"StarlarkThread\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/net/starlark/java/eval/Module.java\", \"symbol\": \"Module\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/net/starlark/java/eval/Starlark.java\", \"symbol\": \"Starlark.execFileProgram\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/net/starlark/java/eval/Eval.java\", \"symbol\": \"Eval\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/BazelStarlarkEnvironment.java\", \"symbol\": \"BazelStarlarkEnvironment\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/StarlarkGlobals.java\", \"symbol\": \"StarlarkGlobals\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/BuildGlobals.java\", \"symbol\": \"BuildGlobals\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java\", \"symbol\": \"PackageFactory\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java\", \"symbol\": \"BzlLoadFunction\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java\", \"symbol\": \"StarlarkRuleClassFunctions\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java\", \"symbol\": \"StarlarkRuleClassFunctions.StarlarkRuleFunction\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java\", \"symbol\": \"StarlarkRuleClassFunctions.MacroFunction\"},\n {\"repo\": \"bazelbuild/bazel\", \"path\": \"src/ma
.../workspace/answer.json{
"files": [
{"repo": "bazelbuild/bazel", "path": "src/main/java/net/starlark/java/eval/StarlarkThread.java"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/net/starlark/java/eval/Module.java"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/net/starlark/java/eval/Starlark.java"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/net/starlark/java/eval/Eval.java"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/com/google/devtools/build/lib/packages/BazelStarlarkEnvironment.java"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/com/google/devtools/build/lib/packages/StarlarkGlobals.java"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/com/google/devtools/build/lib/packages/BuildGlobals.java"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/com/google/devtools/build/lib/packages/MacroClass.java"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/com/google/devtools/build/lib/packages/Package.java"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/com/google/devtools/build/lib/packages/TargetDefinitionContext.java"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/com/google/devtools/build/lib/packages/RuleFactory.java"}
],
"symbols": [
{"repo": "bazelbuild/bazel", "path": "src/main/java/net/starlark/java/eval/StarlarkThread.java", "symbol": "StarlarkThread"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/net/starlark/java/eval/Module.java", "symbol": "Module"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/net/starlark/java/eval/Starlark.java", "symbol": "Starlark.execFileProgram"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/net/starlark/java/eval/Eval.java", "symbol": "Eval"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/com/google/devtools/build/lib/packages/BazelStarlarkEnvironment.java", "symbol": "BazelStarlarkEnvironment"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/com/google/devtools/build/lib/packages/StarlarkGlobals.java", "symbol": "StarlarkGlobals"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/com/google/devtools/build/lib/packages/BuildGlobals.java", "symbol": "BuildGlobals"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java", "symbol": "PackageFactory"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java", "symbol": "BzlLoadFunction"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java", "symbol": "StarlarkRuleClassFunctions"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java", "symbol": "StarlarkRuleClassFunctions.StarlarkRuleFunction"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java", "symbol": "StarlarkRuleClassFunctions.MacroFunction"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java", "symbol": "StarlarkRuleFunctionsApi"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/com/google/devtools/build/lib/packages/MacroClass.java", "symbol": "MacroClass"},
{"repo": "bazelbuild/bazel", "path": "src/main/java/com/google/devtools/build/lib/packages/Package.java", "symbol"...1. $ ls /workspace/ && ls /workspace/src/main/java/com/google/devtools/build/lib/packages/ 2>/dev/null | head -50
2. $ ls /workspace/bazel--8.0.0/src/main/java/net/starlark/java/eval/ | head -60; echo ---; ls /workspace/bazel--8.0.0/src/main/java/com/google/devtools/build/lib/packages/ | head -100
3. $ ls /workspace/bazel--8.0.0/src/main/java/com/google/devtools/build/lib/packages/ | tail -40; echo ---; ls /workspace/bazel--8.0.0/src/main/java/net/starlark/java/
4. $ cd /workspace/bazel--8.0.0 && find src/main/java -name "BzlLoadFunction.java" -o -name "StarlarkRuleClassFunctions.java" -o -name "StarlarkRuleFunctions*.java" 2>/dev/null; echo ---; grep -rln '"macro"' src/main/java/com/google/devtools/build/lib/analysis/starlark/ src/main/java/com/google/devtools/build/lib/packages/ 2>/dev/null | head
5. $ grep -n 'name = "rule"\|name = "macro"' src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java | head; echo ---; grep -n "class Builder" src/main/java/com/google/devtools/build/lib/packages/Package.java | head -5; echo ---; grep -n "public final class StarlarkThread\|public class StarlarkThread" src/main/java/net/starlark/java/eval/StarlarkThread.java; echo ---; grep -n "class PackageFactory" src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java | head -3; echo ---; grep -n "class BzlLoadFunction" src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java | head -3
6. $ grep -n "public StarlarkRuleFunction rule\|public Object rule\|public.*macro(\|StarlarkRuleFunction\b.*class\|class MacroFunction\|implements StarlarkRuleFunctionsApi" src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java | head; echo ---; grep -n "class BazelStarlarkEnvironment" src/main/java/com/google/devtools/build/lib/packages/BazelStarlarkEnvironment.java; grep -n "class Module" src/main/java/net/starlark/java/eval/Module.java | head -2; grep -n "execFileProgram\|executeBuildFile\|compileBuildFile" src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java | head; grep -n "class TargetDefinitionContext" src/main/java/com/google/devtools/build/lib/packages/TargetDefinitionContext.java | head -2
7. $ grep -n "class StarlarkGlobals\|interface StarlarkGlobals" src/main/java/com/google/devtools/build/lib/packages/StarlarkGlobals.java; grep -n "class BuildGlobals" src/main/java/com/google/devtools/build/lib/packages/BuildGlobals.java; grep -n "newBuildModule\|uninjectedBuildEnv\|BUILD" src/main/java/com/google/devtools/build/lib/packages/BazelStarlarkEnvironment.java | head -8; grep -n "class Eval" src/main/java/net/starlark/java/eval/Eval.java | head -2; grep -n "execFileProgram" src/main/java/net/starlark/java/eval/Starlark.java | head -3