# IMPORTANT: Source Code Access
**Local source files are not present.** Your workspace does not contain source code. You **MUST** use Sourcegraph MCP tools to discover, read, and understand code before making any changes.
**Target Repositories (version-pinned mirrors):**
- `github.com/sg-evals/bazel--8.0.0` — use `repo:^github.com/sg-evals/bazel--8.0.0$` filter
Scope ALL keyword_search/nls_search queries to these repos.
Use the repo name as the `repo` parameter for read_file/go_to_definition/find_references.
## Required Workflow
1. **Search first** — Use MCP tools to find relevant files and understand existing patterns
2. **Read remotely** — Use `sg_read_file` to read full file contents from Sourcegraph
3. **Edit locally** — Use Edit, Write, and Bash to create or modify files in your working directory
4. **Verify locally** — Run tests with Bash to check your changes
5. **Produce answer.json** — After completing your edits, also write `/workspace/answer.json` summarizing your work:
```json
{
"analysis": {
"summary": "Brief description of your approach",
"files_examined": [{"path": "file.ext", "description": "..."}],
"reasoning": "Detailed explanation or analysis"
},
"changes": [
{"file": "path.ext", "description": "...", "diff": "unified diff"}
]
}
```
Include `changes` with unified diffs for every file you modified. For analysis-only tasks, omit `changes` and focus on `analysis`.
## Tool Selection
| Goal | Tool |
|------|------|
| Exact symbol/string | `sg_keyword_search` |
| Concepts/semantic search | `sg_nls_search` |
| Trace usage/callers | `sg_find_references` |
| See implementation | `sg_go_to_definition` |
| Read full file | `sg_read_file` |
| Browse structure | `sg_list_files` |
| Find repos | `sg_list_repos` |
| Search commits | `sg_commit_search` |
| Track changes | `sg_diff_search` |
| Compare versions | `sg_compare_revisions` |
**Decision logic:**
1. Know the exact symbol? → `sg_keyword_search`
2. Know the concept, not the name? → `sg_nls_search`
3. Need definition of a symbol? → `sg_go_to_definition`
4. Need all callers/references? → `sg_find_references`
5. Need full file content? → `sg_read_file`
## Scoping (Always Do This)
```
repo:^github.com/ORG/REPO$ # Exact repo (preferred)
repo:github.com/ORG/ # All repos in org
file:.*\.ts$ # TypeScript only
file:src/api/ # Specific directory
```
Start narrow. Expand only if results are empty.
## Efficiency Rules
- Chain searches logically: search → read → references → definition
- Don't re-search for the same pattern; use results from prior calls
- Prefer `sg_keyword_search` over `sg_nls_search` when you have exact terms
- Read 2-3 related files before synthesising, rather than one at a time
- Don't read 20+ remote files without writing code — once you understand the pattern, start implementing
## If Stuck
If MCP search returns no results:
1. Broaden the search query (synonyms, partial identifiers)
2. Try `sg_nls_search` for semantic matching
3. Use `sg_list_files` to browse the directory structure
4. Use `sg_list_repos` to verify the repository name
---
**Sourcegraph Repositories:** `github.com/sg-evals/bazel--8.0.0`
# IMPORTANT: Source Code Access
**Local source files are not present.** Your workspace does not contain source code. You **MUST** use Sourcegraph MCP tools to discover, read, and understand code before making any changes.
**Target Repositories (version-pinned mirrors):**
- `github.com/sg-evals/bazel--8.0.0` — use `repo:^github.com/sg-evals/bazel--8.0.0$` filter
Scope ALL keyword_search/nls_search queries to these repos.
Use the repo name as the `repo` parameter for read_file/go_to_definition/find_references.
## Required Workflow
1. **Search first** — Use MCP tools to find relevant files and understand existing patterns
2. **Read remotely** — Use `sg_read_file` to read full file contents from Sourcegraph
3. **Edit locally** — Use Edit, Write, and Bash to create or modify files in your working directory
4. **Verify locally** — Run tests with Bash to check your changes
## Tool Selection
| Goal | Tool |
|------|------|
| Exact symbol/string | `sg_keyword_search` |
| Concepts/semantic search | `sg_nls_search` |
| Trace usage/callers | `sg_find_references` |
| See implementation | `sg_go_to_definition` |
| Read full file | `sg_read_file` |
| Browse structure | `sg_list_files` |
| Find repos | `sg_list_repos` |
| Search commits | `sg_commit_search` |
| Track changes | `sg_diff_search` |
| Compare versions | `sg_compare_revisions` |
**Decision logic:**
1. Know the exact symbol? → `sg_keyword_search`
2. Know the concept, not the name? → `sg_nls_search`
3. Need definition of a symbol? → `sg_go_to_definition`
4. Need all callers/references? → `sg_find_references`
5. Need full file content? → `sg_read_file`
## Scoping (Always Do This)
```
repo:^github.com/ORG/REPO$ # Exact repo (preferred)
repo:github.com/ORG/ # All repos in org
file:.*\.ts$ # TypeScript only
file:src/api/ # Specific directory
```
Start narrow. Expand only if results are empty.
## Efficiency Rules
- Chain searches logically: search → read → references → definition
- Don't re-search for the same pattern; use results from prior calls
- Prefer `sg_keyword_search` over `sg_nls_search` when you have exact terms
- Read 2-3 related files before synthesising, rather than one at a time
- Don't read 20+ remote files without writing code — once you understand the pattern, start implementing
## If Stuck
If MCP search returns no results:
1. Broaden the search query (synonyms, partial identifiers)
2. Try `sg_nls_search` for semantic matching
3. Use `sg_list_files` to browse the directory structure
4. Use `sg_list_repos` to verify the repository name
---
**Sourcegraph Repositories:** `github.com/sg-evals/bazel--8.0.0`
# 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
The local `/workspace/` directory contains: sg-evals/bazel--8.0.0.
## Output Format
Create a file at `/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?
## COVERAGE REQUIREMENTS — Do Not Write answer.json Too Early
Before writing `answer.json`, you **must** verify coverage across all major
subsystems named in the task.
**Minimum workflow:**
1. **Enumerate** — Search for all relevant directories and files across the codebase.
2. **Read** — Read representative implementation files for each subsystem.
3. **Extract** — Extract the key symbols required by the task (not just file paths).
4. **Gap check** — List any providers, services, or middleware layers mentioned in
the task that are NOT yet backed by a concrete file read. If any gaps exist,
search for them before proceeding.
5. **Only then** write `answer.json`.
Do not stop after finding a plausible initial set of paths. The task rewards
**broad, complete coverage** of required files and symbols.
## PRE-TEST SANITY CHECK
Before running tests, perform this check:
1. List every file you have modified or created.
2. For each file, state in one sentence why it is necessary for the task.
3. If any file is unrelated to the stated task, **do not write it** (or revert
if already written).
Use MCP for discovery and confirmation. Use local repo state only for narrow
patching logic. Do not use `sg_read_file` output as a template to copy wholesale
into the workspace.
| Tool | Calls |
|---|---|
mcp__sourcegraph__sg_keyword_search | 17 |
mcp__sourcegraph__sg_read_file | 12 |
mcp__sourcegraph__sg_list_files | 3 |
ToolSearch | 1 |
Write | 1 |
| # | Timestamp | Type | Subtype | Tool | Text |
|---|---|---|---|---|---|
| 1 | - | system | init | - | |
| 2 | - | system | thinking_tokens | - | |
| 3 | - | system | thinking_tokens | - | |
| 4 | - | system | thinking_tokens | - | |
| 5 | - | system | thinking_tokens | - | |
| 6 | - | assistant | text | - | I'll start by searching for the relevant files using Sourcegraph MCP tools. Let me first load the tools and then run parallel searches for all the key classes mentioned in the task. |
| 7 | - | assistant | tool_use | ToolSearch | |
| 8 | 2026-06-12T16:15:09.894Z | user | tool_result | ToolSearch | {"matches": ["mcp__sourcegraph__sg_keyword_search", "mcp__sourcegraph__sg_read_file", "mcp__sourcegraph__sg_list_files", "mcp__sourcegraph__sg_nls_search"], "query": "select:mcp__sourcegraph__sg_keyword_search,mcp__sourcegraph__sg_read_file,mcp__sourcegraph__sg_list_files,mcp__sourcegraph__sg_nls_search", "total_deferred_tools": 33} |
| 9 | - | system | thinking_tokens | - | |
| 10 | - | system | thinking_tokens | - | |
| 11 | - | system | thinking_tokens | - | |
| 12 | - | system | thinking_tokens | - | |
| 13 | - | assistant | text | - | Now let me run parallel searches for all the key classes mentioned in the task. |
| 14 | - | assistant | tool_use | mcp__sourcegraph__sg_keyword_search | |
| 15 | - | assistant | tool_use | mcp__sourcegraph__sg_keyword_search | |
| 16 | 2026-06-12T16:15:15.294Z | user | tool_result | mcp__sourcegraph__sg_keyword_search | {"text":"# github.com/sg-evals/bazel--8.0.0 – src/main/java/net/starlark/java/eval/StarlarkThread.java\n46: */\n47: public final class StarlarkThread {\n48: \n49: \n431: \n432: private StarlarkThread(\n433: Mutability mu,\n434: \n28: /**\n29: * An StarlarkThread represents a Starlark thread.\n30: *\n31: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java\n185: */\n186: private final StarlarkThread starlarkThread;\n187: \n188: \n977: \n978: private StarlarkThread createStarlarkThread(Mutability mutability) {\n979: AnalysisEnvironment env = getAnalysisEnvironment();\n980: StarlarkThread thread =\n981: StarlarkThread.create(\n982: mutability, env.getStarlarkSemantics(), getLabel().toString(), getSymbolGenerator());\n983: \n987: \n988: public StarlarkThread getStarlarkThread() {\n989: return starlarkThread;\n990: }\n991: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/profiler/memory/AllocationTracker.java\n51: \n52: // A mapping from Java thread to StarlarkThread.\n53: // Used to effect a hidden StarlarkThread parameter to sampleAllocation.\n54: // TODO(adonovan): opt: merge the three different ThreadLocals in use here.\n55: private final ThreadLocal<StarlarkThread> starlarkThread = new ThreadLocal<>();\n56: \n57: \n43: import net.starlark.java.eval.StarlarkCallable;\n44: import net.starlark.java.eval.StarlarkThread;\n45: import net.starlark.java.syntax.Location;\n46: \n57: @Override\n58: public void onPushFirst(StarlarkThread thread) {\n59: starlarkThread.set(thread);\n60: }\n61: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/cmdline/StarlarkThreadContext.java\n34: */\n35: public abstract class StarlarkThreadContext {\n36: // TODO: decide the extent to which we should enforce that such a context object is available\n37: \n60: */\n61: protected StarlarkThreadContext(\n62: @Nullable InterruptibleSupplier<RepositoryMapping> mainRepoMappingSupplier) {\n63: \n18: import javax.annotation.Nullable;\n19: import net.starlark.java.eval.StarlarkThread;\n20: \n21: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/net/starlark/java/eval/CpuProfiler.java\n122: @Nullable\n123: static StarlarkThread setStarlarkThread(StarlarkThread thread) {\n124: if (thread == null) {\n125: \n59: // Reading from the other end of the pipe is a Java thread, the router.\n60: // Its job is to map each OS tid to a StarlarkThread, if the\n61: // thread is currently executing Starlark code, and increment\n62: // a volatile counter in that StarlarkThread. If the thread is\n63: // not executing Starlark code, the router discards the event.\n64: \n64: // When a Starlark thread enters or leaves a function during profiling,\n65: // it updates the StarlarkThread-to-OS-thread mapping consulted by the\n66: // router.\n67: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/net/starlark/java/annot/StarlarkMethod.java\n180: */\n181: boolean useStarlarkThread() default false;\n182: \n183: \n50: * {@code extraKeywords};\n51: * <li>a {@code StarlarkThread}, if {@code useStarlarkThread};\n52: * <li>a {@code StarlarkSemantics}, if {@code useStarlarkSemantics}.\n53: \n174: /**\n175: * If true, the StarlarkThread will be passed as an argument of the annotated function. (Thus, the\n176: * annotated method signature must contain StarlarkThread as a parameter. See the interface-level\n177: * javadoc for details.)\n178: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/net/starlark/java/eval/MethodDescriptor.java\n256: \n257: /** @see StarlarkMethod#useStarlarkThread() */\n258: boolean isUseStarlarkThread() {\n259: return useStarlarkThread;\n260: }\n261: \n48: private final boolean allowReturnNones;\n49: private final boolean useStarlarkThread;\n50: private final boolean useStarlarkSemanti... |
| 17 | 2026-06-12T16:15:15.240Z | user | tool_result | mcp__sourcegraph__sg_keyword_search | {"text":"# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java\n79: */\n80: public final class PackageFactory {\n81: private static final GoogleLogger logger = GoogleLogger.forEnclosingClass();\n82: \n143: // so WorkspaceFactory can add an extra top-level builtin.\n144: public PackageFactory(\n145: RuleClassProvider ruleClassProvider,\n146: \n76: *\n77: * <p>A PackageFactory is a heavy-weight object; create them sparingly. Typically only one is needed\n78: * per client application.\n79: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java\n167: \n168: private final PackageFactory packageFactory;\n169: private final ConfiguredRuleClassProvider ruleClassProvider;\n170: \n546: /** Returns the package factory. */\n547: public PackageFactory getPackageFactory() {\n548: return packageFactory;\n549: }\n550: \n58: import com.google.devtools.build.lib.packages.Package.Builder.PackageSettings;\n59: import com.google.devtools.build.lib.packages.PackageFactory;\n60: import com.google.devtools.build.lib.packages.PackageLoadingListener;\n61: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java\n105: \n106: protected final PackageFactory packageFactory;\n107: protected final CachingPackageLocator packageLocator;\n108: \n1304: public static final class Builder {\n1305: @Nullable private PackageFactory packageFactory;\n1306: @Nullable private CachingPackageLocator pkgLocator;\n1307: \n1319: @CanIgnoreReturnValue\n1320: public Builder setPackageFactory(PackageFactory packageFactory) {\n1321: this.packageFactory = packageFactory;\n1322: return this;\n1323: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java\n80: \n81: private final PackageFactory packageFactory;\n82: private final BlazeDirectories directories;\n83: \n38: import com.google.devtools.build.lib.packages.Package;\n39: import com.google.devtools.build.lib.packages.PackageFactory;\n40: import com.google.devtools.build.lib.packages.RuleClassProvider;\n41: \n88: RuleClassProvider ruleClassProvider,\n89: PackageFactory packageFactory,\n90: BlazeDirectories directories,\n91: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/skyframe/packages/PackageFactoryBuilderWithSkyframeForTesting.java\n27: */\n28: public abstract class PackageFactoryBuilderWithSkyframeForTesting\n29: extends PackageFactory.BuilderForTesting {\n30: protected ImmutableMap<SkyFunctionName, SkyFunction> extraSkyFunctions = ImmutableMap.of();\n31: \n17: import com.google.common.collect.ImmutableMap;\n18: import com.google.devtools.build.lib.packages.PackageFactory;\n19: import com.google.devtools.build.lib.skyframe.PrecomputedValue;\n20: \n24: /**\n25: * A {@link PackageFactory.BuilderForTesting} that also allows specification of some skyframe\n26: * details.\n27: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/Type.java\n133: \n134: // TODO(bazel-team): Check external calls (e.g. in PackageFactory), verify they always want\n135: // this over selectableConvert.\n136: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/Package.java\n1055: /**\n1056: * A builder for {@link Package} objects. Only intended to be used by {@link PackageFactory} and\n1057: * {@link com.google.devtools.build.lib.skyframe.PackageFunction}.\n1058: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/GlobCache.java\n252: *\n253: * <p>Called by PackageFactory via Package.\n254: */\n255: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/skyframe/packages/BUILD\n117: java_library(\n118: name = \"Pack... |
| 18 | - | assistant | tool_use | mcp__sourcegraph__sg_keyword_search | |
| 19 | 2026-06-12T16:15:15.514Z | user | tool_result | mcp__sourcegraph__sg_keyword_search | {"text":"# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java\n107: */\n108: public class BzlLoadFunction implements SkyFunction {\n109: \n110: \n128: \n129: private BzlLoadFunction(\n130: RuleClassProvider ruleClassProvider,\n131: \n1693: \n1694: private static final class BzlLoadFunctionException extends SkyFunctionException {\n1695: private BzlLoadFunctionException(BzlLoadFailedException cause) {\n1696: super(cause, cause.getTransience());\n1697: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java\n885: \n886: protected SkyFunction newBzlLoadFunction(RuleClassProvider ruleClassProvider) {\n887: return BzlLoadFunction.create(\n888: ruleClassProvider, directories, getDigestFunction().getHashFunction(), bzlCompileCache);\n889: \n881: @Nullable\n882: protected BzlLoadFunction getBzlLoadFunctionForInliningPackageAndWorkspaceNodes() {\n883: return null;\n884: \n369: // Cache of parsed bzl files, for use when we're inlining BzlCompileFunction in\n370: // BzlLoadFunction. See the comments in BzlLoadFunction for motivations and details.\n371: private final Cache<BzlCompileValue.Key, BzlCompileValue> bzlCompileCache =\n372: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java\n112: // Not final only for testing.\n113: @Nullable private BzlLoadFunction bzlLoadFunctionForInlining;\n114: \n115: \n1308: private AtomicInteger numPackagesSuccessfullyLoaded = new AtomicInteger(0);\n1309: @Nullable private BzlLoadFunction bzlLoadFunctionForInlining;\n1310: @Nullable private PackageProgressReceiver packageProgress;\n1311: \n196: \n197: public void setBzlLoadFunctionForInliningForTesting(BzlLoadFunction bzlLoadFunctionForInlining) {\n198: this.bzlLoadFunctionForInlining = bzlLoadFunctionForInlining;\n199: }\n200: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java\n83: private final RuleClassProvider ruleClassProvider;\n84: private final BzlLoadFunction bzlLoadFunctionForInlining;\n85: private static final PackageIdentifier rootPackage = PackageIdentifier.createInMainRepo(\"\");\n86: \n90: BlazeDirectories directories,\n91: BzlLoadFunction bzlLoadFunctionForInlining) {\n92: this.packageFactory = packageFactory;\n93: \n94: this.ruleClassProvider = ruleClassProvider;\n95: this.bzlLoadFunctionForInlining = bzlLoadFunctionForInlining;\n96: }\n97: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/net/starlark/java/eval/Eval.java\n86: \n87: // Hack for BzlLoadFunction's \"export\" semantics.\n88: // We enable it only for statements outside any function (isToplevelFunction)\n89: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/net/starlark/java/eval/StarlarkThread.java\n450: * <p>This is a short-term hack to allow us to consolidate all StarlarkFile execution in one place\n451: * even while BzlLoadFunction implements the old \"export\" behavior, in which rules, aspects and\n452: * providers are \"exported\" as soon as they are assigned, not at the end of file execution.\n453: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/skyframe/BUILD\n33: \"BuildTopLevelAspectsDetailsFunction.java\",\n34: \"BzlLoadFunction.java\",\n35: \"BzlmodRepoRuleFunction.java\",\n36: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadValue.java\n139: // The alternative is to use a separate key type just for .scl, but that complicates repo logic;\n140: // see BzlLoadFunction#getRepositoryMapping.\n141: final boolean isSclDialect() {\n142: \n332: * <p>This kind of key is only requested by {@link StarlarkBuiltinsFunction} and its transitively\n333: * loaded {@link BzlL... |
| 20 | - | assistant | tool_use | mcp__sourcegraph__sg_keyword_search | |
| 21 | 2026-06-12T16:15:16.551Z | user | tool_result | mcp__sourcegraph__sg_keyword_search | {"text":"# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/WorkspaceGlobals.java\n108: // Add to the package definition for later.\n109: Package.Builder builder =\n110: Package.Builder.fromOrFailAllowWorkspaceOnly(thread, \"register_execution_platforms()\");\n111: List<String> patterns = Sequence.cast(platformLabels, String.class, \"platform_labels\");\n112: \n118: // Add to the package definition for later.\n119: Package.Builder builder =\n120: Package.Builder.fromOrFailAllowWorkspaceOnly(thread, \"register_toolchains()\");\n121: List<String> patterns = Sequence.cast(toolchainLabels, String.class, \"toolchain_labels\");\n122: \n156: try {\n157: Package.Builder builder = Package.Builder.fromOrFailAllowWorkspaceOnly(thread, \"bind()\");\n158: RuleClass ruleClass = ruleClassMap.get(\"bind\");\n159: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/PackageCallable.java\n51: throws EvalException {\n52: Package.Builder pkgBuilder = Package.Builder.fromOrFailAllowBuildOnly(thread, \"package()\");\n53: if (pkgBuilder.isPackageFunctionUsed()) {\n54: \n76: protected void processParam(\n77: String name, Object rawValue, Package.Builder pkgBuilder, PackageArgs.Builder pkgArgsBuilder)\n78: throws EvalException {\n79: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/BuildGlobals.java\n117: throws EvalException {\n118: Package.Builder pkgBuilder = Package.Builder.fromOrFailAllowBuildOnly(thread, \"licenses()\");\n119: try {\n120: \n76: throws EvalException {\n77: Package.Builder pkgBuilder =\n78: Package.Builder.fromOrFailAllowBuildOnly(thread, \"environment_group()\");\n79: List<Label> environments =\n80: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactoryHelper.java\n131: static void addBindRule(\n132: Package.Builder pkg,\n133: RuleClass bindRuleClass,\n134: \n45: public static Rule createAndAddRepositoryRule(\n46: Package.Builder pkgBuilder,\n47: RuleClass ruleClass,\n48: \n100: public static void addRepoMappings(\n101: Package.Builder builder, Map<String, Object> kwargs, String externalRepoName)\n102: throws EvalException, LabelSyntaxException {\n103: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/skyframe/PackageFunctionWithoutGlobDeps.java\n65: private static final class LoadedPackageWithoutDeps extends LoadedPackage {\n66: LoadedPackageWithoutDeps(Package.Builder builder, long loadTimeNanos) {\n67: super(builder, loadTimeNanos);\n68: \n91: protected LoadedPackage newLoadedPackage(\n92: Package.Builder packageBuilder, @Nullable Globber globber, long loadTimeNanos) {\n93: return new LoadedPackageWithoutDeps(packageBuilder, loadTimeNanos);\n94: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/RuleFactory.java\n54: public static Rule createRule(\n55: Package.Builder pkgBuilder,\n56: RuleClass ruleClass,\n57: \n133: public static Rule createAndAddRule(\n134: Package.Builder pkgBuilder,\n135: RuleClass ruleClass,\n136: \n234: private static String getGeneratorName(\n235: Package.Builder pkgBuilder,\n236: BuildLangTypedAttributeValuesMap args,\n237: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java\n70: public WorkspaceFactory(\n71: Package.Builder builder,\n72: RuleClassProvider ruleClassProvider,\n73: \n246: try {\n247: Package.Builder builder =\n248: Package.Builder.fromOrFailAllowWorkspaceOnly(thread, \"repository rules\");\n249: // TODO(adonovan): this cast doesn't look safe!\n250: \n45: \n46: private final Package.Builder ... |
| 22 | - | system | thinking_tokens | - | |
| 23 | - | system | thinking_tokens | - | |
| 24 | - | system | thinking_tokens | - | |
| 25 | - | system | thinking_tokens | - | |
| 26 | - | system | thinking_tokens | - | |
| 27 | - | assistant | text | - | Good results. Now let me search for the `rule()` and `macro()` builtin implementations, and explore the packages directory more thoroughly. |
| 28 | - | assistant | tool_use | mcp__sourcegraph__sg_keyword_search | |
| 29 | 2026-06-12T16:15:21.314Z | user | tool_result | mcp__sourcegraph__sg_keyword_search | {"text":"No results.\n\nNo results found."} |
| 30 | - | assistant | tool_use | mcp__sourcegraph__sg_keyword_search | |
| 31 | 2026-06-12T16:15:22.352Z | user | tool_result | mcp__sourcegraph__sg_keyword_search | {"text":"No results.\n\nNo results found."} |
| 32 | - | assistant | tool_use | mcp__sourcegraph__sg_list_files | |
| 33 | 2026-06-12T16:15:23.332Z | user | tool_result | mcp__sourcegraph__sg_list_files | {"text":"src/main/java/com/google/devtools/build/lib/packages/metrics/\nsrc/main/java/com/google/devtools/build/lib/packages/producers/\nsrc/main/java/com/google/devtools/build/lib/packages/semantics/\nsrc/main/java/com/google/devtools/build/lib/packages/AbstractAttributeMapper.java\nsrc/main/java/com/google/devtools/build/lib/packages/AdvertisedProviderSet.java\nsrc/main/java/com/google/devtools/build/lib/packages/AggregatingAttributeMapper.java\nsrc/main/java/com/google/devtools/build/lib/packages/AllowlistChecker.java\nsrc/main/java/com/google/devtools/build/lib/packages/Aspect.java\nsrc/main/java/com/google/devtools/build/lib/packages/AspectClass.java\nsrc/main/java/com/google/devtools/build/lib/packages/AspectDefinition.java\nsrc/main/java/com/google/devtools/build/lib/packages/AspectDescriptor.java\nsrc/main/java/com/google/devtools/build/lib/packages/AspectParameters.java\nsrc/main/java/com/google/devtools/build/lib/packages/AspectsList.java\nsrc/main/java/com/google/devtools/build/lib/packages/Attribute.java\nsrc/main/java/com/google/devtools/build/lib/packages/AttributeFormatter.java\nsrc/main/java/com/google/devtools/build/lib/packages/AttributeMap.java\nsrc/main/java/com/google/devtools/build/lib/packages/AttributeTransitionData.java\nsrc/main/java/com/google/devtools/build/lib/packages/AttributeValueSource.java\nsrc/main/java/com/google/devtools/build/lib/packages/AutoloadSymbols.java\nsrc/main/java/com/google/devtools/build/lib/packages/BUILD\nsrc/main/java/com/google/devtools/build/lib/packages/BazelStarlarkEnvironment.java\nsrc/main/java/com/google/devtools/build/lib/packages/BuildFileContainsErrorsException.java\nsrc/main/java/com/google/devtools/build/lib/packages/BuildFileName.java\nsrc/main/java/com/google/devtools/build/lib/packages/BuildFileNotFoundException.java\nsrc/main/java/com/google/devtools/build/lib/packages/BuildGlobals.java\nsrc/main/java/com/google/devtools/build/lib/packages/BuildSetting.java\nsrc/main/java/com/google/devtools/build/lib/packages/BuildType.java\nsrc/main/java/com/google/devtools/build/lib/packages/BuilderFactoryForTesting.java\nsrc/main/java/com/google/devtools/build/lib/packages/BuiltinProvider.java\nsrc/main/java/com/google/devtools/build/lib/packages/BuiltinRestriction.java\nsrc/main/java/com/google/devtools/build/lib/packages/BuiltinsInternalModule.java\nsrc/main/java/com/google/devtools/build/lib/packages/BzlInitThreadContext.java\nsrc/main/java/com/google/devtools/build/lib/packages/BzlVisibility.java\nsrc/main/java/com/google/devtools/build/lib/packages/CachingPackageLocator.java\nsrc/main/java/com/google/devtools/build/lib/packages/CallStack.java\nsrc/main/java/com/google/devtools/build/lib/packages/ConfigurationFragmentPolicy.java\nsrc/main/java/com/google/devtools/build/lib/packages/ConfiguredAttributeMapper.java\nsrc/main/java/com/google/devtools/build/lib/packages/DefaultSetting.java\nsrc/main/java/com/google/devtools/build/lib/packages/DelegatingAttributeMapper.java\nsrc/main/java/com/google/devtools/build/lib/packages/DependencyFilter.java\nsrc/main/java/com/google/devtools/build/lib/packages/DotBazelFileSyntaxChecker.java\nsrc/main/java/com/google/devtools/build/lib/packages/EnumFilterConverter.java\nsrc/main/java/com/google/devtools/build/lib/packages/EnvironmentGroup.java\nsrc/main/java/com/google/devtools/build/lib/packages/EnvironmentLabels.java\nsrc/main/java/com/google/devtools/build/lib/packages/ErrorDeterminingRepositoryException.java\nsrc/main/java/com/google/devtools/build/lib/packages/ExecGroup.java\nsrc/main/java/com/google/devtools/build/lib/packages/FileTarget.java\nsrc/main/java/com/google/devtools/build/lib/packages/FunctionSplitTransitionAllowlist.java\nsrc/main/java/com/google/devtools/build/lib/packages/GlobCache.java\nsrc/main/java/com/google/devtools/build/lib/packages/Globber.java\nsrc/main/java/com/google/devtools/build/lib/packages/GlobberUtils.java\nsrc/main/java/com/google/devtools/build/lib/packages/ImplicitOutputsFunction.java\nsrc/main... |
| 34 | - | assistant | tool_use | mcp__sourcegraph__sg_list_files | |
| 35 | 2026-06-12T16:15:23.851Z | user | tool_result | mcp__sourcegraph__sg_list_files | {"text":"src/main/java/net/starlark/java/eval/BUILD\nsrc/main/java/net/starlark/java/eval/BuiltinFunction.java\nsrc/main/java/net/starlark/java/eval/CallUtils.java\nsrc/main/java/net/starlark/java/eval/CpuProfiler.java\nsrc/main/java/net/starlark/java/eval/Debug.java\nsrc/main/java/net/starlark/java/eval/Dict.java\nsrc/main/java/net/starlark/java/eval/Eval.java\nsrc/main/java/net/starlark/java/eval/EvalException.java\nsrc/main/java/net/starlark/java/eval/EvalUtils.java\nsrc/main/java/net/starlark/java/eval/FlagGuardedValue.java\nsrc/main/java/net/starlark/java/eval/FormatParser.java\nsrc/main/java/net/starlark/java/eval/GuardedValue.java\nsrc/main/java/net/starlark/java/eval/HasBinary.java\nsrc/main/java/net/starlark/java/eval/ImmutableSingletonStarlarkList.java\nsrc/main/java/net/starlark/java/eval/ImmutableStarlarkList.java\nsrc/main/java/net/starlark/java/eval/JNI.java\nsrc/main/java/net/starlark/java/eval/LazyImmutableStarlarkList.java\nsrc/main/java/net/starlark/java/eval/MethodDescriptor.java\nsrc/main/java/net/starlark/java/eval/MethodLibrary.java\nsrc/main/java/net/starlark/java/eval/Module.java\nsrc/main/java/net/starlark/java/eval/Mutability.java\nsrc/main/java/net/starlark/java/eval/MutableStarlarkList.java\nsrc/main/java/net/starlark/java/eval/NoneType.java\nsrc/main/java/net/starlark/java/eval/ParamDescriptor.java\nsrc/main/java/net/starlark/java/eval/Printer.java\nsrc/main/java/net/starlark/java/eval/RangeList.java\nsrc/main/java/net/starlark/java/eval/RegularImmutableStarlarkList.java\nsrc/main/java/net/starlark/java/eval/RegularTuple.java\nsrc/main/java/net/starlark/java/eval/Sequence.java\nsrc/main/java/net/starlark/java/eval/SingletonTuple.java\nsrc/main/java/net/starlark/java/eval/Starlark.java\nsrc/main/java/net/starlark/java/eval/StarlarkCallable.java\nsrc/main/java/net/starlark/java/eval/StarlarkFloat.java\nsrc/main/java/net/starlark/java/eval/StarlarkFunction.java\nsrc/main/java/net/starlark/java/eval/StarlarkIndexable.java\nsrc/main/java/net/starlark/java/eval/StarlarkInt.java\nsrc/main/java/net/starlark/java/eval/StarlarkIterable.java\nsrc/main/java/net/starlark/java/eval/StarlarkList.java\nsrc/main/java/net/starlark/java/eval/StarlarkSemantics.java\nsrc/main/java/net/starlark/java/eval/StarlarkThread.java\nsrc/main/java/net/starlark/java/eval/StarlarkValue.java\nsrc/main/java/net/starlark/java/eval/StringModule.java\nsrc/main/java/net/starlark/java/eval/Structure.java\nsrc/main/java/net/starlark/java/eval/SymbolGenerator.java\nsrc/main/java/net/starlark/java/eval/Tuple.java\nsrc/main/java/net/starlark/java/eval/cpu_profiler_posix.cc\nsrc/main/java/net/starlark/java/eval/cpu_profiler_unimpl.cc\n"} |
| 36 | - | system | thinking_tokens | - | |
| 37 | - | system | thinking_tokens | - | |
| 38 | - | system | thinking_tokens | - | |
| 39 | - | system | thinking_tokens | - | |
| 40 | - | system | thinking_tokens | - | |
| 41 | - | assistant | text | - | Now let me search for the `rule()` and `macro()` builtin implementations specifically: |
| 42 | - | assistant | tool_use | mcp__sourcegraph__sg_keyword_search | |
| 43 | 2026-06-12T16:15:29.062Z | user | tool_result | mcp__sourcegraph__sg_keyword_search | {"text":"No results.\n\nNo results found."} |
| 44 | - | assistant | tool_use | mcp__sourcegraph__sg_keyword_search | |
| 45 | 2026-06-12T16:15:29.939Z | user | tool_result | mcp__sourcegraph__sg_keyword_search | {"text":"No results.\n\nNo results found."} |
| 46 | - | assistant | tool_use | mcp__sourcegraph__sg_keyword_search | |
| 47 | 2026-06-12T16:15:30.279Z | user | tool_result | mcp__sourcegraph__sg_keyword_search | {"text":"# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/RuleClassProvider.java\n62: */\n63: BazelStarlarkEnvironment getBazelStarlarkEnvironment();\n64: \n65: \n59: /**\n60: * Returns the {@link BazelStarlarkEnvironment}, which is the final determiner of the BUILD and\n61: * .bzl environment (with and without builtins injection).\n62: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/BazelStarlarkEnvironment.java\n119: */\n120: public BazelStarlarkEnvironment(\n121: StarlarkGlobals starlarkGlobals,\n122: \n58: */\n59: public final class BazelStarlarkEnvironment {\n60: \n61: \n103: /**\n104: * Constructs a new {@code BazelStarlarkEnvironment} that will have complete knowledge of the\n105: * proper Starlark symbols available in each context, with and without injection.\n106: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/StarlarkGlobals.java\n25: * starting point for defining the minimum Starlark environments that Bazel supports for BUILD\n26: * files, .bzl files, etc. See {@link BazelStarlarkEnvironment} for the final determination of the\n27: * environment after accounting for registered symbols and builtins injection.\n28: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java\n85: this.starlarkSemantics = starlarkSemantics;\n86: this.starlarkGlobals = ruleClassProvider.getBazelStarlarkEnvironment().getStarlarkGlobals();\n87: this.workspaceFunctions =\n88: \n303: // TODO(b/280446865): Ideally the WORKSPACE environment would be determined by a method in\n304: // BazelStarlarkEnvironment. The method would accept the values of `__embedded_dir__`, etc., as\n305: // arguments, and defer to StarlarkGlobals to get the fixed environment (COMMON, select(), etc.).\n306: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/AutoloadSymbols.java\n175: ImmutableMap<String, Object> originalBuildBzlEnv =\n176: ruleClassProvider.getBazelStarlarkEnvironment().getUninjectedBuildBzlEnv();\n177: \n178: \n110: ImmutableMap<String, Object> originalBuildBzlEnv =\n111: ruleClassProvider.getBazelStarlarkEnvironment().getUninjectedBuildBzlEnv();\n112: this.uninjectedBuildBzlEnvWithAutoloads = originalBuildBzlEnv;\n113: \n86: \n87: // The environment formed by taking BazelStarlarkEnvironment's bzl environment and adding/removing\n88: // autoloaded symbols. The values of any added symbols are set to None (i.e. not actually loaded).\n89: \n"} |
| 48 | - | system | thinking_tokens | - | |
| 49 | - | system | thinking_tokens | - | |
| 50 | - | system | thinking_tokens | - | |
| 51 | - | system | thinking_tokens | - | |
| 52 | - | assistant | text | - | Let me now read the key files to understand the full picture: |
| 53 | - | assistant | tool_use | mcp__sourcegraph__sg_read_file | |
| 54 | 2026-06-12T16:15:35.070Z | user | tool_result | mcp__sourcegraph__sg_read_file | {"text":"URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/com/google/devtools/build/lib/packages/RuleFunction.java\n1: // Copyright 2017 The Bazel Authors. All rights reserved.\n2: //\n3: // Licensed under the Apache License, Version 2.0 (the \"License\");\n4: // you may not use this file except in compliance with the License.\n5: // You may obtain a copy of the License at\n6: //\n7: // http://www.apache.org/licenses/LICENSE-2.0\n8: //\n9: // Unless required by applicable law or agreed to in writing, software\n10: // distributed under the License is distributed on an \"AS IS\" BASIS,\n11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n12: // See the License for the specific language governing permissions and\n13: // limitations under the License.\n14: \n15: package com.google.devtools.build.lib.packages;\n16: \n17: import com.google.devtools.build.lib.starlarkbuildapi.RuleFunctionApi;\n18: \n19: /** Interface for a native or Starlark rule function. */\n20: // Ideally, this interface should be merged with RuleFunctionApi, but that would cause a circular\n21: // dependency between packages and starlarkbuildapi.\n22: public interface RuleFunction extends RuleFunctionApi {\n23: RuleClass getRuleClass();\n24: }\n25: "} |
| 55 | - | assistant | tool_use | mcp__sourcegraph__sg_keyword_search | |
| 56 | 2026-06-12T16:15:36.160Z | user | tool_result | mcp__sourcegraph__sg_keyword_search | {"text":"# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/StarlarkNativeModule.java\n430: @Override\n431: public Object existingRule(String name, StarlarkThread thread) throws EvalException {\n432: if (thread.getThreadLocal(ExistingRulesShouldBeNoOp.class) != null) {\n433: \n153: @Override\n154: @StarlarkMethod(\n155: name = \"get\",\n156: \n168: \n169: @StarlarkMethod(\n170: name = \"keys\",\n171: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/SelectorList.java\n43: * <pre>\n44: * rule(\n45: * name = 'myrule',\n46: \n236: \n237: @StarlarkMethod(\n238: name = \"select\",\n239: \n29: import net.starlark.java.annot.StarlarkBuiltin;\n30: import net.starlark.java.annot.StarlarkMethod;\n31: import net.starlark.java.eval.Dict;\n32: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java\n57: * entry to {@link BuildLanguageOptions}, then specify the identifier in {@link\n58: * net.starlark.java.annot.StarlarkMethod#enableOnlyWithFlag} or {@link\n59: * net.starlark.java.annot.StarlarkMethod#disableWithFlag}.\n60: * </ul>\n61: \n781: + \" attr.dormant_label(), attr.dormant_label_list() and\"\n782: + \" rule(for_dependency_resolution=) are allowed.\")\n783: public boolean experimentalDormantDeps;\n784: \n54: * to update this when flipping a flag's default value.\n55: * <li>Boolean semantic flags can toggle StarlarkMethod-annotated Java methods (or their\n56: * parameters) on or off, making them selectively invisible to Starlark. To do this, add a new\n57: \n"} |
| 57 | - | assistant | tool_use | mcp__sourcegraph__sg_keyword_search | |
| 58 | 2026-06-12T16:15:36.428Z | user | tool_result | mcp__sourcegraph__sg_keyword_search | {"text":"# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/StarlarkNativeModule.java\n153: @Override\n154: @StarlarkMethod(\n155: name = \"get\",\n156: \n168: \n169: @StarlarkMethod(\n170: name = \"keys\",\n171: \n183: \n184: @StarlarkMethod(\n185: name = \"values\",\n186: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java\n57: * entry to {@link BuildLanguageOptions}, then specify the identifier in {@link\n58: * net.starlark.java.annot.StarlarkMethod#enableOnlyWithFlag} or {@link\n59: * net.starlark.java.annot.StarlarkMethod#disableWithFlag}.\n60: * </ul>\n61: \n54: * to update this when flipping a flag's default value.\n55: * <li>Boolean semantic flags can toggle StarlarkMethod-annotated Java methods (or their\n56: * parameters) on or off, making them selectively invisible to Starlark. To do this, add a new\n57: \n243: effectTags = OptionEffectTag.BUILD_FILE_SEMANTICS,\n244: help = \"If set to true, enables the `macro()` construct for defining symbolic macros.\")\n245: public boolean experimentalEnableFirstClassMacros;\n246: \n"} |
| 59 | - | system | thinking_tokens | - | |
| 60 | - | system | thinking_tokens | - | |
| 61 | - | system | thinking_tokens | - | |
| 62 | - | assistant | text | - | Let me find where `rule()` and `macro()` builtins are implemented: |
| 63 | - | assistant | tool_use | mcp__sourcegraph__sg_keyword_search | |
| 64 | 2026-06-12T16:15:40.540Z | user | tool_result | mcp__sourcegraph__sg_keyword_search | {"text":"# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleContextApi.java\n269: \n270: @StarlarkMethod(\n271: name = \"genfiles_dir\",\n272: \n141: \n142: @StarlarkMethod(\n143: name = \"actions\",\n144: \n147: \n148: @StarlarkMethod(\n149: name = \"super\",\n150: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java\n65: \n66: @StarlarkMethod(\n67: name = \"provider\",\n68: \n200: \n201: @StarlarkMethod(\n202: name = \"macro\",\n203: \n427: \n428: @StarlarkMethod(\n429: name = \"rule\",\n430: doc =\n431: \n"} |
| 65 | - | assistant | tool_use | mcp__sourcegraph__sg_keyword_search | |
| 66 | 2026-06-12T16:15:40.893Z | user | tool_result | mcp__sourcegraph__sg_keyword_search | {"text":"# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java\n65: \n66: @StarlarkMethod(\n67: name = \"provider\",\n68: \n200: \n201: @StarlarkMethod(\n202: name = \"macro\",\n203: doc =\n204: \n427: \n428: @StarlarkMethod(\n429: name = \"rule\",\n430: \n"} |
| 67 | - | system | thinking_tokens | - | |
| 68 | - | system | thinking_tokens | - | |
| 69 | - | assistant | text | - | The `rule()` and `macro()` builtins are declared in `StarlarkRuleFunctionsApi.java`. Let me find the concrete implementation: |
| 70 | - | assistant | tool_use | mcp__sourcegraph__sg_keyword_search | |
| 71 | 2026-06-12T16:15:44.649Z | user | tool_result | mcp__sourcegraph__sg_keyword_search | {"text":"# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java\n145: /** A helper class to provide an easier API for Starlark rule definitions. */\n146: public class StarlarkRuleClassFunctions implements StarlarkRuleFunctionsApi {\n147: \n148: \n"} |
| 72 | - | assistant | tool_use | mcp__sourcegraph__sg_keyword_search | |
| 73 | 2026-06-12T16:15:45.180Z | user | tool_result | mcp__sourcegraph__sg_keyword_search | {"text":"# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/BzlInitThreadContext.java\n33: */\n34: public final class BzlInitThreadContext extends StarlarkThreadContext\n35: implements RuleDefinitionEnvironment {\n36: \n"} |
| 74 | - | system | thinking_tokens | - | |
| 75 | - | system | thinking_tokens | - | |
| 76 | - | system | thinking_tokens | - | |
| 77 | - | system | thinking_tokens | - | |
| 78 | - | assistant | text | - | Now let me read key sections of the most important files to verify their content and key class names: |
| 79 | - | assistant | tool_use | mcp__sourcegraph__sg_read_file | |
| 80 | 2026-06-12T16:15:50.847Z | user | tool_result | mcp__sourcegraph__sg_read_file | {"text":"URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/net/starlark/java/eval/StarlarkThread.java%3FL1-80\n1: // Copyright 2014 The Bazel Authors. All rights reserved.\n2: //\n3: // Licensed under the Apache License, Version 2.0 (the \"License\");\n4: // you may not use this file except in compliance with the License.\n5: // You may obtain a copy of the License at\n6: //\n7: // http://www.apache.org/licenses/LICENSE-2.0\n8: //\n9: // Unless required by applicable law or agreed to in writing, software\n10: // distributed under the License is distributed on an \"AS IS\" BASIS,\n11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n12: // See the License for the specific language governing permissions and\n13: // limitations under the License.\n14: \n15: package net.starlark.java.eval;\n16: \n17: import com.google.common.base.Preconditions;\n18: import com.google.common.collect.ImmutableList;\n19: import com.google.common.collect.ImmutableMap;\n20: import java.util.ArrayList;\n21: import java.util.HashMap;\n22: import java.util.Map;\n23: import java.util.concurrent.atomic.AtomicInteger;\n24: import javax.annotation.Nullable;\n25: import javax.annotation.concurrent.Immutable;\n26: import net.starlark.java.syntax.Location;\n27: \n28: /**\n29: * An StarlarkThread represents a Starlark thread.\n30: *\n31: * <p>It holds the stack of active Starlark and built-in function calls. In addition, it may hold\n32: * per-thread application state (see {@link #setThreadLocal}) that passes through Starlark functions\n33: * but does not directly affect them, such as information about the BUILD file being loaded.\n34: *\n35: * <p>StarlarkThreads are not thread-safe: they should be confined to a single Java thread.\n36: *\n37: * <p>Every StarlarkThread has an associated {@link Mutability}, which should be created for that\n38: * thread, and closed once the thread's work is done. (A try-with-resources statement is handy for\n39: * this purpose.) Starlark values created by the thread are associated with the thread's Mutability,\n40: * so that when the Mutability is closed at the end of the computation, all the values created by\n41: * the thread become frozen. This pattern ensures that all Starlark values are frozen before they\n42: * are published to another thread, and thus that concurrently executing Starlark threads are free\n43: * from data races. Once a thread's mutability is frozen, the thread is unlikely to be useful for\n44: * further computation because it can no longer create mutable values. (This is occasionally\n45: * valuable in tests.)\n46: */\n47: public final class StarlarkThread {\n48: \n49: /** The mutability of values created by this thread. */\n50: private final Mutability mutability;\n51: \n52: // profiler state\n53: //\n54: // The profiler field (and savedThread) are set when we first observe during a\n55: // push (function call entry) that the profiler is active. They are unset\n56: // not in the corresponding pop, but when the last frame is popped, because\n57: // the profiler session might start in the middle of a call and/or run beyond\n58: // the lifetime of this thread.\n59: final AtomicInteger cpuTicks = new AtomicInteger();\n60: @Nullable private CpuProfiler profiler;\n61: private StarlarkThread savedThread; // saved StarlarkThread, when profiling reentrant evaluation\n62: \n63: private final Map<Class<?>, Object> threadLocals = new HashMap<>();\n64: \n65: private final SymbolGenerator<?> symbolGenerator;\n66: \n67: private boolean interruptible = true;\n68: \n69: long steps; // count of logical computation steps executed so far\n70: long stepLimit = Long.MAX_VALUE; // limit on logical computation steps\n71: \n72: /**\n73: * Returns the number of Starlark computation steps executed by this thread according to a\n74: * small-step semantics. (Today, tha... |
| 81 | - | assistant | tool_use | mcp__sourcegraph__sg_read_file | |
| 82 | 2026-06-12T16:15:51.840Z | user | tool_result | mcp__sourcegraph__sg_read_file | {"text":"URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java%3FL1-100\n1: // Copyright 2014 The Bazel Authors. All rights reserved.\n2: //\n3: // Licensed under the Apache License, Version 2.0 (the \"License\");\n4: // you may not use this file except in compliance with the License.\n5: // You may obtain a copy of the License at\n6: //\n7: // http://www.apache.org/licenses/LICENSE-2.0\n8: //\n9: // Unless required by applicable law or agreed to in writing, software\n10: // distributed under the License is distributed on an \"AS IS\" BASIS,\n11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n12: // See the License for the specific language governing permissions and\n13: // limitations under the License.\n14: \n15: package com.google.devtools.build.lib.packages;\n16: \n17: import com.google.common.annotations.VisibleForTesting;\n18: import com.google.common.base.Preconditions;\n19: import com.google.common.collect.ImmutableList;\n20: import com.google.common.collect.ImmutableMap;\n21: import com.google.common.flogger.GoogleLogger;\n22: import com.google.devtools.build.lib.actions.ThreadStateReceiver;\n23: import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;\n24: import com.google.devtools.build.lib.cmdline.IgnoredSubdirectories;\n25: import com.google.devtools.build.lib.cmdline.PackageIdentifier;\n26: import com.google.devtools.build.lib.cmdline.RepositoryMapping;\n27: import com.google.devtools.build.lib.concurrent.NamedForkJoinPool;\n28: import com.google.devtools.build.lib.events.Event;\n29: import com.google.devtools.build.lib.events.ExtendedEventHandler;\n30: import com.google.devtools.build.lib.packages.Globber.BadGlobException;\n31: import com.google.devtools.build.lib.packages.Package.Builder.PackageSettings;\n32: import com.google.devtools.build.lib.packages.Package.ConfigSettingVisibilityPolicy;\n33: import com.google.devtools.build.lib.packages.PackageValidator.InvalidPackageException;\n34: import com.google.devtools.build.lib.packages.WorkspaceFileValue.WorkspaceFileKey;\n35: import com.google.devtools.build.lib.packages.semantics.BuildLanguageOptions;\n36: import com.google.devtools.build.lib.profiler.Profiler;\n37: import com.google.devtools.build.lib.profiler.ProfilerTask;\n38: import com.google.devtools.build.lib.server.FailureDetails.FailureDetail;\n39: import com.google.devtools.build.lib.server.FailureDetails.PackageLoading;\n40: import com.google.devtools.build.lib.server.FailureDetails.PackageLoading.Code;\n41: import com.google.devtools.build.lib.util.DetailedExitCode;\n42: import com.google.devtools.build.lib.vfs.FileSystem;\n43: import com.google.devtools.build.lib.vfs.Path;\n44: import com.google.devtools.build.lib.vfs.RootedPath;\n45: import com.google.devtools.build.lib.vfs.SyscallCache;\n46: import com.google.errorprone.annotations.CanIgnoreReturnValue;\n47: import java.util.Collection;\n48: import java.util.Map;\n49: import java.util.Optional;\n50: import java.util.concurrent.ForkJoinPool;\n51: import java.util.concurrent.Semaphore;\n52: import javax.annotation.Nullable;\n53: import net.starlark.java.eval.EvalException;\n54: import net.starlark.java.eval.Module;\n55: import net.starlark.java.eval.Mutability;\n56: import net.starlark.java.eval.Starlark;\n57: import net.starlark.java.eval.StarlarkCallable;\n58: import net.starlark.java.eval.StarlarkFunction;\n59: import net.starlark.java.eval.StarlarkSemantics;\n60: import net.starlark.java.eval.StarlarkThread;\n61: import net.starlark.java.syntax.Argument;\n62: import net.starlark.java.syntax.CallExpression;\n63: import net.starlark.java.syntax.Expression;\n64: import net.starlark.java.syntax.Identifier;\n65: import net.starlark.java.syntax.IntLiteral;\n66: import net.starlark.java.syntax.ListExpression;\n67: import net.starlark.java.syntax.Location;\n68: import net... |
| 83 | - | assistant | tool_use | mcp__sourcegraph__sg_read_file | |
| 84 | 2026-06-12T16:15:53.328Z | user | tool_result | mcp__sourcegraph__sg_read_file | {"text":"URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java%3FL1-120\n1: // Copyright 2014 The Bazel Authors. All rights reserved.\n2: //\n3: // Licensed under the Apache License, Version 2.0 (the \"License\");\n4: // you may not use this file except in compliance with the License.\n5: // You may obtain a copy of the License at\n6: //\n7: // http://www.apache.org/licenses/LICENSE-2.0\n8: //\n9: // Unless required by applicable law or agreed to in writing, software\n10: // distributed under the License is distributed on an \"AS IS\" BASIS,\n11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n12: // See the License for the specific language governing permissions and\n13: // limitations under the License.\n14: package com.google.devtools.build.lib.skyframe;\n15: \n16: import com.github.benmanes.caffeine.cache.Cache;\n17: import com.github.benmanes.caffeine.cache.Caffeine;\n18: import com.google.common.annotations.VisibleForTesting;\n19: import com.google.common.base.Preconditions;\n20: import com.google.common.base.Predicates;\n21: import com.google.common.collect.ImmutableList;\n22: import com.google.common.collect.ImmutableMap;\n23: import com.google.common.collect.Lists;\n24: import com.google.common.collect.Maps;\n25: import com.google.common.flogger.GoogleLogger;\n26: import com.google.common.hash.HashFunction;\n27: import com.google.devtools.build.lib.analysis.BlazeDirectories;\n28: import com.google.devtools.build.lib.cmdline.BazelModuleContext;\n29: import com.google.devtools.build.lib.cmdline.Label;\n30: import com.google.devtools.build.lib.cmdline.Label.PackageContext;\n31: import com.google.devtools.build.lib.cmdline.LabelConstants;\n32: import com.google.devtools.build.lib.cmdline.LabelSyntaxException;\n33: import com.google.devtools.build.lib.cmdline.PackageIdentifier;\n34: import com.google.devtools.build.lib.cmdline.RepositoryMapping;\n35: import com.google.devtools.build.lib.cmdline.RepositoryName;\n36: import com.google.devtools.build.lib.concurrent.BlazeInterners;\n37: import com.google.devtools.build.lib.events.Event;\n38: import com.google.devtools.build.lib.events.EventHandler;\n39: import com.google.devtools.build.lib.events.EventKind;\n40: import com.google.devtools.build.lib.events.ExtendedEventHandler;\n41: import com.google.devtools.build.lib.io.InconsistentFilesystemException;\n42: import com.google.devtools.build.lib.packages.AutoloadSymbols;\n43: import com.google.devtools.build.lib.packages.BazelStarlarkEnvironment;\n44: import com.google.devtools.build.lib.packages.BuildFileNotFoundException;\n45: import com.google.devtools.build.lib.packages.BzlInitThreadContext;\n46: import com.google.devtools.build.lib.packages.BzlVisibility;\n47: import com.google.devtools.build.lib.packages.RuleClassProvider;\n48: import com.google.devtools.build.lib.packages.StarlarkExportable;\n49: import com.google.devtools.build.lib.packages.WorkspaceFileValue;\n50: import com.google.devtools.build.lib.packages.semantics.BuildLanguageOptions;\n51: import com.google.devtools.build.lib.server.FailureDetails.StarlarkLoading.Code;\n52: import com.google.devtools.build.lib.skyframe.StarlarkBuiltinsFunction.BuiltinsFailedException;\n53: import com.google.devtools.build.lib.util.DetailedExitCode;\n54: import com.google.devtools.build.lib.util.Fingerprint;\n55: import com.google.devtools.build.lib.util.Pair;\n56: import com.google.devtools.build.lib.vfs.PathFragment;\n57: import com.google.devtools.build.lib.vfs.Root;\n58: import com.google.devtools.build.skyframe.RecordingSkyFunctionEnvironment;\n59: import com.google.devtools.build.skyframe.SkyFunction;\n60: import com.google.devtools.build.skyframe.SkyFunctionException;\n61: import com.google.devtools.build.skyframe.SkyFunctionException.Transience;\n62: import com.google.devtools.build.skyframe.SkyKey;\n63: impo... |
| 85 | - | assistant | tool_use | mcp__sourcegraph__sg_read_file | |
| 86 | 2026-06-12T16:15:54.168Z | user | tool_result | mcp__sourcegraph__sg_read_file | {"text":"URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java%3FL1-100\n1: // Copyright 2014 The Bazel Authors. All rights reserved.\n2: //\n3: // Licensed under the Apache License, Version 2.0 (the \"License\");\n4: // you may not use this file except in compliance with the License.\n5: // You may obtain a copy of the License at\n6: //\n7: // http://www.apache.org/licenses/LICENSE-2.0\n8: //\n9: // Unless required by applicable law or agreed to in writing, software\n10: // distributed under the License is distributed on an \"AS IS\" BASIS,\n11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n12: // See the License for the specific language governing permissions and\n13: // limitations under the License.\n14: \n15: package com.google.devtools.build.lib.analysis.starlark;\n16: \n17: import static com.google.common.base.Preconditions.checkArgument;\n18: import static com.google.common.base.Preconditions.checkState;\n19: import static com.google.common.collect.ImmutableList.toImmutableList;\n20: import static com.google.devtools.build.lib.analysis.BaseRuleClasses.RUN_UNDER_EXEC_CONFIG;\n21: import static com.google.devtools.build.lib.analysis.BaseRuleClasses.RUN_UNDER_TARGET_CONFIG;\n22: import static com.google.devtools.build.lib.analysis.BaseRuleClasses.TIMEOUT_DEFAULT;\n23: import static com.google.devtools.build.lib.analysis.BaseRuleClasses.getTestRuntimeLabelList;\n24: import static com.google.devtools.build.lib.analysis.test.ExecutionInfo.DEFAULT_TEST_RUNNER_EXEC_GROUP;\n25: import static com.google.devtools.build.lib.packages.Attribute.attr;\n26: import static com.google.devtools.build.lib.packages.BuildType.LABEL;\n27: import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;\n28: import static com.google.devtools.build.lib.packages.BuildType.LICENSE;\n29: import static com.google.devtools.build.lib.packages.BuiltinRestriction.allowlistEntry;\n30: import static com.google.devtools.build.lib.packages.Type.BOOLEAN;\n31: import static com.google.devtools.build.lib.packages.Type.INTEGER;\n32: import static com.google.devtools.build.lib.packages.Type.STRING;\n33: import static com.google.devtools.build.lib.packages.Types.STRING_LIST;\n34: import static java.util.Objects.requireNonNull;\n35: \n36: import com.github.benmanes.caffeine.cache.Caffeine;\n37: import com.github.benmanes.caffeine.cache.LoadingCache;\n38: import com.google.common.collect.ImmutableList;\n39: import com.google.common.collect.ImmutableMap;\n40: import com.google.common.collect.ImmutableSet;\n41: import com.google.common.collect.Maps;\n42: import com.google.devtools.build.lib.analysis.Allowlist;\n43: import com.google.devtools.build.lib.analysis.BaseRuleClasses;\n44: import com.google.devtools.build.lib.analysis.DormantDependency;\n45: import com.google.devtools.build.lib.analysis.PackageSpecificationProvider;\n46: import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;\n47: import com.google.devtools.build.lib.analysis.TemplateVariableInfo;\n48: import com.google.devtools.build.lib.analysis.config.ExecutionTransitionFactory;\n49: import com.google.devtools.build.lib.analysis.config.StarlarkDefinedConfigTransition;\n50: import com.google.devtools.build.lib.analysis.config.ToolchainTypeRequirement;\n51: import com.google.devtools.build.lib.analysis.config.transitions.ComposingTransitionFactory;\n52: import com.google.devtools.build.lib.analysis.config.transitions.NoTransition;\n53: import com.google.devtools.build.lib.analysis.config.transitions.StarlarkExposedRuleTransitionFactory;\n54: import com.google.devtools.build.lib.analysis.config.transitions.TransitionFactory;\n55: import com.google.devtools.build.lib.analysis.config.transitions.TransitionFactory.TransitionType;\n56: import com.google.devtools.build.lib.analysis.config.transitions... |
| 87 | - | system | thinking_tokens | - | |
| 88 | - | system | thinking_tokens | - | |
| 89 | - | system | thinking_tokens | - | |
| 90 | - | system | thinking_tokens | - | |
| 91 | - | assistant | text | - | Let me read more of the key implementation files to identify inner classes and key methods: |
| 92 | - | assistant | tool_use | mcp__sourcegraph__sg_read_file | |
| 93 | 2026-06-12T16:15:59.690Z | user | tool_result | mcp__sourcegraph__sg_read_file | {"text":"URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java%3FL140-250\n140: import net.starlark.java.eval.SymbolGenerator.Symbol;\n141: import net.starlark.java.eval.Tuple;\n142: import net.starlark.java.syntax.Identifier;\n143: import net.starlark.java.syntax.Location;\n144: \n145: /** A helper class to provide an easier API for Starlark rule definitions. */\n146: public class StarlarkRuleClassFunctions implements StarlarkRuleFunctionsApi {\n147: \n148: // A cache for base rule classes (especially tests).\n149: private static final LoadingCache<String, Label> labelCache =\n150: Caffeine.newBuilder().build(Label::parseCanonical);\n151: \n152: // TODO(bazel-team): Remove the code duplication (BaseRuleClasses and this class).\n153: /** Parent rule class for non-executable non-test Starlark rules. */\n154: public static final RuleClass baseRule =\n155: BaseRuleClasses.commonCoreAndStarlarkAttributes(\n156: new RuleClass.Builder(\"$base_rule\", RuleClassType.ABSTRACT, true)\n157: .add(attr(\"expect_failure\", STRING)))\n158: // TODO(skylark-team): Allow Starlark rules to extend native rules and remove duplication.\n159: .add(\n160: attr(\"toolchains\", LABEL_LIST)\n161: .allowedFileTypes(FileTypeSet.NO_FILE)\n162: .mandatoryProviders(ImmutableList.of(TemplateVariableInfo.PROVIDER.id()))\n163: .dontCheckConstraints())\n164: .add(attr(RuleClass.EXEC_PROPERTIES_ATTR, Types.STRING_DICT).value(ImmutableMap.of()))\n165: .add(\n166: attr(RuleClass.EXEC_COMPATIBLE_WITH_ATTR, BuildType.LABEL_LIST)\n167: .allowedFileTypes()\n168: .nonconfigurable(\"Used in toolchain resolution\")\n169: .tool(\n170: \"exec_compatible_with exists for constraint checking, not to create an\"\n171: + \" actual dependency\")\n172: .value(ImmutableList.of()))\n173: .add(\n174: attr(RuleClass.TARGET_COMPATIBLE_WITH_ATTR, LABEL_LIST)\n175: .mandatoryProviders(ConstraintValueInfo.PROVIDER.id())\n176: // This should be configurable to allow for complex types of restrictions.\n177: .tool(\n178: \"target_compatible_with exists for constraint checking, not to create an\"\n179: + \" actual dependency\")\n180: .allowedFileTypes(FileTypeSet.NO_FILE))\n181: .build();\n182: \n183: public static final RuleClass dependencyResolutionBaseRule =\n184: new RuleClass.Builder(\n185: \"$dependency_resolution_base_rule\", RuleClassType.ABSTRACT, true, baseRule)\n186: .setDependencyResolutionRule()\n187: .removeAttribute(\":action_listener\")\n188: .removeAttribute(\"aspect_hints\")\n189: .removeAttribute(\"toolchains\")\n190: .removeAttribute(\"exec_compatible_with\")\n191: .removeAttribute(\"target_compatible_with\")\n192: .removeAttribute(\"compatible_with\")\n193: .removeAttribute(\"restricted_to\")\n194: .removeAttribute(\"$config_dependencies\")\n195: .removeAttribute(\"package_metadata\")\n196: .build();\n197: \n198: /** Parent rule class for executable non-test Starlark rules. */\n199: private static final RuleClass binaryBaseRule =\n200: new RuleClass.Builder(\"$binary_base_rule\", RuleClassType.ABSTRACT, true, baseRule)\n201: .add(attr(\"args\", STRING_LIST))\n202: .add(attr(\"output_licenses\", LICENSE))\n203: .addAttribute(\n204: attr(Rule.IS_EXECUTABLE_ATTRIBUTE_NAME, BOOLEAN)\n205: ... |
| 94 | - | assistant | tool_use | mcp__sourcegraph__sg_read_file | |
| 95 | 2026-06-12T16:16:00.708Z | user | tool_result | mcp__sourcegraph__sg_read_file | {"text":"URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/com/google/devtools/build/lib/packages/Package.java%3FL1050-1120\n1050: .setLoads(ImmutableList.of());\n1051: }\n1052: \n1053: // ==== Non-trivial nested classes ====\n1054: \n1055: /**\n1056: * A builder for {@link Package} objects. Only intended to be used by {@link PackageFactory} and\n1057: * {@link com.google.devtools.build.lib.skyframe.PackageFunction}.\n1058: */\n1059: public static class Builder extends TargetDefinitionContext {\n1060: \n1061: /**\n1062: * A bundle of options affecting package construction, that is not specific to any particular\n1063: * package.\n1064: */\n1065: public interface PackageSettings {\n1066: /**\n1067: * Returns whether or not extra detail should be added to {@link NoSuchTargetException}s\n1068: * thrown from {@link #getTarget}. Useful for toning down verbosity in situations where it can\n1069: * be less helpful.\n1070: */\n1071: // TODO(bazel-team): Arguably, this could be replaced by a boolean param to getTarget(), or\n1072: // some separate action taken by the caller. But there's a lot of call sites that would need\n1073: // updating.\n1074: default boolean succinctTargetNotFoundErrors() {\n1075: return false;\n1076: }\n1077: \n1078: /**\n1079: * Determines whether to precompute a list of transitively loaded starlark files while\n1080: * building packages.\n1081: *\n1082: * <p>Typically, direct loads are stored as a {@code ImmutableList<Module>}. This is\n1083: * sufficient to reconstruct the full load graph by recursively traversing {@link\n1084: * BazelModuleContext#loads}. If the package is going to be serialized, however, it may make\n1085: * more sense to precompute a flat list containing the labels of all transitively loaded bzl\n1086: * files since {@link Module} is costly to serialize.\n1087: *\n1088: * <p>If this returns {@code true}, transitive loads are stored as an {@code\n1089: * ImmutableList<Label>} and direct loads are not stored.\n1090: */\n1091: default boolean precomputeTransitiveLoads() {\n1092: return false;\n1093: }\n1094: \n1095: PackageSettings DEFAULTS = new PackageSettings() {};\n1096: }\n1097: \n1098: private final boolean precomputeTransitiveLoads;\n1099: private final boolean noImplicitFileExport;\n1100: \n1101: // The map from each repository to that repository's remappings map.\n1102: // This is only used in the //external package, it is an empty map for all other packages.\n1103: private final HashMap<RepositoryName, HashMap<String, RepositoryName>>\n1104: externalPackageRepositoryMappings = new HashMap<>();\n1105: \n1106: /** Estimates the package overhead of this package. */\n1107: private final PackageOverheadEstimator packageOverheadEstimator;\n1108: \n1109: // A package's FailureDetail field derives from the events on its Builder's event handler.\n1110: // During package deserialization, those events are unavailable, because those events aren't\n1111: // serialized [*]. Its FailureDetail value is serialized, however. During deserialization, that\n1112: // value is assigned here, so that it can be assigned to the deserialized package.\n1113: //\n1114: // Likewise, during workspace part assembly, errors from parent parts should propagate to their\n1115: // children.\n1116: //\n1117: // [*] Not in the context of the package, anyway. Skyframe values containing a package may\n1118: // serialize events emitted during its construction/evaluation.\n1119: @Nullable private FailureDetail failureDetailOverride = null;\n1120: \n1121: "} |
| 96 | - | assistant | tool_use | mcp__sourcegraph__sg_read_file | |
| 97 | 2026-06-12T16:16:01.736Z | user | tool_result | mcp__sourcegraph__sg_read_file | {"text":"URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/com/google/devtools/build/lib/packages/BazelStarlarkEnvironment.java%3FL1-80\n1: // Copyright 2020 The Bazel Authors. All rights reserved.\n2: //\n3: // Licensed under the Apache License, Version 2.0 (the \"License\");\n4: // you may not use this file except in compliance with the License.\n5: // You may obtain a copy of the License at\n6: //\n7: // http://www.apache.org/licenses/LICENSE-2.0\n8: //\n9: // Unless required by applicable law or agreed to in writing, software\n10: // distributed under the License is distributed on an \"AS IS\" BASIS,\n11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n12: // See the License for the specific language governing permissions and\n13: // limitations under the License.\n14: \n15: package com.google.devtools.build.lib.packages;\n16: \n17: import com.google.common.base.Preconditions;\n18: import com.google.common.collect.ImmutableMap;\n19: import com.google.common.collect.Sets;\n20: import java.util.HashMap;\n21: import java.util.List;\n22: import java.util.Map;\n23: import java.util.Set;\n24: import javax.annotation.Nullable;\n25: import net.starlark.java.eval.GuardedValue;\n26: import net.starlark.java.eval.Starlark;\n27: \n28: // TODO(adonovan): move skyframe.PackageFunction into lib.packages so we needn't expose this and\n29: // the other env-building functions.\n30: /**\n31: * This class encapsulates knowledge of how to set up the Starlark environment for BUILD, WORKSPACE,\n32: * and bzl file evaluation, including the top-level predeclared symbols, the {@code native} module,\n33: * and the special environment for {@code @_builtins} bzl evaluation.\n34: *\n35: * <p>The set of available symbols is determined by\n36: *\n37: * <ol>\n38: * <li>Gathering a fixed set of top-level symbols that are present in all versions of Bazel. This\n39: * is handled by {@link StarlarkGlobals}.\n40: * <li>Gathering additional toplevels and rules registered on the {@link\n41: * ConfiguredRuleClassProvider}.\n42: * <li>Applying builtins injection (see {@link StarlarkBuiltinsFunction}), if applicable.\n43: * </ol>\n44: *\n45: * <p>The end result of (1) and (2) is constant for any given Bazel binary and is cached by an\n46: * instance of this class upon construction. The final environment, which takes into account\n47: * builtins injection, is obtained by calling methods on this class during Skyframe evaluation; the\n48: * result is cached in {@link StarlarkBuiltinsValue}.\n49: *\n50: * <p>There are a few exceptions where this class is not the final word on the environment:\n51: *\n52: * <ul>\n53: * <li>The WORKSPACE file's environment is setup with the help of {@link\n54: * WorkspaceFactory#getDefaultEnvironment}.\n55: * <li>If a prelude file is in use, its bindings are added to the ones this class specifies for\n56: * BUILD files. This happens in {@link PackageFunction}.\n57: * </ul>\n58: */\n59: public final class BazelStarlarkEnvironment {\n60: \n61: // TODO(#11954): Eventually the BUILD and WORKSPACE bzl dialects should converge. Right now they\n62: // only differ on the \"native\" object.\n63: \n64: // All of the environments stored in these fields exclude the symbols in {@link\n65: // Starlark#UNIVERSE}, which the interpreter adds automatically.\n66: \n67: // Constructor param, used in this class but also re-exported to clients.\n68: private final StarlarkGlobals starlarkGlobals;\n69: \n70: // The following fields correspond to the constructor params of the same name. These include only\n71: // the params that are needed by injection. See the constructor for javadoc.\n72: private final ImmutableMap<String, ?> ruleFunctions;\n73: private final ImmutableMap<String, Object> registeredBzlToplevels;\n74: private final ImmutableMap<String, Object> workspaceB... |
| 98 | - | system | thinking_tokens | - | |
| 99 | - | system | thinking_tokens | - | |
| 100 | - | system | thinking_tokens | - | |
| 101 | - | system | thinking_tokens | - | |
| 102 | - | system | thinking_tokens | - | |
| 103 | - | system | thinking_tokens | - | |
| 104 | - | system | thinking_tokens | - | |
| 105 | - | system | thinking_tokens | - | |
| 106 | - | assistant | text | - | Let me verify a few more important files that were identified: |
| 107 | - | assistant | tool_use | mcp__sourcegraph__sg_read_file | |
| 108 | 2026-06-12T16:16:08.554Z | user | tool_result | mcp__sourcegraph__sg_read_file | {"text":"URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java%3FL1-80\n1: // Copyright 2018 The Bazel Authors. All rights reserved.\n2: //\n3: // Licensed under the Apache License, Version 2.0 (the \"License\");\n4: // you may not use this file except in compliance with the License.\n5: // You may obtain a copy of the License at\n6: //\n7: // http://www.apache.org/licenses/LICENSE-2.0\n8: //\n9: // Unless required by applicable law or agreed to in writing, software\n10: // distributed under the License is distributed on an \"AS IS\" BASIS,\n11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n12: // See the License for the specific language governing permissions and\n13: // limitations under the License.\n14: \n15: package com.google.devtools.build.lib.starlarkbuildapi;\n16: \n17: import com.google.devtools.build.docgen.annot.GlobalMethods;\n18: import com.google.devtools.build.docgen.annot.GlobalMethods.Environment;\n19: import com.google.devtools.build.docgen.annot.StarlarkConstructor;\n20: import com.google.devtools.build.lib.cmdline.Label;\n21: import com.google.devtools.build.lib.packages.semantics.BuildLanguageOptions;\n22: import com.google.devtools.build.lib.starlarkbuildapi.config.StarlarkConfigApi.BuildSettingApi;\n23: import net.starlark.java.annot.Param;\n24: import net.starlark.java.annot.ParamType;\n25: import net.starlark.java.annot.StarlarkMethod;\n26: import net.starlark.java.eval.Dict;\n27: import net.starlark.java.eval.EvalException;\n28: import net.starlark.java.eval.NoneType;\n29: import net.starlark.java.eval.Sequence;\n30: import net.starlark.java.eval.StarlarkCallable;\n31: import net.starlark.java.eval.StarlarkFunction;\n32: import net.starlark.java.eval.StarlarkThread;\n33: \n34: /**\n35: * Interface for a global Starlark library containing rule-related helper and registration\n36: * functions.\n37: */\n38: @GlobalMethods(environment = Environment.BZL)\n39: public interface StarlarkRuleFunctionsApi {\n40: \n41: String EXEC_COMPATIBLE_WITH_PARAM = \"exec_compatible_with\";\n42: String TOOLCHAINS_PARAM = \"toolchains\";\n43: \n44: String PROVIDES_DOC =\n45: \"A list of providers that the implementation function must return.\" //\n46: + \"<p>It is an error if the implementation function omits any of the types of providers\"\n47: + \" listed here from its return value. However, the implementation function may return\"\n48: + \" additional providers not listed here.\" //\n49: + \"<p>Each element of the list is an <code>*Info</code> object returned by <a\"\n50: + \" href='../globals/bzl.html#provider'><code>provider()</code></a>, except that a legacy\"\n51: + \" provider is represented by its string name instead.When a target of the rule is used\"\n52: + \" as a dependency for a target that declares a required provider, it is not necessary\"\n53: + \" to specify that provider here. It is enough that the implementation function returns\"\n54: + \" it. However, it is considered best practice to specify it, even though this is not\"\n55: + \" required. The <a\"\n56: + \" href='../globals/bzl.html#aspect.required_providers'><code>required_providers</code></a>\"\n57: + \" field of an <a href='../globals/bzl.html#aspect'>aspect</a> does, however, require\"\n58: + \" that providers are specified here.\";\n59: \n60: String DEPENDENCY_RESOLUTION_RULE_DOC =\n61: \"If set, the rule can be a dependency through attributes also marked as available in\"\n62: + \" materializers. Every attribute of rules with this flag set must be marked as \"\n63: + \" available in materializers also. This is so that rules so marked cannot depend on\"\n64: + \" rules that are not... |
| 109 | - | assistant | tool_use | mcp__sourcegraph__sg_read_file | |
| 110 | 2026-06-12T16:16:10.412Z | user | tool_result | mcp__sourcegraph__sg_read_file | {"text":"URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/com/google/devtools/build/lib/packages/MacroClass.java%3FL1-80\n1: // Copyright 2024 The Bazel Authors. All rights reserved.\n2: //\n3: // Licensed under the Apache License, Version 2.0 (the \"License\");\n4: // you may not use this file except in compliance with the License.\n5: // You may obtain a copy of the License at\n6: //\n7: // http://www.apache.org/licenses/LICENSE-2.0\n8: //\n9: // Unless required by applicable law or agreed to in writing, software\n10: // distributed under the License is distributed on an \"AS IS\" BASIS,\n11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n12: // See the License for the specific language governing permissions and\n13: // limitations under the License.\n14: \n15: package com.google.devtools.build.lib.packages;\n16: \n17: import static com.google.common.collect.ImmutableList.toImmutableList;\n18: import static com.google.devtools.build.lib.packages.BuildType.NODEP_LABEL_LIST;\n19: \n20: import com.google.common.base.Preconditions;\n21: import com.google.common.collect.ImmutableList;\n22: import com.google.common.collect.ImmutableMap;\n23: import com.google.common.collect.ImmutableSet;\n24: import com.google.common.collect.Lists;\n25: import com.google.devtools.build.lib.cmdline.Label;\n26: import com.google.devtools.build.lib.cmdline.PackageIdentifier;\n27: import com.google.devtools.build.lib.events.Event;\n28: import com.google.devtools.build.lib.packages.TargetRecorder.MacroFrame;\n29: import com.google.devtools.build.lib.packages.TargetRecorder.NameConflictException;\n30: import com.google.devtools.build.lib.server.FailureDetails.PackageLoading.Code;\n31: import com.google.errorprone.annotations.CanIgnoreReturnValue;\n32: import java.util.ArrayList;\n33: import java.util.LinkedHashMap;\n34: import java.util.List;\n35: import java.util.Map;\n36: import javax.annotation.Nullable;\n37: import net.starlark.java.eval.EvalException;\n38: import net.starlark.java.eval.Mutability;\n39: import net.starlark.java.eval.Starlark;\n40: import net.starlark.java.eval.StarlarkFunction;\n41: import net.starlark.java.eval.StarlarkSemantics;\n42: import net.starlark.java.eval.StarlarkThread;\n43: import net.starlark.java.eval.SymbolGenerator;\n44: import net.starlark.java.spelling.SpellChecker;\n45: \n46: /**\n47: * Represents a symbolic macro, defined in a .bzl file, that may be instantiated during Package\n48: * evaluation.\n49: *\n50: * <p>This is analogous to {@link RuleClass}. In essence, a {@code MacroClass} consists of the\n51: * macro's schema and its implementation function.\n52: */\n53: public final class MacroClass {\n54: \n55: /**\n56: * Names that users may not pass as keys of the {@code attrs} dict when calling {@code macro()}.\n57: *\n58: * <p>Of these, {@code name} is special cased as an actual attribute, and the rest do not exist.\n59: */\n60: // Keep in sync with `macro()`'s `attrs` user documentation in StarlarkRuleFunctionsApi.\n61: // But we should avoid adding new entries here, since it's a backwards-incompatible change.\n62: public static final ImmutableSet<String> RESERVED_MACRO_ATTR_NAMES =\n63: ImmutableSet.of(\"name\", \"visibility\");\n64: \n65: /**\n66: * \"visibility\" attribute present on all symbolic macros.\n67: *\n68: * <p>This is similar to the visibility attribute for rules, but lacks the exec transitions.\n69: */\n70: public static final Attribute VISIBILITY_ATTRIBUTE =\n71: Attribute.attr(\"visibility\", NODEP_LABEL_LIST)\n72: .orderIndependent()\n73: .nonconfigurable(\"special attribute integrated more deeply into Bazel's core logic\")\n74: .build();\n75: \n76: private final String name;\n77: private final Label definingBzlLabel;\n78: private final StarlarkFunction implementation;\n79: // Implicit attrib... |
| 111 | - | assistant | tool_use | mcp__sourcegraph__sg_read_file | |
| 112 | 2026-06-12T16:16:11.108Z | user | tool_result | mcp__sourcegraph__sg_read_file | {"text":"URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/com/google/devtools/build/lib/packages/BzlInitThreadContext.java%3FL1-60\n1: // Copyright 2022 The Bazel Authors. All rights reserved.\n2: //\n3: // Licensed under the Apache License, Version 2.0 (the \"License\");\n4: // you may not use this file except in compliance with the License.\n5: // You may obtain a copy of the License at\n6: //\n7: // http://www.apache.org/licenses/LICENSE-2.0\n8: //\n9: // Unless required by applicable law or agreed to in writing, software\n10: // distributed under the License is distributed on an \"AS IS\" BASIS,\n11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n12: // See the License for the specific language governing permissions and\n13: // limitations under the License.\n14: \n15: package com.google.devtools.build.lib.packages;\n16: \n17: import com.google.common.collect.ImmutableMap;\n18: import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;\n19: import com.google.devtools.build.lib.cmdline.Label;\n20: import com.google.devtools.build.lib.cmdline.RepositoryMapping;\n21: import com.google.devtools.build.lib.cmdline.RepositoryName;\n22: import com.google.devtools.build.lib.cmdline.StarlarkThreadContext;\n23: import com.google.errorprone.annotations.CanIgnoreReturnValue;\n24: import java.util.Optional;\n25: import javax.annotation.Nullable;\n26: import net.starlark.java.eval.EvalException;\n27: import net.starlark.java.eval.Starlark;\n28: import net.starlark.java.eval.StarlarkThread;\n29: \n30: /**\n31: * Bazel application data for the Starlark thread that evaluates the top-level code in a .bzl (or\n32: * .scl) module (i.e. when evaluating that module's global symbols).\n33: */\n34: public final class BzlInitThreadContext extends StarlarkThreadContext\n35: implements RuleDefinitionEnvironment {\n36: \n37: private final Label bzlFile;\n38: \n39: /* Digest of the .bzl file being initialized along with all its transitive loads. */\n40: private final byte[] transitiveDigest;\n41: \n42: // For storing the result of calling `visibility()`.\n43: @Nullable private BzlVisibility bzlVisibility;\n44: \n45: private final RepositoryName toolsRepository;\n46: \n47: // TODO(b/192694287): Remove once we migrate all tests from the allowlist\n48: private final Optional<Label> networkAllowlistForTests;\n49: \n50: // Used for `configuration_field`.\n51: private final ImmutableMap<String, Class<?>> fragmentNameToClass;\n52: \n53: /**\n54: * Constructs a new context for initializing a .bzl file.\n55: *\n56: * @param bzlFile the name of the .bzl being initialized\n57: * @param transitiveDigest the hash of that file and its transitive load()s\n58: * @param toolsRepository the name of the tools repository, such as \"@bazel_tools\"\n59: * @param networkAllowlistForTests an allowlist for rule classes created by this thread\n60: * @param fragmentNameToClass a map from configuration fragment name to configuration fragment\n61: "} |
| 113 | - | system | thinking_tokens | - | |
| 114 | - | system | thinking_tokens | - | |
| 115 | - | system | thinking_tokens | - | |
| 116 | - | system | thinking_tokens | - | |
| 117 | - | assistant | text | - | Let me also look at the `net/starlark` directory structure and check a few more files: |
| 118 | - | assistant | tool_use | mcp__sourcegraph__sg_list_files | |
| 119 | 2026-06-12T16:16:15.425Z | user | tool_result | mcp__sourcegraph__sg_list_files | {"text":"src/main/java/net/starlark/java/annot/\nsrc/main/java/net/starlark/java/cmd/\nsrc/main/java/net/starlark/java/eval/\nsrc/main/java/net/starlark/java/lib/\nsrc/main/java/net/starlark/java/spelling/\nsrc/main/java/net/starlark/java/syntax/\nsrc/main/java/net/starlark/java/BUILD\n"} |
| 120 | - | assistant | tool_use | mcp__sourcegraph__sg_read_file | |
| 121 | 2026-06-12T16:16:16.298Z | user | tool_result | mcp__sourcegraph__sg_read_file | {"text":"URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/com/google/devtools/build/lib/packages/StarlarkGlobals.java%3FL1-80\n1: // Copyright 2023 The Bazel Authors. All rights reserved.\n2: //\n3: // Licensed under the Apache License, Version 2.0 (the \"License\");\n4: // you may not use this file except in compliance with the License.\n5: // You may obtain a copy of the License at\n6: //\n7: // http://www.apache.org/licenses/LICENSE-2.0\n8: //\n9: // Unless required by applicable law or agreed to in writing, software\n10: // distributed under the License is distributed on an \"AS IS\" BASIS,\n11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n12: // See the License for the specific language governing permissions and\n13: // limitations under the License.\n14: \n15: package com.google.devtools.build.lib.packages;\n16: \n17: import com.google.common.collect.ImmutableMap;\n18: \n19: /**\n20: * A library of the fixed Starlark environment for various contexts.\n21: *\n22: * <p>This is the source of truth for what symbols are available in what Starlark contexts (BUILD,\n23: * .bzl, etc.), before considering how symbols may be added by registering them on the rule class\n24: * provider, or how symbols may be substituted by builtins injection. In other words, this is the\n25: * starting point for defining the minimum Starlark environments that Bazel supports for BUILD\n26: * files, .bzl files, etc. See {@link BazelStarlarkEnvironment} for the final determination of the\n27: * environment after accounting for registered symbols and builtins injection.\n28: *\n29: * <p>This is split between an interface in the lib/packages/ directory and an implementation in the\n30: * lib/analysis/starlark/ directory, in order to avoid new dependency edges from lib/packages/ to\n31: * lib/analysis/.\n32: */\n33: public interface StarlarkGlobals {\n34: \n35: /**\n36: * Returns a simple environment containing a few general utility modules, {@code depset}, and\n37: * {@code select()}.\n38: *\n39: * <p>In general, if you need a Bazel-y Starlark environment and don't know what to choose, prefer\n40: * to use this one for uniformity with as many other contexts as possible.\n41: */\n42: ImmutableMap<String, Object> getUtilToplevels();\n43: \n44: /**\n45: * Similar to {@link #getUtilToplevels} but without {@code select()} and with {@code struct}. Used\n46: * for cquery.\n47: */\n48: // TODO(bazel-team): Consider whether we should replace usage of this with getUtilTopLevels(), at\n49: // the cost of the cquery dialect changing slightly, for the sake of uniformity and fewer\n50: // kinds of environments.\n51: ImmutableMap<String, Object> getUtilToplevelsForCquery();\n52: \n53: /**\n54: * Returns the fixed top-levels for BUILD files that also happen to be fields of {@code native}.\n55: * This does not include any native rules.\n56: */\n57: ImmutableMap<String, Object> getFixedBuildFileToplevelsSharedWithNative();\n58: \n59: /** Returns the fixed top-levels for BUILD files that are *not* also fields of {@code native}. */\n60: ImmutableMap<String, Object> getFixedBuildFileToplevelsNotInNative();\n61: \n62: /** Returns the fixed top-levels for .bzl files, excluding the {@code native} object. */\n63: ImmutableMap<String, Object> getFixedBzlToplevels();\n64: \n65: /** Returns the top-levels for .scl files. */\n66: ImmutableMap<String, Object> getSclToplevels();\n67: \n68: /** Returns the top-levels for MODULE.bazel files and their imports. */\n69: ImmutableMap<String, Object> getModuleToplevels();\n70: \n71: /** Returns the top-levels for REPO.bazel files. */\n72: ImmutableMap<String, Object> getRepoToplevels();\n73: \n74: /** Returns the top-levels for VENDOR.bazel files. */\n75: ImmutableMap<String, Object> getVendorToplevels();\n76: }\n77: "} |
| 122 | - | system | thinking_tokens | - | |
| 123 | - | system | thinking_tokens | - | |
| 124 | - | system | thinking_tokens | - | |
| 125 | - | assistant | text | - | Let me find the StarlarkGlobals implementation: |
| 126 | - | assistant | tool_use | mcp__sourcegraph__sg_keyword_search | |
| 127 | 2026-06-12T16:16:21.367Z | user | tool_result | mcp__sourcegraph__sg_keyword_search | {"text":"# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkGlobalsImpl.java\n41: */\n42: public final class StarlarkGlobalsImpl implements StarlarkGlobals {\n43: \n44: \n"} |
| 128 | - | assistant | tool_use | mcp__sourcegraph__sg_keyword_search | |
| 129 | 2026-06-12T16:16:22.146Z | user | tool_result | mcp__sourcegraph__sg_keyword_search | {"text":"No results.\n\nNo results found."} |
| 130 | - | system | thinking_tokens | - | |
| 131 | - | system | thinking_tokens | - | |
| 132 | - | system | thinking_tokens | - | |
| 133 | - | system | thinking_tokens | - | |
| 134 | - | assistant | text | - | Now I have a comprehensive picture. Let me write the `answer.json` file with all findings: |
| 135 | - | assistant | tool_use | Write | |
| 136 | 2026-06-12T16:17:28.336Z | user | tool_result | Write | File created successfully at: /workspace/answer.json (file state is current in your context — no need to Read it back) |
| 137 | - | assistant | text | - | The `answer.json` file has been written. Here's a summary of what was found: ## Key Files for Starlark BUILD Evaluation in Bazel 8.0.0 ### StarlarkThread (environment setup) - **`src/main/java/net/starlark/java/eval/StarlarkThread.java`** — `StarlarkThread` class: the execution thread holding the call stack, mutability, thread-locals. Callers attach context objects like `Package.Builder` via `setThreadLocal`. ### PackageFactory (invokes Starlark evaluation) - **`src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java`** — `PackageFactory` class: constructs `Package` instances from BUILD file ASTs via `executeBuildFile()`. ### BzlLoadFunction (.bzl file loading) - **`src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java`** — `BzlLoadFunction` class: Skyframe function loading .bzl/.scl modules, setting up `StarlarkThread` with `BzlInitThreadContext`. ### rule() and macro() builtins - **`src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java`** — API interface declaring `rule()` and `macro()` `@StarlarkMethod`s. - **`src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java`** — `StarlarkRuleClassFunctions` implements `StarlarkRuleFunctionsApi`; contains `rule()` and `macro()` implementations. - **`src/main/java/com/google/devtools/build/lib/packages/MacroClass.java`** — `MacroClass`: the macro schema + implementation (analogous to `RuleClass`). - **`src/main/java/com/google/devtools/build/lib/packages/RuleFunction.java`** / **`RuleClass.java`** / **`RuleFactory.java`** — rule callable interface, rule schema, and rule instantiation. ### Package.Builder (accumulates targets) - **`src/main/java/com/google/devtools/build/lib/packages/Package.java`** — inner class `Package.Builder` (extends `TargetDefinitionContext`) accumulates targets during BUILD evaluation. ### Environment setup supporting files - **`BazelStarlarkEnvironment.java`**, **`StarlarkGlobals.java`** (interface), **`StarlarkGlobalsImpl.java`** (implementation), **`StarlarkNativeModule.java`**, **`BzlInitThreadContext.java`**, **`StarlarkBuiltinsFunction.java`**. |
ToolSearch @ -{
"query": "select:mcp__sourcegraph__sg_keyword_search,mcp__sourcegraph__sg_read_file,mcp__sourcegraph__sg_list_files,mcp__sourcegraph__sg_nls_search",
"max_results": 4
}{
"matches": [
"mcp__sourcegraph__sg_keyword_search",
"mcp__sourcegraph__sg_read_file",
"mcp__sourcegraph__sg_list_files",
"mcp__sourcegraph__sg_nls_search"
],
"query": "select:mcp__sourcegraph__sg_keyword_search,mcp__sourcegraph__sg_read_file,mcp__sourcegraph__sg_list_files,mcp__sourcegraph__sg_nls_search",
"total_deferred_tools": 33
}mcp__sourcegraph__sg_keyword_search @ -{
"query": "repo:^github.com/sg-evals/bazel--8.0.0$ StarlarkThread file:src/main/java"
}{
"content": "{\"text\":\"# github.com/sg-evals/bazel--8.0.0 – src/main/java/net/starlark/java/eval/StarlarkThread.java\\n46: */\\n47: public final class StarlarkThread {\\n48: \\n49: \\n431: \\n432: private StarlarkThread(\\n433: Mutability mu,\\n434: \\n28: /**\\n29: * An StarlarkThread represents a Starlark thread.\\n30: *\\n31: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java\\n185: */\\n186: private final StarlarkThread starlarkThread;\\n187: \\n188: \\n977: \\n978: private StarlarkThread createStarlarkThread(Mutability mutability) {\\n979: AnalysisEnvironment env = getAnalysisEnvironment();\\n980: StarlarkThread thread =\\n981: StarlarkThread.create(\\n982: mutability, env.getStarlarkSemantics(), getLabel().toString(), getSymbolGenerator());\\n983: \\n987: \\n988: public StarlarkThread getStarlarkThread() {\\n989: return starlarkThread;\\n990: }\\n991: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/profiler/memory/AllocationTracker.java\\n51: \\n52: // A mapping from Java thread to StarlarkThread.\\n53: // Used to effect a hidden StarlarkThread parameter to sampleAllocation.\\n54: // TODO(adonovan): opt: merge the three different ThreadLocals in use here.\\n55: private final ThreadLocal<StarlarkThread> starlarkThread = new ThreadLocal<>();\\n56: \\n57: \\n43: import net.starlark.java.eval.StarlarkCallable;\\n44: import net.starlark.java.eval.StarlarkThread;\\n45: import net.starlark.java.syntax.Location;\\n46: \\n57: @Override\\n58: public void onPushFirst(StarlarkThread thread) {\\n59: starlarkThread.set(thread);\\n60: }\\n61: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/cmdline/StarlarkThreadContext.java\\n34: */\\n35: public abstract class StarlarkThreadContext {\\n36: // TODO: decide the extent to which we should enforce that such a context object is available\\n37: \\n60: */\\n61: protected StarlarkThreadContext(\\n62: @Nullable InterruptibleSupplier<RepositoryMapping> mainRepoMappingSupplier) {\\n63: \\n18: import javax.annotation.Nullable;\\n19: import net.starlark.java.eval.StarlarkThread;\\n20: \\n21: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/net/starlark/java/eval/CpuProfiler.java\\n122: @Nullable\\n123: static StarlarkThread setStarlarkThread(StarlarkThread thread) {\\n124: if (thread == null) {\\n125: \\n59: // Reading from the other end of the pipe is a Java thread, the router.\\n60: // Its job is to map each OS tid to a StarlarkThread, if the\\n61: // thread is currently executing Starlark code, and increment\\n62: // a volatile counter in that StarlarkThread. If the thread is\\n63: // not executing Starlark code, the router discards the event.\\n64: \\n64: // When a Starlark thread enters or leaves a function during profiling,\\n65: // it updates the StarlarkThread-to-OS-thread mapping consulted by the\\n66: // router.\\n67: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/net/starlark/java/annot/StarlarkMethod.java\\n180: */\\n181: boolean useStarlarkThread() default false;\\n182: \\n183: \\n50: * {@code extraKeywords};\\n51: * <li>a {@code StarlarkThread}, if {@code useStarlarkThread};\\n52: * <li>a {@code StarlarkSemantics}, if {@code useStarlarkSemantics}.\\n53: \\n174: /**\\n175: * If true, the StarlarkThread will be passed as an argument of the annotated function. (Thus, the\\n176: * annotated method signature must contain StarlarkThread as a parameter. See the interface-level\\n177: * javadoc for details.)\\n178: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/net/starlark/java/eval/MethodDescriptor.java\\n256: \\n257: /** @see StarlarkMethod#useStarlarkThread() */\\n258: boolean isUseStarlarkThread() {\\n259: return useStarlarkThread;\\n260: }\\n261: \\n48: private final
...mcp__sourcegraph__sg_keyword_search @ -{
"query": "repo:^github.com/sg-evals/bazel--8.0.0$ PackageFactory file:src/main/java"
}{
"content": "{\"text\":\"# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java\\n79: */\\n80: public final class PackageFactory {\\n81: private static final GoogleLogger logger = GoogleLogger.forEnclosingClass();\\n82: \\n143: // so WorkspaceFactory can add an extra top-level builtin.\\n144: public PackageFactory(\\n145: RuleClassProvider ruleClassProvider,\\n146: \\n76: *\\n77: * <p>A PackageFactory is a heavy-weight object; create them sparingly. Typically only one is needed\\n78: * per client application.\\n79: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java\\n167: \\n168: private final PackageFactory packageFactory;\\n169: private final ConfiguredRuleClassProvider ruleClassProvider;\\n170: \\n546: /** Returns the package factory. */\\n547: public PackageFactory getPackageFactory() {\\n548: return packageFactory;\\n549: }\\n550: \\n58: import com.google.devtools.build.lib.packages.Package.Builder.PackageSettings;\\n59: import com.google.devtools.build.lib.packages.PackageFactory;\\n60: import com.google.devtools.build.lib.packages.PackageLoadingListener;\\n61: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java\\n105: \\n106: protected final PackageFactory packageFactory;\\n107: protected final CachingPackageLocator packageLocator;\\n108: \\n1304: public static final class Builder {\\n1305: @Nullable private PackageFactory packageFactory;\\n1306: @Nullable private CachingPackageLocator pkgLocator;\\n1307: \\n1319: @CanIgnoreReturnValue\\n1320: public Builder setPackageFactory(PackageFactory packageFactory) {\\n1321: this.packageFactory = packageFactory;\\n1322: return this;\\n1323: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java\\n80: \\n81: private final PackageFactory packageFactory;\\n82: private final BlazeDirectories directories;\\n83: \\n38: import com.google.devtools.build.lib.packages.Package;\\n39: import com.google.devtools.build.lib.packages.PackageFactory;\\n40: import com.google.devtools.build.lib.packages.RuleClassProvider;\\n41: \\n88: RuleClassProvider ruleClassProvider,\\n89: PackageFactory packageFactory,\\n90: BlazeDirectories directories,\\n91: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/skyframe/packages/PackageFactoryBuilderWithSkyframeForTesting.java\\n27: */\\n28: public abstract class PackageFactoryBuilderWithSkyframeForTesting\\n29: extends PackageFactory.BuilderForTesting {\\n30: protected ImmutableMap<SkyFunctionName, SkyFunction> extraSkyFunctions = ImmutableMap.of();\\n31: \\n17: import com.google.common.collect.ImmutableMap;\\n18: import com.google.devtools.build.lib.packages.PackageFactory;\\n19: import com.google.devtools.build.lib.skyframe.PrecomputedValue;\\n20: \\n24: /**\\n25: * A {@link PackageFactory.BuilderForTesting} that also allows specification of some skyframe\\n26: * details.\\n27: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/Type.java\\n133: \\n134: // TODO(bazel-team): Check external calls (e.g. in PackageFactory), verify they always want\\n135: // this over selectableConvert.\\n136: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/Package.java\\n1055: /**\\n1056: * A builder for {@link Package} objects. Only intended to be used by {@link PackageFactory} and\\n1057: * {@link com.google.devtools.build.lib.skyframe.PackageFunction}.\\n1058: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/GlobCache.java\\n252: *\\n253: * <p>Called by PackageFactory via Package.\\n254: */\\n255: \\n\\n# github.com/sg-evals/bazel--8.0.0 – s
...mcp__sourcegraph__sg_keyword_search @ -{
"query": "repo:^github.com/sg-evals/bazel--8.0.0$ BzlLoadFunction file:src/main/java"
}{
"content": "{\"text\":\"# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java\\n107: */\\n108: public class BzlLoadFunction implements SkyFunction {\\n109: \\n110: \\n128: \\n129: private BzlLoadFunction(\\n130: RuleClassProvider ruleClassProvider,\\n131: \\n1693: \\n1694: private static final class BzlLoadFunctionException extends SkyFunctionException {\\n1695: private BzlLoadFunctionException(BzlLoadFailedException cause) {\\n1696: super(cause, cause.getTransience());\\n1697: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java\\n885: \\n886: protected SkyFunction newBzlLoadFunction(RuleClassProvider ruleClassProvider) {\\n887: return BzlLoadFunction.create(\\n888: ruleClassProvider, directories, getDigestFunction().getHashFunction(), bzlCompileCache);\\n889: \\n881: @Nullable\\n882: protected BzlLoadFunction getBzlLoadFunctionForInliningPackageAndWorkspaceNodes() {\\n883: return null;\\n884: \\n369: // Cache of parsed bzl files, for use when we're inlining BzlCompileFunction in\\n370: // BzlLoadFunction. See the comments in BzlLoadFunction for motivations and details.\\n371: private final Cache<BzlCompileValue.Key, BzlCompileValue> bzlCompileCache =\\n372: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/skyframe/PackageFunction.java\\n112: // Not final only for testing.\\n113: @Nullable private BzlLoadFunction bzlLoadFunctionForInlining;\\n114: \\n115: \\n1308: private AtomicInteger numPackagesSuccessfullyLoaded = new AtomicInteger(0);\\n1309: @Nullable private BzlLoadFunction bzlLoadFunctionForInlining;\\n1310: @Nullable private PackageProgressReceiver packageProgress;\\n1311: \\n196: \\n197: public void setBzlLoadFunctionForInliningForTesting(BzlLoadFunction bzlLoadFunctionForInlining) {\\n198: this.bzlLoadFunctionForInlining = bzlLoadFunctionForInlining;\\n199: }\\n200: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceFileFunction.java\\n83: private final RuleClassProvider ruleClassProvider;\\n84: private final BzlLoadFunction bzlLoadFunctionForInlining;\\n85: private static final PackageIdentifier rootPackage = PackageIdentifier.createInMainRepo(\\\"\\\");\\n86: \\n90: BlazeDirectories directories,\\n91: BzlLoadFunction bzlLoadFunctionForInlining) {\\n92: this.packageFactory = packageFactory;\\n93: \\n94: this.ruleClassProvider = ruleClassProvider;\\n95: this.bzlLoadFunctionForInlining = bzlLoadFunctionForInlining;\\n96: }\\n97: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/net/starlark/java/eval/Eval.java\\n86: \\n87: // Hack for BzlLoadFunction's \\\"export\\\" semantics.\\n88: // We enable it only for statements outside any function (isToplevelFunction)\\n89: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/net/starlark/java/eval/StarlarkThread.java\\n450: * <p>This is a short-term hack to allow us to consolidate all StarlarkFile execution in one place\\n451: * even while BzlLoadFunction implements the old \\\"export\\\" behavior, in which rules, aspects and\\n452: * providers are \\\"exported\\\" as soon as they are assigned, not at the end of file execution.\\n453: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/skyframe/BUILD\\n33: \\\"BuildTopLevelAspectsDetailsFunction.java\\\",\\n34: \\\"BzlLoadFunction.java\\\",\\n35: \\\"BzlmodRepoRuleFunction.java\\\",\\n36: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadValue.java\\n139: // The alternative is to use a separate key type just for .scl, but that complicates repo logic;\\n140: // see BzlLoadFunction#getRepositoryMapping.\\n141: final boolean isSclDialect() {\\n142: \\n332:
...mcp__sourcegraph__sg_keyword_search @ -{
"query": "repo:^github.com/sg-evals/bazel--8.0.0$ \"Package.Builder\" file:src/main/java"
}{
"content": "{\"text\":\"# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/WorkspaceGlobals.java\\n108: // Add to the package definition for later.\\n109: Package.Builder builder =\\n110: Package.Builder.fromOrFailAllowWorkspaceOnly(thread, \\\"register_execution_platforms()\\\");\\n111: List<String> patterns = Sequence.cast(platformLabels, String.class, \\\"platform_labels\\\");\\n112: \\n118: // Add to the package definition for later.\\n119: Package.Builder builder =\\n120: Package.Builder.fromOrFailAllowWorkspaceOnly(thread, \\\"register_toolchains()\\\");\\n121: List<String> patterns = Sequence.cast(toolchainLabels, String.class, \\\"toolchain_labels\\\");\\n122: \\n156: try {\\n157: Package.Builder builder = Package.Builder.fromOrFailAllowWorkspaceOnly(thread, \\\"bind()\\\");\\n158: RuleClass ruleClass = ruleClassMap.get(\\\"bind\\\");\\n159: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/PackageCallable.java\\n51: throws EvalException {\\n52: Package.Builder pkgBuilder = Package.Builder.fromOrFailAllowBuildOnly(thread, \\\"package()\\\");\\n53: if (pkgBuilder.isPackageFunctionUsed()) {\\n54: \\n76: protected void processParam(\\n77: String name, Object rawValue, Package.Builder pkgBuilder, PackageArgs.Builder pkgArgsBuilder)\\n78: throws EvalException {\\n79: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/BuildGlobals.java\\n117: throws EvalException {\\n118: Package.Builder pkgBuilder = Package.Builder.fromOrFailAllowBuildOnly(thread, \\\"licenses()\\\");\\n119: try {\\n120: \\n76: throws EvalException {\\n77: Package.Builder pkgBuilder =\\n78: Package.Builder.fromOrFailAllowBuildOnly(thread, \\\"environment_group()\\\");\\n79: List<Label> environments =\\n80: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactoryHelper.java\\n131: static void addBindRule(\\n132: Package.Builder pkg,\\n133: RuleClass bindRuleClass,\\n134: \\n45: public static Rule createAndAddRepositoryRule(\\n46: Package.Builder pkgBuilder,\\n47: RuleClass ruleClass,\\n48: \\n100: public static void addRepoMappings(\\n101: Package.Builder builder, Map<String, Object> kwargs, String externalRepoName)\\n102: throws EvalException, LabelSyntaxException {\\n103: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/skyframe/PackageFunctionWithoutGlobDeps.java\\n65: private static final class LoadedPackageWithoutDeps extends LoadedPackage {\\n66: LoadedPackageWithoutDeps(Package.Builder builder, long loadTimeNanos) {\\n67: super(builder, loadTimeNanos);\\n68: \\n91: protected LoadedPackage newLoadedPackage(\\n92: Package.Builder packageBuilder, @Nullable Globber globber, long loadTimeNanos) {\\n93: return new LoadedPackageWithoutDeps(packageBuilder, loadTimeNanos);\\n94: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/RuleFactory.java\\n54: public static Rule createRule(\\n55: Package.Builder pkgBuilder,\\n56: RuleClass ruleClass,\\n57: \\n133: public static Rule createAndAddRule(\\n134: Package.Builder pkgBuilder,\\n135: RuleClass ruleClass,\\n136: \\n234: private static String getGeneratorName(\\n235: Package.Builder pkgBuilder,\\n236: BuildLangTypedAttributeValuesMap args,\\n237: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java\\n70: public WorkspaceFactory(\\n71: Package.Builder builder,\\n72: RuleClassProvider ruleClassProvider,\\n73: \\n246: try {\\n247: Package.Builder builder =\\n248: Package.Builder.fromOrFailAllowWorkspaceOnly(thread,
...mcp__sourcegraph__sg_keyword_search @ -{
"query": "repo:^github.com/sg-evals/bazel--8.0.0$ \"class StarlarkRuleFunction\" file:src/main/java/com/google/devtools/build/lib/packages"
}{
"content": "{\"text\":\"No results.\\n\\nNo results found.\"}",
"structuredContent": {
"text": "No results.\n\nNo results found."
}
}mcp__sourcegraph__sg_keyword_search @ -{
"query": "repo:^github.com/sg-evals/bazel--8.0.0$ \"class MacroFunction\" OR \"def rule\" OR \"macro builtin\" file:src/main/java/com/google/devtools/build/lib/packages"
}{
"content": "{\"text\":\"No results.\\n\\nNo results found.\"}",
"structuredContent": {
"text": "No results.\n\nNo results found."
}
}mcp__sourcegraph__sg_list_files @ -{
"repo": "github.com/sg-evals/bazel--8.0.0",
"path": "src/main/java/com/google/devtools/build/lib/packages"
}{
"content": "{\"text\":\"src/main/java/com/google/devtools/build/lib/packages/metrics/\\nsrc/main/java/com/google/devtools/build/lib/packages/producers/\\nsrc/main/java/com/google/devtools/build/lib/packages/semantics/\\nsrc/main/java/com/google/devtools/build/lib/packages/AbstractAttributeMapper.java\\nsrc/main/java/com/google/devtools/build/lib/packages/AdvertisedProviderSet.java\\nsrc/main/java/com/google/devtools/build/lib/packages/AggregatingAttributeMapper.java\\nsrc/main/java/com/google/devtools/build/lib/packages/AllowlistChecker.java\\nsrc/main/java/com/google/devtools/build/lib/packages/Aspect.java\\nsrc/main/java/com/google/devtools/build/lib/packages/AspectClass.java\\nsrc/main/java/com/google/devtools/build/lib/packages/AspectDefinition.java\\nsrc/main/java/com/google/devtools/build/lib/packages/AspectDescriptor.java\\nsrc/main/java/com/google/devtools/build/lib/packages/AspectParameters.java\\nsrc/main/java/com/google/devtools/build/lib/packages/AspectsList.java\\nsrc/main/java/com/google/devtools/build/lib/packages/Attribute.java\\nsrc/main/java/com/google/devtools/build/lib/packages/AttributeFormatter.java\\nsrc/main/java/com/google/devtools/build/lib/packages/AttributeMap.java\\nsrc/main/java/com/google/devtools/build/lib/packages/AttributeTransitionData.java\\nsrc/main/java/com/google/devtools/build/lib/packages/AttributeValueSource.java\\nsrc/main/java/com/google/devtools/build/lib/packages/AutoloadSymbols.java\\nsrc/main/java/com/google/devtools/build/lib/packages/BUILD\\nsrc/main/java/com/google/devtools/build/lib/packages/BazelStarlarkEnvironment.java\\nsrc/main/java/com/google/devtools/build/lib/packages/BuildFileContainsErrorsException.java\\nsrc/main/java/com/google/devtools/build/lib/packages/BuildFileName.java\\nsrc/main/java/com/google/devtools/build/lib/packages/BuildFileNotFoundException.java\\nsrc/main/java/com/google/devtools/build/lib/packages/BuildGlobals.java\\nsrc/main/java/com/google/devtools/build/lib/packages/BuildSetting.java\\nsrc/main/java/com/google/devtools/build/lib/packages/BuildType.java\\nsrc/main/java/com/google/devtools/build/lib/packages/BuilderFactoryForTesting.java\\nsrc/main/java/com/google/devtools/build/lib/packages/BuiltinProvider.java\\nsrc/main/java/com/google/devtools/build/lib/packages/BuiltinRestriction.java\\nsrc/main/java/com/google/devtools/build/lib/packages/BuiltinsInternalModule.java\\nsrc/main/java/com/google/devtools/build/lib/packages/BzlInitThreadContext.java\\nsrc/main/java/com/google/devtools/build/lib/packages/BzlVisibility.java\\nsrc/main/java/com/google/devtools/build/lib/packages/CachingPackageLocator.java\\nsrc/main/java/com/google/devtools/build/lib/packages/CallStack.java\\nsrc/main/java/com/google/devtools/build/lib/packages/ConfigurationFragmentPolicy.java\\nsrc/main/java/com/google/devtools/build/lib/packages/ConfiguredAttributeMapper.java\\nsrc/main/java/com/google/devtools/build/lib/packages/DefaultSetting.java\\nsrc/main/java/com/google/devtools/build/lib/packages/DelegatingAttributeMapper.java\\nsrc/main/java/com/google/devtools/build/lib/packages/DependencyFilter.java\\nsrc/main/java/com/google/devtools/build/lib/packages/DotBazelFileSyntaxChecker.java\\nsrc/main/java/com/google/devtools/build/lib/packages/EnumFilterConverter.java\\nsrc/main/java/com/google/devtools/build/lib/packages/EnvironmentGroup.java\\nsrc/main/java/com/google/devtools/build/lib/packages/EnvironmentLabels.java\\nsrc/main/java/com/google/devtools/build/lib/packages/ErrorDeterminingRepositoryException.java\\nsrc/main/java/com/google/devtools/build/lib/packages/ExecGroup.java\\nsrc/main/java/com/google/devtools/build/lib/packages/FileTarget.java\\nsrc/main/java/com/google/devtools/build/lib/packages/FunctionSplitTransitionAllowlist.java\\nsrc/main/java/com/google/devtools/build/lib/packages/GlobCache.java\\nsrc/main/java/com/google/devtools/build/lib/packages/Globber.java\\nsrc/main/java/com/google/devtools/build/lib/packages/GlobberUtils.java\\nsrc/main/java/com/goo
...mcp__sourcegraph__sg_list_files @ -{
"repo": "github.com/sg-evals/bazel--8.0.0",
"path": "src/main/java/net/starlark/java/eval"
}{
"content": "{\"text\":\"src/main/java/net/starlark/java/eval/BUILD\\nsrc/main/java/net/starlark/java/eval/BuiltinFunction.java\\nsrc/main/java/net/starlark/java/eval/CallUtils.java\\nsrc/main/java/net/starlark/java/eval/CpuProfiler.java\\nsrc/main/java/net/starlark/java/eval/Debug.java\\nsrc/main/java/net/starlark/java/eval/Dict.java\\nsrc/main/java/net/starlark/java/eval/Eval.java\\nsrc/main/java/net/starlark/java/eval/EvalException.java\\nsrc/main/java/net/starlark/java/eval/EvalUtils.java\\nsrc/main/java/net/starlark/java/eval/FlagGuardedValue.java\\nsrc/main/java/net/starlark/java/eval/FormatParser.java\\nsrc/main/java/net/starlark/java/eval/GuardedValue.java\\nsrc/main/java/net/starlark/java/eval/HasBinary.java\\nsrc/main/java/net/starlark/java/eval/ImmutableSingletonStarlarkList.java\\nsrc/main/java/net/starlark/java/eval/ImmutableStarlarkList.java\\nsrc/main/java/net/starlark/java/eval/JNI.java\\nsrc/main/java/net/starlark/java/eval/LazyImmutableStarlarkList.java\\nsrc/main/java/net/starlark/java/eval/MethodDescriptor.java\\nsrc/main/java/net/starlark/java/eval/MethodLibrary.java\\nsrc/main/java/net/starlark/java/eval/Module.java\\nsrc/main/java/net/starlark/java/eval/Mutability.java\\nsrc/main/java/net/starlark/java/eval/MutableStarlarkList.java\\nsrc/main/java/net/starlark/java/eval/NoneType.java\\nsrc/main/java/net/starlark/java/eval/ParamDescriptor.java\\nsrc/main/java/net/starlark/java/eval/Printer.java\\nsrc/main/java/net/starlark/java/eval/RangeList.java\\nsrc/main/java/net/starlark/java/eval/RegularImmutableStarlarkList.java\\nsrc/main/java/net/starlark/java/eval/RegularTuple.java\\nsrc/main/java/net/starlark/java/eval/Sequence.java\\nsrc/main/java/net/starlark/java/eval/SingletonTuple.java\\nsrc/main/java/net/starlark/java/eval/Starlark.java\\nsrc/main/java/net/starlark/java/eval/StarlarkCallable.java\\nsrc/main/java/net/starlark/java/eval/StarlarkFloat.java\\nsrc/main/java/net/starlark/java/eval/StarlarkFunction.java\\nsrc/main/java/net/starlark/java/eval/StarlarkIndexable.java\\nsrc/main/java/net/starlark/java/eval/StarlarkInt.java\\nsrc/main/java/net/starlark/java/eval/StarlarkIterable.java\\nsrc/main/java/net/starlark/java/eval/StarlarkList.java\\nsrc/main/java/net/starlark/java/eval/StarlarkSemantics.java\\nsrc/main/java/net/starlark/java/eval/StarlarkThread.java\\nsrc/main/java/net/starlark/java/eval/StarlarkValue.java\\nsrc/main/java/net/starlark/java/eval/StringModule.java\\nsrc/main/java/net/starlark/java/eval/Structure.java\\nsrc/main/java/net/starlark/java/eval/SymbolGenerator.java\\nsrc/main/java/net/starlark/java/eval/Tuple.java\\nsrc/main/java/net/starlark/java/eval/cpu_profiler_posix.cc\\nsrc/main/java/net/starlark/java/eval/cpu_profiler_unimpl.cc\\n\"}",
"structuredContent": {
"text": "src/main/java/net/starlark/java/eval/BUILD\nsrc/main/java/net/starlark/java/eval/BuiltinFunction.java\nsrc/main/java/net/starlark/java/eval/CallUtils.java\nsrc/main/java/net/starlark/java/eval/CpuProfiler.java\nsrc/main/java/net/starlark/java/eval/Debug.java\nsrc/main/java/net/starlark/java/eval/Dict.java\nsrc/main/java/net/starlark/java/eval/Eval.java\nsrc/main/java/net/starlark/java/eval/EvalException.java\nsrc/main/java/net/starlark/java/eval/EvalUtils.java\nsrc/main/java/net/starlark/java/eval/FlagGuardedValue.java\nsrc/main/java/net/starlark/java/eval/FormatParser.java\nsrc/main/java/net/starlark/java/eval/GuardedValue.java\nsrc/main/java/net/starlark/java/eval/HasBinary.java\nsrc/main/java/net/starlark/java/eval/ImmutableSingletonStarlarkList.java\nsrc/main/java/net/starlark/java/eval/ImmutableStarlarkList.java\nsrc/main/java/net/starlark/java/eval/JNI.java\nsrc/main/java/net/starlark/java/eval/LazyImmutableStarlarkList.java\nsrc/main/java/net/starlark/java/eval/MethodDescriptor.java\nsrc/main/java/net/starlark/java/eval/MethodLibrary.java\nsrc/main/java/net/starlark/java/eval/Module.java\nsrc/main/java/net/starlark/java/eval/Mutability.java\nsrc/main/java/net/starlark/java/eval/MutableStarlarkList
...mcp__sourcegraph__sg_keyword_search @ -{
"query": "repo:^github.com/sg-evals/bazel--8.0.0$ \"class RuleFunction\" file:src/main/java/com/google/devtools/build/lib/packages"
}{
"content": "{\"text\":\"No results.\\n\\nNo results found.\"}",
"structuredContent": {
"text": "No results.\n\nNo results found."
}
}mcp__sourcegraph__sg_keyword_search @ -{
"query": "repo:^github.com/sg-evals/bazel--8.0.0$ \"macro(\" file:src/main/java/com/google/devtools/build/lib/packages/StarlarkGlobals.java"
}{
"content": "{\"text\":\"No results.\\n\\nNo results found.\"}",
"structuredContent": {
"text": "No results.\n\nNo results found."
}
}mcp__sourcegraph__sg_keyword_search @ -{
"query": "repo:^github.com/sg-evals/bazel--8.0.0$ \"BazelStarlarkEnvironment\" file:src/main/java/com/google/devtools/build/lib/packages"
}{
"content": "{\"text\":\"# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/RuleClassProvider.java\\n62: */\\n63: BazelStarlarkEnvironment getBazelStarlarkEnvironment();\\n64: \\n65: \\n59: /**\\n60: * Returns the {@link BazelStarlarkEnvironment}, which is the final determiner of the BUILD and\\n61: * .bzl environment (with and without builtins injection).\\n62: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/BazelStarlarkEnvironment.java\\n119: */\\n120: public BazelStarlarkEnvironment(\\n121: StarlarkGlobals starlarkGlobals,\\n122: \\n58: */\\n59: public final class BazelStarlarkEnvironment {\\n60: \\n61: \\n103: /**\\n104: * Constructs a new {@code BazelStarlarkEnvironment} that will have complete knowledge of the\\n105: * proper Starlark symbols available in each context, with and without injection.\\n106: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/StarlarkGlobals.java\\n25: * starting point for defining the minimum Starlark environments that Bazel supports for BUILD\\n26: * files, .bzl files, etc. See {@link BazelStarlarkEnvironment} for the final determination of the\\n27: * environment after accounting for registered symbols and builtins injection.\\n28: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java\\n85: this.starlarkSemantics = starlarkSemantics;\\n86: this.starlarkGlobals = ruleClassProvider.getBazelStarlarkEnvironment().getStarlarkGlobals();\\n87: this.workspaceFunctions =\\n88: \\n303: // TODO(b/280446865): Ideally the WORKSPACE environment would be determined by a method in\\n304: // BazelStarlarkEnvironment. The method would accept the values of `__embedded_dir__`, etc., as\\n305: // arguments, and defer to StarlarkGlobals to get the fixed environment (COMMON, select(), etc.).\\n306: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/AutoloadSymbols.java\\n175: ImmutableMap<String, Object> originalBuildBzlEnv =\\n176: ruleClassProvider.getBazelStarlarkEnvironment().getUninjectedBuildBzlEnv();\\n177: \\n178: \\n110: ImmutableMap<String, Object> originalBuildBzlEnv =\\n111: ruleClassProvider.getBazelStarlarkEnvironment().getUninjectedBuildBzlEnv();\\n112: this.uninjectedBuildBzlEnvWithAutoloads = originalBuildBzlEnv;\\n113: \\n86: \\n87: // The environment formed by taking BazelStarlarkEnvironment's bzl environment and adding/removing\\n88: // autoloaded symbols. The values of any added symbols are set to None (i.e. not actually loaded).\\n89: \\n\"}",
"structuredContent": {
"text": "# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/RuleClassProvider.java\n62: */\n63: BazelStarlarkEnvironment getBazelStarlarkEnvironment();\n64: \n65: \n59: /**\n60: * Returns the {@link BazelStarlarkEnvironment}, which is the final determiner of the BUILD and\n61: * .bzl environment (with and without builtins injection).\n62: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/BazelStarlarkEnvironment.java\n119: */\n120: public BazelStarlarkEnvironment(\n121: StarlarkGlobals starlarkGlobals,\n122: \n58: */\n59: public final class BazelStarlarkEnvironment {\n60: \n61: \n103: /**\n104: * Constructs a new {@code BazelStarlarkEnvironment} that will have complete knowledge of the\n105: * proper Starlark symbols available in each context, with and without injection.\n106: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/StarlarkGlobals.java\n25: * starting point for defining the minimum Starlark environments that Bazel supports for BUILD\n26: * files, .bzl files, etc. See {@link BazelStarlarkEnvironment} for the final determinat
...mcp__sourcegraph__sg_read_file @ -{
"repo": "github.com/sg-evals/bazel--8.0.0",
"path": "src/main/java/com/google/devtools/build/lib/packages/RuleFunction.java"
}{
"content": "{\"text\":\"URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/com/google/devtools/build/lib/packages/RuleFunction.java\\n1: // Copyright 2017 The Bazel Authors. All rights reserved.\\n2: //\\n3: // Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n4: // you may not use this file except in compliance with the License.\\n5: // You may obtain a copy of the License at\\n6: //\\n7: // http://www.apache.org/licenses/LICENSE-2.0\\n8: //\\n9: // Unless required by applicable law or agreed to in writing, software\\n10: // distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n12: // See the License for the specific language governing permissions and\\n13: // limitations under the License.\\n14: \\n15: package com.google.devtools.build.lib.packages;\\n16: \\n17: import com.google.devtools.build.lib.starlarkbuildapi.RuleFunctionApi;\\n18: \\n19: /** Interface for a native or Starlark rule function. */\\n20: // Ideally, this interface should be merged with RuleFunctionApi, but that would cause a circular\\n21: // dependency between packages and starlarkbuildapi.\\n22: public interface RuleFunction extends RuleFunctionApi {\\n23: RuleClass getRuleClass();\\n24: }\\n25: \"}",
"structuredContent": {
"text": "URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/com/google/devtools/build/lib/packages/RuleFunction.java\n1: // Copyright 2017 The Bazel Authors. All rights reserved.\n2: //\n3: // Licensed under the Apache License, Version 2.0 (the \"License\");\n4: // you may not use this file except in compliance with the License.\n5: // You may obtain a copy of the License at\n6: //\n7: // http://www.apache.org/licenses/LICENSE-2.0\n8: //\n9: // Unless required by applicable law or agreed to in writing, software\n10: // distributed under the License is distributed on an \"AS IS\" BASIS,\n11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n12: // See the License for the specific language governing permissions and\n13: // limitations under the License.\n14: \n15: package com.google.devtools.build.lib.packages;\n16: \n17: import com.google.devtools.build.lib.starlarkbuildapi.RuleFunctionApi;\n18: \n19: /** Interface for a native or Starlark rule function. */\n20: // Ideally, this interface should be merged with RuleFunctionApi, but that would cause a circular\n21: // dependency between packages and starlarkbuildapi.\n22: public interface RuleFunction extends RuleFunctionApi {\n23: RuleClass getRuleClass();\n24: }\n25: "
}
}mcp__sourcegraph__sg_keyword_search @ -{
"query": "repo:^github.com/sg-evals/bazel--8.0.0$ \"rule(\" StarlarkMethod file:src/main/java/com/google/devtools/build/lib/packages"
}{
"content": "{\"text\":\"# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/StarlarkNativeModule.java\\n430: @Override\\n431: public Object existingRule(String name, StarlarkThread thread) throws EvalException {\\n432: if (thread.getThreadLocal(ExistingRulesShouldBeNoOp.class) != null) {\\n433: \\n153: @Override\\n154: @StarlarkMethod(\\n155: name = \\\"get\\\",\\n156: \\n168: \\n169: @StarlarkMethod(\\n170: name = \\\"keys\\\",\\n171: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/SelectorList.java\\n43: * <pre>\\n44: * rule(\\n45: * name = 'myrule',\\n46: \\n236: \\n237: @StarlarkMethod(\\n238: name = \\\"select\\\",\\n239: \\n29: import net.starlark.java.annot.StarlarkBuiltin;\\n30: import net.starlark.java.annot.StarlarkMethod;\\n31: import net.starlark.java.eval.Dict;\\n32: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java\\n57: * entry to {@link BuildLanguageOptions}, then specify the identifier in {@link\\n58: * net.starlark.java.annot.StarlarkMethod#enableOnlyWithFlag} or {@link\\n59: * net.starlark.java.annot.StarlarkMethod#disableWithFlag}.\\n60: * </ul>\\n61: \\n781: + \\\" attr.dormant_label(), attr.dormant_label_list() and\\\"\\n782: + \\\" rule(for_dependency_resolution=) are allowed.\\\")\\n783: public boolean experimentalDormantDeps;\\n784: \\n54: * to update this when flipping a flag's default value.\\n55: * <li>Boolean semantic flags can toggle StarlarkMethod-annotated Java methods (or their\\n56: * parameters) on or off, making them selectively invisible to Starlark. To do this, add a new\\n57: \\n\"}",
"structuredContent": {
"text": "# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/StarlarkNativeModule.java\n430: @Override\n431: public Object existingRule(String name, StarlarkThread thread) throws EvalException {\n432: if (thread.getThreadLocal(ExistingRulesShouldBeNoOp.class) != null) {\n433: \n153: @Override\n154: @StarlarkMethod(\n155: name = \"get\",\n156: \n168: \n169: @StarlarkMethod(\n170: name = \"keys\",\n171: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/SelectorList.java\n43: * <pre>\n44: * rule(\n45: * name = 'myrule',\n46: \n236: \n237: @StarlarkMethod(\n238: name = \"select\",\n239: \n29: import net.starlark.java.annot.StarlarkBuiltin;\n30: import net.starlark.java.annot.StarlarkMethod;\n31: import net.starlark.java.eval.Dict;\n32: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java\n57: * entry to {@link BuildLanguageOptions}, then specify the identifier in {@link\n58: * net.starlark.java.annot.StarlarkMethod#enableOnlyWithFlag} or {@link\n59: * net.starlark.java.annot.StarlarkMethod#disableWithFlag}.\n60: * </ul>\n61: \n781: + \" attr.dormant_label(), attr.dormant_label_list() and\"\n782: + \" rule(for_dependency_resolution=) are allowed.\")\n783: public boolean experimentalDormantDeps;\n784: \n54: * to update this when flipping a flag's default value.\n55: * <li>Boolean semantic flags can toggle StarlarkMethod-annotated Java methods (or their\n56: * parameters) on or off, making them selectively invisible to Starlark. To do this, add a new\n57: \n"
}
}mcp__sourcegraph__sg_keyword_search @ -{
"query": "repo:^github.com/sg-evals/bazel--8.0.0$ \"macro(\" StarlarkMethod file:src/main/java/com/google/devtools/build/lib/packages"
}{
"content": "{\"text\":\"# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/StarlarkNativeModule.java\\n153: @Override\\n154: @StarlarkMethod(\\n155: name = \\\"get\\\",\\n156: \\n168: \\n169: @StarlarkMethod(\\n170: name = \\\"keys\\\",\\n171: \\n183: \\n184: @StarlarkMethod(\\n185: name = \\\"values\\\",\\n186: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java\\n57: * entry to {@link BuildLanguageOptions}, then specify the identifier in {@link\\n58: * net.starlark.java.annot.StarlarkMethod#enableOnlyWithFlag} or {@link\\n59: * net.starlark.java.annot.StarlarkMethod#disableWithFlag}.\\n60: * </ul>\\n61: \\n54: * to update this when flipping a flag's default value.\\n55: * <li>Boolean semantic flags can toggle StarlarkMethod-annotated Java methods (or their\\n56: * parameters) on or off, making them selectively invisible to Starlark. To do this, add a new\\n57: \\n243: effectTags = OptionEffectTag.BUILD_FILE_SEMANTICS,\\n244: help = \\\"If set to true, enables the `macro()` construct for defining symbolic macros.\\\")\\n245: public boolean experimentalEnableFirstClassMacros;\\n246: \\n\"}",
"structuredContent": {
"text": "# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/StarlarkNativeModule.java\n153: @Override\n154: @StarlarkMethod(\n155: name = \"get\",\n156: \n168: \n169: @StarlarkMethod(\n170: name = \"keys\",\n171: \n183: \n184: @StarlarkMethod(\n185: name = \"values\",\n186: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/semantics/BuildLanguageOptions.java\n57: * entry to {@link BuildLanguageOptions}, then specify the identifier in {@link\n58: * net.starlark.java.annot.StarlarkMethod#enableOnlyWithFlag} or {@link\n59: * net.starlark.java.annot.StarlarkMethod#disableWithFlag}.\n60: * </ul>\n61: \n54: * to update this when flipping a flag's default value.\n55: * <li>Boolean semantic flags can toggle StarlarkMethod-annotated Java methods (or their\n56: * parameters) on or off, making them selectively invisible to Starlark. To do this, add a new\n57: \n243: effectTags = OptionEffectTag.BUILD_FILE_SEMANTICS,\n244: help = \"If set to true, enables the `macro()` construct for defining symbolic macros.\")\n245: public boolean experimentalEnableFirstClassMacros;\n246: \n"
}
}mcp__sourcegraph__sg_keyword_search @ -{
"query": "repo:^github.com/sg-evals/bazel--8.0.0$ \"name = \\\"rule\\\"\" StarlarkMethod file:src/main/java"
}{
"content": "{\"text\":\"# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleContextApi.java\\n269: \\n270: @StarlarkMethod(\\n271: name = \\\"genfiles_dir\\\",\\n272: \\n141: \\n142: @StarlarkMethod(\\n143: name = \\\"actions\\\",\\n144: \\n147: \\n148: @StarlarkMethod(\\n149: name = \\\"super\\\",\\n150: \\n\\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java\\n65: \\n66: @StarlarkMethod(\\n67: name = \\\"provider\\\",\\n68: \\n200: \\n201: @StarlarkMethod(\\n202: name = \\\"macro\\\",\\n203: \\n427: \\n428: @StarlarkMethod(\\n429: name = \\\"rule\\\",\\n430: doc =\\n431: \\n\"}",
"structuredContent": {
"text": "# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleContextApi.java\n269: \n270: @StarlarkMethod(\n271: name = \"genfiles_dir\",\n272: \n141: \n142: @StarlarkMethod(\n143: name = \"actions\",\n144: \n147: \n148: @StarlarkMethod(\n149: name = \"super\",\n150: \n\n# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java\n65: \n66: @StarlarkMethod(\n67: name = \"provider\",\n68: \n200: \n201: @StarlarkMethod(\n202: name = \"macro\",\n203: \n427: \n428: @StarlarkMethod(\n429: name = \"rule\",\n430: doc =\n431: \n"
}
}mcp__sourcegraph__sg_keyword_search @ -{
"query": "repo:^github.com/sg-evals/bazel--8.0.0$ \"name = \\\"macro\\\"\" StarlarkMethod file:src/main/java"
}{
"content": "{\"text\":\"# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java\\n65: \\n66: @StarlarkMethod(\\n67: name = \\\"provider\\\",\\n68: \\n200: \\n201: @StarlarkMethod(\\n202: name = \\\"macro\\\",\\n203: doc =\\n204: \\n427: \\n428: @StarlarkMethod(\\n429: name = \\\"rule\\\",\\n430: \\n\"}",
"structuredContent": {
"text": "# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java\n65: \n66: @StarlarkMethod(\n67: name = \"provider\",\n68: \n200: \n201: @StarlarkMethod(\n202: name = \"macro\",\n203: doc =\n204: \n427: \n428: @StarlarkMethod(\n429: name = \"rule\",\n430: \n"
}
}mcp__sourcegraph__sg_keyword_search @ -{
"query": "repo:^github.com/sg-evals/bazel--8.0.0$ \"implements StarlarkRuleFunctionsApi\" file:src/main/java"
}{
"content": "{\"text\":\"# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java\\n145: /** A helper class to provide an easier API for Starlark rule definitions. */\\n146: public class StarlarkRuleClassFunctions implements StarlarkRuleFunctionsApi {\\n147: \\n148: \\n\"}",
"structuredContent": {
"text": "# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java\n145: /** A helper class to provide an easier API for Starlark rule definitions. */\n146: public class StarlarkRuleClassFunctions implements StarlarkRuleFunctionsApi {\n147: \n148: \n"
}
}mcp__sourcegraph__sg_keyword_search @ -{
"query": "repo:^github.com/sg-evals/bazel--8.0.0$ \"class BzlInitThreadContext\" file:src/main/java/com/google/devtools/build/lib/packages"
}{
"content": "{\"text\":\"# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/BzlInitThreadContext.java\\n33: */\\n34: public final class BzlInitThreadContext extends StarlarkThreadContext\\n35: implements RuleDefinitionEnvironment {\\n36: \\n\"}",
"structuredContent": {
"text": "# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/packages/BzlInitThreadContext.java\n33: */\n34: public final class BzlInitThreadContext extends StarlarkThreadContext\n35: implements RuleDefinitionEnvironment {\n36: \n"
}
}mcp__sourcegraph__sg_read_file @ -{
"repo": "github.com/sg-evals/bazel--8.0.0",
"path": "src/main/java/net/starlark/java/eval/StarlarkThread.java",
"startLine": 1,
"endLine": 80
}{
"content": "{\"text\":\"URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/net/starlark/java/eval/StarlarkThread.java%3FL1-80\\n1: // Copyright 2014 The Bazel Authors. All rights reserved.\\n2: //\\n3: // Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n4: // you may not use this file except in compliance with the License.\\n5: // You may obtain a copy of the License at\\n6: //\\n7: // http://www.apache.org/licenses/LICENSE-2.0\\n8: //\\n9: // Unless required by applicable law or agreed to in writing, software\\n10: // distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n12: // See the License for the specific language governing permissions and\\n13: // limitations under the License.\\n14: \\n15: package net.starlark.java.eval;\\n16: \\n17: import com.google.common.base.Preconditions;\\n18: import com.google.common.collect.ImmutableList;\\n19: import com.google.common.collect.ImmutableMap;\\n20: import java.util.ArrayList;\\n21: import java.util.HashMap;\\n22: import java.util.Map;\\n23: import java.util.concurrent.atomic.AtomicInteger;\\n24: import javax.annotation.Nullable;\\n25: import javax.annotation.concurrent.Immutable;\\n26: import net.starlark.java.syntax.Location;\\n27: \\n28: /**\\n29: * An StarlarkThread represents a Starlark thread.\\n30: *\\n31: * <p>It holds the stack of active Starlark and built-in function calls. In addition, it may hold\\n32: * per-thread application state (see {@link #setThreadLocal}) that passes through Starlark functions\\n33: * but does not directly affect them, such as information about the BUILD file being loaded.\\n34: *\\n35: * <p>StarlarkThreads are not thread-safe: they should be confined to a single Java thread.\\n36: *\\n37: * <p>Every StarlarkThread has an associated {@link Mutability}, which should be created for that\\n38: * thread, and closed once the thread's work is done. (A try-with-resources statement is handy for\\n39: * this purpose.) Starlark values created by the thread are associated with the thread's Mutability,\\n40: * so that when the Mutability is closed at the end of the computation, all the values created by\\n41: * the thread become frozen. This pattern ensures that all Starlark values are frozen before they\\n42: * are published to another thread, and thus that concurrently executing Starlark threads are free\\n43: * from data races. Once a thread's mutability is frozen, the thread is unlikely to be useful for\\n44: * further computation because it can no longer create mutable values. (This is occasionally\\n45: * valuable in tests.)\\n46: */\\n47: public final class StarlarkThread {\\n48: \\n49: /** The mutability of values created by this thread. */\\n50: private final Mutability mutability;\\n51: \\n52: // profiler state\\n53: //\\n54: // The profiler field (and savedThread) are set when we first observe during a\\n55: // push (function call entry) that the profiler is active. They are unset\\n56: // not in the corresponding pop, but when the last frame is popped, because\\n57: // the profiler session might start in the middle of a call and/or run beyond\\n58: // the lifetime of this thread.\\n59: final AtomicInteger cpuTicks = new AtomicInteger();\\n60: @Nullable private CpuProfiler profiler;\\n61: private StarlarkThread savedThread; // saved StarlarkThread, when profiling reentrant evaluation\\n62: \\n63: private final Map<Class<?>, Object> threadLocals = new HashMap<>();\\n64: \\n65: private final SymbolGenerator<?> symbolGenerator;\\n66: \\n67: private boolean interruptible = true;\\n68: \\n69: long steps; // count of logical computation steps executed so far\\n70: long stepLimit = Long.MAX_VALUE; // limit on logical computation steps\\n71: \\n72: /**\\n73: * Returns the number of Starlark
...mcp__sourcegraph__sg_read_file @ -{
"repo": "github.com/sg-evals/bazel--8.0.0",
"path": "src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java",
"startLine": 1,
"endLine": 100
}{
"content": "{\"text\":\"URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java%3FL1-100\\n1: // Copyright 2014 The Bazel Authors. All rights reserved.\\n2: //\\n3: // Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n4: // you may not use this file except in compliance with the License.\\n5: // You may obtain a copy of the License at\\n6: //\\n7: // http://www.apache.org/licenses/LICENSE-2.0\\n8: //\\n9: // Unless required by applicable law or agreed to in writing, software\\n10: // distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n12: // See the License for the specific language governing permissions and\\n13: // limitations under the License.\\n14: \\n15: package com.google.devtools.build.lib.packages;\\n16: \\n17: import com.google.common.annotations.VisibleForTesting;\\n18: import com.google.common.base.Preconditions;\\n19: import com.google.common.collect.ImmutableList;\\n20: import com.google.common.collect.ImmutableMap;\\n21: import com.google.common.flogger.GoogleLogger;\\n22: import com.google.devtools.build.lib.actions.ThreadStateReceiver;\\n23: import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;\\n24: import com.google.devtools.build.lib.cmdline.IgnoredSubdirectories;\\n25: import com.google.devtools.build.lib.cmdline.PackageIdentifier;\\n26: import com.google.devtools.build.lib.cmdline.RepositoryMapping;\\n27: import com.google.devtools.build.lib.concurrent.NamedForkJoinPool;\\n28: import com.google.devtools.build.lib.events.Event;\\n29: import com.google.devtools.build.lib.events.ExtendedEventHandler;\\n30: import com.google.devtools.build.lib.packages.Globber.BadGlobException;\\n31: import com.google.devtools.build.lib.packages.Package.Builder.PackageSettings;\\n32: import com.google.devtools.build.lib.packages.Package.ConfigSettingVisibilityPolicy;\\n33: import com.google.devtools.build.lib.packages.PackageValidator.InvalidPackageException;\\n34: import com.google.devtools.build.lib.packages.WorkspaceFileValue.WorkspaceFileKey;\\n35: import com.google.devtools.build.lib.packages.semantics.BuildLanguageOptions;\\n36: import com.google.devtools.build.lib.profiler.Profiler;\\n37: import com.google.devtools.build.lib.profiler.ProfilerTask;\\n38: import com.google.devtools.build.lib.server.FailureDetails.FailureDetail;\\n39: import com.google.devtools.build.lib.server.FailureDetails.PackageLoading;\\n40: import com.google.devtools.build.lib.server.FailureDetails.PackageLoading.Code;\\n41: import com.google.devtools.build.lib.util.DetailedExitCode;\\n42: import com.google.devtools.build.lib.vfs.FileSystem;\\n43: import com.google.devtools.build.lib.vfs.Path;\\n44: import com.google.devtools.build.lib.vfs.RootedPath;\\n45: import com.google.devtools.build.lib.vfs.SyscallCache;\\n46: import com.google.errorprone.annotations.CanIgnoreReturnValue;\\n47: import java.util.Collection;\\n48: import java.util.Map;\\n49: import java.util.Optional;\\n50: import java.util.concurrent.ForkJoinPool;\\n51: import java.util.concurrent.Semaphore;\\n52: import javax.annotation.Nullable;\\n53: import net.starlark.java.eval.EvalException;\\n54: import net.starlark.java.eval.Module;\\n55: import net.starlark.java.eval.Mutability;\\n56: import net.starlark.java.eval.Starlark;\\n57: import net.starlark.java.eval.StarlarkCallable;\\n58: import net.starlark.java.eval.StarlarkFunction;\\n59: import net.starlark.java.eval.StarlarkSemantics;\\n60: import net.starlark.java.eval.StarlarkThread;\\n61: import net.starlark.java.syntax.Argument;\\n62: import net.starlark.java.syntax.CallExpression;\\n63: import net.starlark.java.syntax.Expression;\\n64: import net.starlark.java.syntax.Identifier;\\n65: import net.starlark.java.syntax.IntLiteral;\\n66: import net.starla
...mcp__sourcegraph__sg_read_file @ -{
"repo": "github.com/sg-evals/bazel--8.0.0",
"path": "src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java",
"startLine": 1,
"endLine": 120
}{
"content": "{\"text\":\"URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java%3FL1-120\\n1: // Copyright 2014 The Bazel Authors. All rights reserved.\\n2: //\\n3: // Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n4: // you may not use this file except in compliance with the License.\\n5: // You may obtain a copy of the License at\\n6: //\\n7: // http://www.apache.org/licenses/LICENSE-2.0\\n8: //\\n9: // Unless required by applicable law or agreed to in writing, software\\n10: // distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n12: // See the License for the specific language governing permissions and\\n13: // limitations under the License.\\n14: package com.google.devtools.build.lib.skyframe;\\n15: \\n16: import com.github.benmanes.caffeine.cache.Cache;\\n17: import com.github.benmanes.caffeine.cache.Caffeine;\\n18: import com.google.common.annotations.VisibleForTesting;\\n19: import com.google.common.base.Preconditions;\\n20: import com.google.common.base.Predicates;\\n21: import com.google.common.collect.ImmutableList;\\n22: import com.google.common.collect.ImmutableMap;\\n23: import com.google.common.collect.Lists;\\n24: import com.google.common.collect.Maps;\\n25: import com.google.common.flogger.GoogleLogger;\\n26: import com.google.common.hash.HashFunction;\\n27: import com.google.devtools.build.lib.analysis.BlazeDirectories;\\n28: import com.google.devtools.build.lib.cmdline.BazelModuleContext;\\n29: import com.google.devtools.build.lib.cmdline.Label;\\n30: import com.google.devtools.build.lib.cmdline.Label.PackageContext;\\n31: import com.google.devtools.build.lib.cmdline.LabelConstants;\\n32: import com.google.devtools.build.lib.cmdline.LabelSyntaxException;\\n33: import com.google.devtools.build.lib.cmdline.PackageIdentifier;\\n34: import com.google.devtools.build.lib.cmdline.RepositoryMapping;\\n35: import com.google.devtools.build.lib.cmdline.RepositoryName;\\n36: import com.google.devtools.build.lib.concurrent.BlazeInterners;\\n37: import com.google.devtools.build.lib.events.Event;\\n38: import com.google.devtools.build.lib.events.EventHandler;\\n39: import com.google.devtools.build.lib.events.EventKind;\\n40: import com.google.devtools.build.lib.events.ExtendedEventHandler;\\n41: import com.google.devtools.build.lib.io.InconsistentFilesystemException;\\n42: import com.google.devtools.build.lib.packages.AutoloadSymbols;\\n43: import com.google.devtools.build.lib.packages.BazelStarlarkEnvironment;\\n44: import com.google.devtools.build.lib.packages.BuildFileNotFoundException;\\n45: import com.google.devtools.build.lib.packages.BzlInitThreadContext;\\n46: import com.google.devtools.build.lib.packages.BzlVisibility;\\n47: import com.google.devtools.build.lib.packages.RuleClassProvider;\\n48: import com.google.devtools.build.lib.packages.StarlarkExportable;\\n49: import com.google.devtools.build.lib.packages.WorkspaceFileValue;\\n50: import com.google.devtools.build.lib.packages.semantics.BuildLanguageOptions;\\n51: import com.google.devtools.build.lib.server.FailureDetails.StarlarkLoading.Code;\\n52: import com.google.devtools.build.lib.skyframe.StarlarkBuiltinsFunction.BuiltinsFailedException;\\n53: import com.google.devtools.build.lib.util.DetailedExitCode;\\n54: import com.google.devtools.build.lib.util.Fingerprint;\\n55: import com.google.devtools.build.lib.util.Pair;\\n56: import com.google.devtools.build.lib.vfs.PathFragment;\\n57: import com.google.devtools.build.lib.vfs.Root;\\n58: import com.google.devtools.build.skyframe.RecordingSkyFunctionEnvironment;\\n59: import com.google.devtools.build.skyframe.SkyFunction;\\n60: import com.google.devtools.build.skyframe.SkyFunctionException;\\n61: import com.google.devtools.build.skyframe.SkyFuncti
...mcp__sourcegraph__sg_read_file @ -{
"repo": "github.com/sg-evals/bazel--8.0.0",
"path": "src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java",
"startLine": 1,
"endLine": 100
}{
"content": "{\"text\":\"URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java%3FL1-100\\n1: // Copyright 2014 The Bazel Authors. All rights reserved.\\n2: //\\n3: // Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n4: // you may not use this file except in compliance with the License.\\n5: // You may obtain a copy of the License at\\n6: //\\n7: // http://www.apache.org/licenses/LICENSE-2.0\\n8: //\\n9: // Unless required by applicable law or agreed to in writing, software\\n10: // distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n12: // See the License for the specific language governing permissions and\\n13: // limitations under the License.\\n14: \\n15: package com.google.devtools.build.lib.analysis.starlark;\\n16: \\n17: import static com.google.common.base.Preconditions.checkArgument;\\n18: import static com.google.common.base.Preconditions.checkState;\\n19: import static com.google.common.collect.ImmutableList.toImmutableList;\\n20: import static com.google.devtools.build.lib.analysis.BaseRuleClasses.RUN_UNDER_EXEC_CONFIG;\\n21: import static com.google.devtools.build.lib.analysis.BaseRuleClasses.RUN_UNDER_TARGET_CONFIG;\\n22: import static com.google.devtools.build.lib.analysis.BaseRuleClasses.TIMEOUT_DEFAULT;\\n23: import static com.google.devtools.build.lib.analysis.BaseRuleClasses.getTestRuntimeLabelList;\\n24: import static com.google.devtools.build.lib.analysis.test.ExecutionInfo.DEFAULT_TEST_RUNNER_EXEC_GROUP;\\n25: import static com.google.devtools.build.lib.packages.Attribute.attr;\\n26: import static com.google.devtools.build.lib.packages.BuildType.LABEL;\\n27: import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;\\n28: import static com.google.devtools.build.lib.packages.BuildType.LICENSE;\\n29: import static com.google.devtools.build.lib.packages.BuiltinRestriction.allowlistEntry;\\n30: import static com.google.devtools.build.lib.packages.Type.BOOLEAN;\\n31: import static com.google.devtools.build.lib.packages.Type.INTEGER;\\n32: import static com.google.devtools.build.lib.packages.Type.STRING;\\n33: import static com.google.devtools.build.lib.packages.Types.STRING_LIST;\\n34: import static java.util.Objects.requireNonNull;\\n35: \\n36: import com.github.benmanes.caffeine.cache.Caffeine;\\n37: import com.github.benmanes.caffeine.cache.LoadingCache;\\n38: import com.google.common.collect.ImmutableList;\\n39: import com.google.common.collect.ImmutableMap;\\n40: import com.google.common.collect.ImmutableSet;\\n41: import com.google.common.collect.Maps;\\n42: import com.google.devtools.build.lib.analysis.Allowlist;\\n43: import com.google.devtools.build.lib.analysis.BaseRuleClasses;\\n44: import com.google.devtools.build.lib.analysis.DormantDependency;\\n45: import com.google.devtools.build.lib.analysis.PackageSpecificationProvider;\\n46: import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;\\n47: import com.google.devtools.build.lib.analysis.TemplateVariableInfo;\\n48: import com.google.devtools.build.lib.analysis.config.ExecutionTransitionFactory;\\n49: import com.google.devtools.build.lib.analysis.config.StarlarkDefinedConfigTransition;\\n50: import com.google.devtools.build.lib.analysis.config.ToolchainTypeRequirement;\\n51: import com.google.devtools.build.lib.analysis.config.transitions.ComposingTransitionFactory;\\n52: import com.google.devtools.build.lib.analysis.config.transitions.NoTransition;\\n53: import com.google.devtools.build.lib.analysis.config.transitions.StarlarkExposedRuleTransitionFactory;\\n54: import com.google.devtools.build.lib.analysis.config.transitions.TransitionFactory;\\n55: import com.google.devtools.build.lib.analysis.config.transitions.TransitionFactory.Tra
...mcp__sourcegraph__sg_read_file @ -{
"repo": "github.com/sg-evals/bazel--8.0.0",
"path": "src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java",
"startLine": 140,
"endLine": 250
}{
"content": "{\"text\":\"URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java%3FL140-250\\n140: import net.starlark.java.eval.SymbolGenerator.Symbol;\\n141: import net.starlark.java.eval.Tuple;\\n142: import net.starlark.java.syntax.Identifier;\\n143: import net.starlark.java.syntax.Location;\\n144: \\n145: /** A helper class to provide an easier API for Starlark rule definitions. */\\n146: public class StarlarkRuleClassFunctions implements StarlarkRuleFunctionsApi {\\n147: \\n148: // A cache for base rule classes (especially tests).\\n149: private static final LoadingCache<String, Label> labelCache =\\n150: Caffeine.newBuilder().build(Label::parseCanonical);\\n151: \\n152: // TODO(bazel-team): Remove the code duplication (BaseRuleClasses and this class).\\n153: /** Parent rule class for non-executable non-test Starlark rules. */\\n154: public static final RuleClass baseRule =\\n155: BaseRuleClasses.commonCoreAndStarlarkAttributes(\\n156: new RuleClass.Builder(\\\"$base_rule\\\", RuleClassType.ABSTRACT, true)\\n157: .add(attr(\\\"expect_failure\\\", STRING)))\\n158: // TODO(skylark-team): Allow Starlark rules to extend native rules and remove duplication.\\n159: .add(\\n160: attr(\\\"toolchains\\\", LABEL_LIST)\\n161: .allowedFileTypes(FileTypeSet.NO_FILE)\\n162: .mandatoryProviders(ImmutableList.of(TemplateVariableInfo.PROVIDER.id()))\\n163: .dontCheckConstraints())\\n164: .add(attr(RuleClass.EXEC_PROPERTIES_ATTR, Types.STRING_DICT).value(ImmutableMap.of()))\\n165: .add(\\n166: attr(RuleClass.EXEC_COMPATIBLE_WITH_ATTR, BuildType.LABEL_LIST)\\n167: .allowedFileTypes()\\n168: .nonconfigurable(\\\"Used in toolchain resolution\\\")\\n169: .tool(\\n170: \\\"exec_compatible_with exists for constraint checking, not to create an\\\"\\n171: + \\\" actual dependency\\\")\\n172: .value(ImmutableList.of()))\\n173: .add(\\n174: attr(RuleClass.TARGET_COMPATIBLE_WITH_ATTR, LABEL_LIST)\\n175: .mandatoryProviders(ConstraintValueInfo.PROVIDER.id())\\n176: // This should be configurable to allow for complex types of restrictions.\\n177: .tool(\\n178: \\\"target_compatible_with exists for constraint checking, not to create an\\\"\\n179: + \\\" actual dependency\\\")\\n180: .allowedFileTypes(FileTypeSet.NO_FILE))\\n181: .build();\\n182: \\n183: public static final RuleClass dependencyResolutionBaseRule =\\n184: new RuleClass.Builder(\\n185: \\\"$dependency_resolution_base_rule\\\", RuleClassType.ABSTRACT, true, baseRule)\\n186: .setDependencyResolutionRule()\\n187: .removeAttribute(\\\":action_listener\\\")\\n188: .removeAttribute(\\\"aspect_hints\\\")\\n189: .removeAttribute(\\\"toolchains\\\")\\n190: .removeAttribute(\\\"exec_compatible_with\\\")\\n191: .removeAttribute(\\\"target_compatible_with\\\")\\n192: .removeAttribute(\\\"compatible_with\\\")\\n193: .removeAttribute(\\\"restricted_to\\\")\\n194: .removeAttribute(\\\"$config_dependencies\\\")\\n195: .removeAttribute(\\\"package_metadata\\\")\\n196: .build();\\n197: \\n198: /** Parent rule class for executable non-test Starlark rules. */\\n199: private static final RuleClass binaryBaseRule =\\n200: new RuleClass.Builder(\\\"$binary_base_rule\\\", RuleClassType.ABSTRACT, true, baseRule)\\n201: .add(attr(\\\"args\\\", STRING_LIST))\\n202:
...mcp__sourcegraph__sg_read_file @ -{
"repo": "github.com/sg-evals/bazel--8.0.0",
"path": "src/main/java/com/google/devtools/build/lib/packages/Package.java",
"startLine": 1050,
"endLine": 1120
}{
"content": "{\"text\":\"URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/com/google/devtools/build/lib/packages/Package.java%3FL1050-1120\\n1050: .setLoads(ImmutableList.of());\\n1051: }\\n1052: \\n1053: // ==== Non-trivial nested classes ====\\n1054: \\n1055: /**\\n1056: * A builder for {@link Package} objects. Only intended to be used by {@link PackageFactory} and\\n1057: * {@link com.google.devtools.build.lib.skyframe.PackageFunction}.\\n1058: */\\n1059: public static class Builder extends TargetDefinitionContext {\\n1060: \\n1061: /**\\n1062: * A bundle of options affecting package construction, that is not specific to any particular\\n1063: * package.\\n1064: */\\n1065: public interface PackageSettings {\\n1066: /**\\n1067: * Returns whether or not extra detail should be added to {@link NoSuchTargetException}s\\n1068: * thrown from {@link #getTarget}. Useful for toning down verbosity in situations where it can\\n1069: * be less helpful.\\n1070: */\\n1071: // TODO(bazel-team): Arguably, this could be replaced by a boolean param to getTarget(), or\\n1072: // some separate action taken by the caller. But there's a lot of call sites that would need\\n1073: // updating.\\n1074: default boolean succinctTargetNotFoundErrors() {\\n1075: return false;\\n1076: }\\n1077: \\n1078: /**\\n1079: * Determines whether to precompute a list of transitively loaded starlark files while\\n1080: * building packages.\\n1081: *\\n1082: * <p>Typically, direct loads are stored as a {@code ImmutableList<Module>}. This is\\n1083: * sufficient to reconstruct the full load graph by recursively traversing {@link\\n1084: * BazelModuleContext#loads}. If the package is going to be serialized, however, it may make\\n1085: * more sense to precompute a flat list containing the labels of all transitively loaded bzl\\n1086: * files since {@link Module} is costly to serialize.\\n1087: *\\n1088: * <p>If this returns {@code true}, transitive loads are stored as an {@code\\n1089: * ImmutableList<Label>} and direct loads are not stored.\\n1090: */\\n1091: default boolean precomputeTransitiveLoads() {\\n1092: return false;\\n1093: }\\n1094: \\n1095: PackageSettings DEFAULTS = new PackageSettings() {};\\n1096: }\\n1097: \\n1098: private final boolean precomputeTransitiveLoads;\\n1099: private final boolean noImplicitFileExport;\\n1100: \\n1101: // The map from each repository to that repository's remappings map.\\n1102: // This is only used in the //external package, it is an empty map for all other packages.\\n1103: private final HashMap<RepositoryName, HashMap<String, RepositoryName>>\\n1104: externalPackageRepositoryMappings = new HashMap<>();\\n1105: \\n1106: /** Estimates the package overhead of this package. */\\n1107: private final PackageOverheadEstimator packageOverheadEstimator;\\n1108: \\n1109: // A package's FailureDetail field derives from the events on its Builder's event handler.\\n1110: // During package deserialization, those events are unavailable, because those events aren't\\n1111: // serialized [*]. Its FailureDetail value is serialized, however. During deserialization, that\\n1112: // value is assigned here, so that it can be assigned to the deserialized package.\\n1113: //\\n1114: // Likewise, during workspace part assembly, errors from parent parts should propagate to their\\n1115: // children.\\n1116: //\\n1117: // [*] Not in the context of the package, anyway. Skyframe values containing a package may\\n1118: // serialize events emitted during its construction/evaluation.\\n1119: @Nullable private FailureDetail failureDetailOverride = null;\\n1120
...mcp__sourcegraph__sg_read_file @ -{
"repo": "github.com/sg-evals/bazel--8.0.0",
"path": "src/main/java/com/google/devtools/build/lib/packages/BazelStarlarkEnvironment.java",
"startLine": 1,
"endLine": 80
}{
"content": "{\"text\":\"URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/com/google/devtools/build/lib/packages/BazelStarlarkEnvironment.java%3FL1-80\\n1: // Copyright 2020 The Bazel Authors. All rights reserved.\\n2: //\\n3: // Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n4: // you may not use this file except in compliance with the License.\\n5: // You may obtain a copy of the License at\\n6: //\\n7: // http://www.apache.org/licenses/LICENSE-2.0\\n8: //\\n9: // Unless required by applicable law or agreed to in writing, software\\n10: // distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n12: // See the License for the specific language governing permissions and\\n13: // limitations under the License.\\n14: \\n15: package com.google.devtools.build.lib.packages;\\n16: \\n17: import com.google.common.base.Preconditions;\\n18: import com.google.common.collect.ImmutableMap;\\n19: import com.google.common.collect.Sets;\\n20: import java.util.HashMap;\\n21: import java.util.List;\\n22: import java.util.Map;\\n23: import java.util.Set;\\n24: import javax.annotation.Nullable;\\n25: import net.starlark.java.eval.GuardedValue;\\n26: import net.starlark.java.eval.Starlark;\\n27: \\n28: // TODO(adonovan): move skyframe.PackageFunction into lib.packages so we needn't expose this and\\n29: // the other env-building functions.\\n30: /**\\n31: * This class encapsulates knowledge of how to set up the Starlark environment for BUILD, WORKSPACE,\\n32: * and bzl file evaluation, including the top-level predeclared symbols, the {@code native} module,\\n33: * and the special environment for {@code @_builtins} bzl evaluation.\\n34: *\\n35: * <p>The set of available symbols is determined by\\n36: *\\n37: * <ol>\\n38: * <li>Gathering a fixed set of top-level symbols that are present in all versions of Bazel. This\\n39: * is handled by {@link StarlarkGlobals}.\\n40: * <li>Gathering additional toplevels and rules registered on the {@link\\n41: * ConfiguredRuleClassProvider}.\\n42: * <li>Applying builtins injection (see {@link StarlarkBuiltinsFunction}), if applicable.\\n43: * </ol>\\n44: *\\n45: * <p>The end result of (1) and (2) is constant for any given Bazel binary and is cached by an\\n46: * instance of this class upon construction. The final environment, which takes into account\\n47: * builtins injection, is obtained by calling methods on this class during Skyframe evaluation; the\\n48: * result is cached in {@link StarlarkBuiltinsValue}.\\n49: *\\n50: * <p>There are a few exceptions where this class is not the final word on the environment:\\n51: *\\n52: * <ul>\\n53: * <li>The WORKSPACE file's environment is setup with the help of {@link\\n54: * WorkspaceFactory#getDefaultEnvironment}.\\n55: * <li>If a prelude file is in use, its bindings are added to the ones this class specifies for\\n56: * BUILD files. This happens in {@link PackageFunction}.\\n57: * </ul>\\n58: */\\n59: public final class BazelStarlarkEnvironment {\\n60: \\n61: // TODO(#11954): Eventually the BUILD and WORKSPACE bzl dialects should converge. Right now they\\n62: // only differ on the \\\"native\\\" object.\\n63: \\n64: // All of the environments stored in these fields exclude the symbols in {@link\\n65: // Starlark#UNIVERSE}, which the interpreter adds automatically.\\n66: \\n67: // Constructor param, used in this class but also re-exported to clients.\\n68: private final StarlarkGlobals starlarkGlobals;\\n69: \\n70: // The following fields correspond to the constructor params of the same name. These include only\\n71: // the params that are needed by injection. See the constructor for javadoc.\\n72: private final ImmutableMap<String, ?> ruleFunctions;\\n73: private final Immutable
...mcp__sourcegraph__sg_read_file @ -{
"repo": "github.com/sg-evals/bazel--8.0.0",
"path": "src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java",
"startLine": 1,
"endLine": 80
}{
"content": "{\"text\":\"URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java%3FL1-80\\n1: // Copyright 2018 The Bazel Authors. All rights reserved.\\n2: //\\n3: // Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n4: // you may not use this file except in compliance with the License.\\n5: // You may obtain a copy of the License at\\n6: //\\n7: // http://www.apache.org/licenses/LICENSE-2.0\\n8: //\\n9: // Unless required by applicable law or agreed to in writing, software\\n10: // distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n12: // See the License for the specific language governing permissions and\\n13: // limitations under the License.\\n14: \\n15: package com.google.devtools.build.lib.starlarkbuildapi;\\n16: \\n17: import com.google.devtools.build.docgen.annot.GlobalMethods;\\n18: import com.google.devtools.build.docgen.annot.GlobalMethods.Environment;\\n19: import com.google.devtools.build.docgen.annot.StarlarkConstructor;\\n20: import com.google.devtools.build.lib.cmdline.Label;\\n21: import com.google.devtools.build.lib.packages.semantics.BuildLanguageOptions;\\n22: import com.google.devtools.build.lib.starlarkbuildapi.config.StarlarkConfigApi.BuildSettingApi;\\n23: import net.starlark.java.annot.Param;\\n24: import net.starlark.java.annot.ParamType;\\n25: import net.starlark.java.annot.StarlarkMethod;\\n26: import net.starlark.java.eval.Dict;\\n27: import net.starlark.java.eval.EvalException;\\n28: import net.starlark.java.eval.NoneType;\\n29: import net.starlark.java.eval.Sequence;\\n30: import net.starlark.java.eval.StarlarkCallable;\\n31: import net.starlark.java.eval.StarlarkFunction;\\n32: import net.starlark.java.eval.StarlarkThread;\\n33: \\n34: /**\\n35: * Interface for a global Starlark library containing rule-related helper and registration\\n36: * functions.\\n37: */\\n38: @GlobalMethods(environment = Environment.BZL)\\n39: public interface StarlarkRuleFunctionsApi {\\n40: \\n41: String EXEC_COMPATIBLE_WITH_PARAM = \\\"exec_compatible_with\\\";\\n42: String TOOLCHAINS_PARAM = \\\"toolchains\\\";\\n43: \\n44: String PROVIDES_DOC =\\n45: \\\"A list of providers that the implementation function must return.\\\" //\\n46: + \\\"<p>It is an error if the implementation function omits any of the types of providers\\\"\\n47: + \\\" listed here from its return value. However, the implementation function may return\\\"\\n48: + \\\" additional providers not listed here.\\\" //\\n49: + \\\"<p>Each element of the list is an <code>*Info</code> object returned by <a\\\"\\n50: + \\\" href='../globals/bzl.html#provider'><code>provider()</code></a>, except that a legacy\\\"\\n51: + \\\" provider is represented by its string name instead.When a target of the rule is used\\\"\\n52: + \\\" as a dependency for a target that declares a required provider, it is not necessary\\\"\\n53: + \\\" to specify that provider here. It is enough that the implementation function returns\\\"\\n54: + \\\" it. However, it is considered best practice to specify it, even though this is not\\\"\\n55: + \\\" required. The <a\\\"\\n56: + \\\" href='../globals/bzl.html#aspect.required_providers'><code>required_providers</code></a>\\\"\\n57: + \\\" field of an <a href='../globals/bzl.html#aspect'>aspect</a> does, however, require\\\"\\n58: + \\\" that providers are specified here.\\\";\\n59: \\n60: String DEPENDENCY_RESOLUTION_RULE_DOC =\\n61: \\\"If set, the rule can be a dependency through attributes also marked as available in\\\"\\n62: + \\\" materializers. Every attribute of rules with this flag set must
...mcp__sourcegraph__sg_read_file @ -{
"repo": "github.com/sg-evals/bazel--8.0.0",
"path": "src/main/java/com/google/devtools/build/lib/packages/MacroClass.java",
"startLine": 1,
"endLine": 80
}{
"content": "{\"text\":\"URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/com/google/devtools/build/lib/packages/MacroClass.java%3FL1-80\\n1: // Copyright 2024 The Bazel Authors. All rights reserved.\\n2: //\\n3: // Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n4: // you may not use this file except in compliance with the License.\\n5: // You may obtain a copy of the License at\\n6: //\\n7: // http://www.apache.org/licenses/LICENSE-2.0\\n8: //\\n9: // Unless required by applicable law or agreed to in writing, software\\n10: // distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n12: // See the License for the specific language governing permissions and\\n13: // limitations under the License.\\n14: \\n15: package com.google.devtools.build.lib.packages;\\n16: \\n17: import static com.google.common.collect.ImmutableList.toImmutableList;\\n18: import static com.google.devtools.build.lib.packages.BuildType.NODEP_LABEL_LIST;\\n19: \\n20: import com.google.common.base.Preconditions;\\n21: import com.google.common.collect.ImmutableList;\\n22: import com.google.common.collect.ImmutableMap;\\n23: import com.google.common.collect.ImmutableSet;\\n24: import com.google.common.collect.Lists;\\n25: import com.google.devtools.build.lib.cmdline.Label;\\n26: import com.google.devtools.build.lib.cmdline.PackageIdentifier;\\n27: import com.google.devtools.build.lib.events.Event;\\n28: import com.google.devtools.build.lib.packages.TargetRecorder.MacroFrame;\\n29: import com.google.devtools.build.lib.packages.TargetRecorder.NameConflictException;\\n30: import com.google.devtools.build.lib.server.FailureDetails.PackageLoading.Code;\\n31: import com.google.errorprone.annotations.CanIgnoreReturnValue;\\n32: import java.util.ArrayList;\\n33: import java.util.LinkedHashMap;\\n34: import java.util.List;\\n35: import java.util.Map;\\n36: import javax.annotation.Nullable;\\n37: import net.starlark.java.eval.EvalException;\\n38: import net.starlark.java.eval.Mutability;\\n39: import net.starlark.java.eval.Starlark;\\n40: import net.starlark.java.eval.StarlarkFunction;\\n41: import net.starlark.java.eval.StarlarkSemantics;\\n42: import net.starlark.java.eval.StarlarkThread;\\n43: import net.starlark.java.eval.SymbolGenerator;\\n44: import net.starlark.java.spelling.SpellChecker;\\n45: \\n46: /**\\n47: * Represents a symbolic macro, defined in a .bzl file, that may be instantiated during Package\\n48: * evaluation.\\n49: *\\n50: * <p>This is analogous to {@link RuleClass}. In essence, a {@code MacroClass} consists of the\\n51: * macro's schema and its implementation function.\\n52: */\\n53: public final class MacroClass {\\n54: \\n55: /**\\n56: * Names that users may not pass as keys of the {@code attrs} dict when calling {@code macro()}.\\n57: *\\n58: * <p>Of these, {@code name} is special cased as an actual attribute, and the rest do not exist.\\n59: */\\n60: // Keep in sync with `macro()`'s `attrs` user documentation in StarlarkRuleFunctionsApi.\\n61: // But we should avoid adding new entries here, since it's a backwards-incompatible change.\\n62: public static final ImmutableSet<String> RESERVED_MACRO_ATTR_NAMES =\\n63: ImmutableSet.of(\\\"name\\\", \\\"visibility\\\");\\n64: \\n65: /**\\n66: * \\\"visibility\\\" attribute present on all symbolic macros.\\n67: *\\n68: * <p>This is similar to the visibility attribute for rules, but lacks the exec transitions.\\n69: */\\n70: public static final Attribute VISIBILITY_ATTRIBUTE =\\n71: Attribute.attr(\\\"visibility\\\", NODEP_LABEL_LIST)\\n72: .orderIndependent()\\n73: .nonconfigurable(\\\"special attribute integrated more deeply into Bazel's core logic\\\")\\n74: .build();\\n75: \\n76: private final String name;\\
...mcp__sourcegraph__sg_read_file @ -{
"repo": "github.com/sg-evals/bazel--8.0.0",
"path": "src/main/java/com/google/devtools/build/lib/packages/BzlInitThreadContext.java",
"startLine": 1,
"endLine": 60
}{
"content": "{\"text\":\"URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/com/google/devtools/build/lib/packages/BzlInitThreadContext.java%3FL1-60\\n1: // Copyright 2022 The Bazel Authors. All rights reserved.\\n2: //\\n3: // Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n4: // you may not use this file except in compliance with the License.\\n5: // You may obtain a copy of the License at\\n6: //\\n7: // http://www.apache.org/licenses/LICENSE-2.0\\n8: //\\n9: // Unless required by applicable law or agreed to in writing, software\\n10: // distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n12: // See the License for the specific language governing permissions and\\n13: // limitations under the License.\\n14: \\n15: package com.google.devtools.build.lib.packages;\\n16: \\n17: import com.google.common.collect.ImmutableMap;\\n18: import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment;\\n19: import com.google.devtools.build.lib.cmdline.Label;\\n20: import com.google.devtools.build.lib.cmdline.RepositoryMapping;\\n21: import com.google.devtools.build.lib.cmdline.RepositoryName;\\n22: import com.google.devtools.build.lib.cmdline.StarlarkThreadContext;\\n23: import com.google.errorprone.annotations.CanIgnoreReturnValue;\\n24: import java.util.Optional;\\n25: import javax.annotation.Nullable;\\n26: import net.starlark.java.eval.EvalException;\\n27: import net.starlark.java.eval.Starlark;\\n28: import net.starlark.java.eval.StarlarkThread;\\n29: \\n30: /**\\n31: * Bazel application data for the Starlark thread that evaluates the top-level code in a .bzl (or\\n32: * .scl) module (i.e. when evaluating that module's global symbols).\\n33: */\\n34: public final class BzlInitThreadContext extends StarlarkThreadContext\\n35: implements RuleDefinitionEnvironment {\\n36: \\n37: private final Label bzlFile;\\n38: \\n39: /* Digest of the .bzl file being initialized along with all its transitive loads. */\\n40: private final byte[] transitiveDigest;\\n41: \\n42: // For storing the result of calling `visibility()`.\\n43: @Nullable private BzlVisibility bzlVisibility;\\n44: \\n45: private final RepositoryName toolsRepository;\\n46: \\n47: // TODO(b/192694287): Remove once we migrate all tests from the allowlist\\n48: private final Optional<Label> networkAllowlistForTests;\\n49: \\n50: // Used for `configuration_field`.\\n51: private final ImmutableMap<String, Class<?>> fragmentNameToClass;\\n52: \\n53: /**\\n54: * Constructs a new context for initializing a .bzl file.\\n55: *\\n56: * @param bzlFile the name of the .bzl being initialized\\n57: * @param transitiveDigest the hash of that file and its transitive load()s\\n58: * @param toolsRepository the name of the tools repository, such as \\\"@bazel_tools\\\"\\n59: * @param networkAllowlistForTests an allowlist for rule classes created by this thread\\n60: * @param fragmentNameToClass a map from configuration fragment name to configuration fragment\\n61: \"}",
"structuredContent": {
"text": "URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/com/google/devtools/build/lib/packages/BzlInitThreadContext.java%3FL1-60\n1: // Copyright 2022 The Bazel Authors. All rights reserved.\n2: //\n3: // Licensed under the Apache License, Version 2.0 (the \"License\");\n4: // you may not use this file except in compliance with the License.\n5: // You may obtain a copy of the License at\n6: //\n7: // http://www.apache.org/licenses/LICENSE-2.0\n8: //\n9: // Unless required by applicable law or agreed to in writing, software\n10: // distributed under the License is distributed on an \"AS IS\" BASIS,\n11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, eithe
...mcp__sourcegraph__sg_list_files @ -{
"repo": "github.com/sg-evals/bazel--8.0.0",
"path": "src/main/java/net/starlark/java"
}{
"content": "{\"text\":\"src/main/java/net/starlark/java/annot/\\nsrc/main/java/net/starlark/java/cmd/\\nsrc/main/java/net/starlark/java/eval/\\nsrc/main/java/net/starlark/java/lib/\\nsrc/main/java/net/starlark/java/spelling/\\nsrc/main/java/net/starlark/java/syntax/\\nsrc/main/java/net/starlark/java/BUILD\\n\"}",
"structuredContent": {
"text": "src/main/java/net/starlark/java/annot/\nsrc/main/java/net/starlark/java/cmd/\nsrc/main/java/net/starlark/java/eval/\nsrc/main/java/net/starlark/java/lib/\nsrc/main/java/net/starlark/java/spelling/\nsrc/main/java/net/starlark/java/syntax/\nsrc/main/java/net/starlark/java/BUILD\n"
}
}mcp__sourcegraph__sg_read_file @ -{
"repo": "github.com/sg-evals/bazel--8.0.0",
"path": "src/main/java/com/google/devtools/build/lib/packages/StarlarkGlobals.java",
"startLine": 1,
"endLine": 80
}{
"content": "{\"text\":\"URL: https://demo.sourcegraph.com/github.com/sg-evals/bazel--8.0.0@12f256c9dffb17d03d47b3f06bf34f67c976e4aa/-/blob/src/main/java/com/google/devtools/build/lib/packages/StarlarkGlobals.java%3FL1-80\\n1: // Copyright 2023 The Bazel Authors. All rights reserved.\\n2: //\\n3: // Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n4: // you may not use this file except in compliance with the License.\\n5: // You may obtain a copy of the License at\\n6: //\\n7: // http://www.apache.org/licenses/LICENSE-2.0\\n8: //\\n9: // Unless required by applicable law or agreed to in writing, software\\n10: // distributed under the License is distributed on an \\\"AS IS\\\" BASIS,\\n11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n12: // See the License for the specific language governing permissions and\\n13: // limitations under the License.\\n14: \\n15: package com.google.devtools.build.lib.packages;\\n16: \\n17: import com.google.common.collect.ImmutableMap;\\n18: \\n19: /**\\n20: * A library of the fixed Starlark environment for various contexts.\\n21: *\\n22: * <p>This is the source of truth for what symbols are available in what Starlark contexts (BUILD,\\n23: * .bzl, etc.), before considering how symbols may be added by registering them on the rule class\\n24: * provider, or how symbols may be substituted by builtins injection. In other words, this is the\\n25: * starting point for defining the minimum Starlark environments that Bazel supports for BUILD\\n26: * files, .bzl files, etc. See {@link BazelStarlarkEnvironment} for the final determination of the\\n27: * environment after accounting for registered symbols and builtins injection.\\n28: *\\n29: * <p>This is split between an interface in the lib/packages/ directory and an implementation in the\\n30: * lib/analysis/starlark/ directory, in order to avoid new dependency edges from lib/packages/ to\\n31: * lib/analysis/.\\n32: */\\n33: public interface StarlarkGlobals {\\n34: \\n35: /**\\n36: * Returns a simple environment containing a few general utility modules, {@code depset}, and\\n37: * {@code select()}.\\n38: *\\n39: * <p>In general, if you need a Bazel-y Starlark environment and don't know what to choose, prefer\\n40: * to use this one for uniformity with as many other contexts as possible.\\n41: */\\n42: ImmutableMap<String, Object> getUtilToplevels();\\n43: \\n44: /**\\n45: * Similar to {@link #getUtilToplevels} but without {@code select()} and with {@code struct}. Used\\n46: * for cquery.\\n47: */\\n48: // TODO(bazel-team): Consider whether we should replace usage of this with getUtilTopLevels(), at\\n49: // the cost of the cquery dialect changing slightly, for the sake of uniformity and fewer\\n50: // kinds of environments.\\n51: ImmutableMap<String, Object> getUtilToplevelsForCquery();\\n52: \\n53: /**\\n54: * Returns the fixed top-levels for BUILD files that also happen to be fields of {@code native}.\\n55: * This does not include any native rules.\\n56: */\\n57: ImmutableMap<String, Object> getFixedBuildFileToplevelsSharedWithNative();\\n58: \\n59: /** Returns the fixed top-levels for BUILD files that are *not* also fields of {@code native}. */\\n60: ImmutableMap<String, Object> getFixedBuildFileToplevelsNotInNative();\\n61: \\n62: /** Returns the fixed top-levels for .bzl files, excluding the {@code native} object. */\\n63: ImmutableMap<String, Object> getFixedBzlToplevels();\\n64: \\n65: /** Returns the top-levels for .scl files. */\\n66: ImmutableMap<String, Object> getSclToplevels();\\n67: \\n68: /** Returns the top-levels for MODULE.bazel files and their imports. */\\n69: ImmutableMap<String, Object> getModuleToplevels();\\n70: \\n71: /** Returns the top-levels for REPO.bazel files. */\\n72: ImmutableMap<String, Object> getRepoToplevels();\\n73: \\n74: /** Returns the top-levels for VENDOR.bazel f
...mcp__sourcegraph__sg_keyword_search @ -{
"query": "repo:^github.com/sg-evals/bazel--8.0.0$ \"implements StarlarkGlobals\" file:src/main/java"
}{
"content": "{\"text\":\"# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkGlobalsImpl.java\\n41: */\\n42: public final class StarlarkGlobalsImpl implements StarlarkGlobals {\\n43: \\n44: \\n\"}",
"structuredContent": {
"text": "# github.com/sg-evals/bazel--8.0.0 – src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkGlobalsImpl.java\n41: */\n42: public final class StarlarkGlobalsImpl implements StarlarkGlobals {\n43: \n44: \n"
}
}mcp__sourcegraph__sg_keyword_search @ -{
"query": "repo:^github.com/sg-evals/bazel--8.0.0$ \"class PackageThreadContext\" OR \"PackageBuildThreadContext\" file:src/main/java/com/google/devtools/build/lib/packages"
}{
"content": "{\"text\":\"No results.\\n\\nNo results found.\"}",
"structuredContent": {
"text": "No results.\n\nNo results found."
}
}Write @ -{
"file_path": "/workspace/answer.json",
"content": "{\n \"files\": [\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/net/starlark/java/eval/StarlarkThread.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/Package.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/MacroClass.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/RuleFunction.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/RuleClass.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/RuleFactory.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/BazelStarlarkEnvironment.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/StarlarkGlobals.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkGlobalsImpl.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/BzlInitThreadContext.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/StarlarkNativeModule.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/MacroInstance.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/BuildGlobals.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/cmdline/StarlarkThreadContext.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/net/starlark/java/eval/Starlark.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/net/starlark/java/eval/Module.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/net/starlark/java/eval/Eval.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/TargetDefinitionContext.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/skyframe/StarlarkBuiltinsFunction.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/AutoloadSymbols.java\"}\n ],\n \"symbols\": [\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/net/starlark/java/eval/StarlarkThread.java\", \"symbol\": \"StarlarkThread\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java\", \"symbol\": \"PackageFactory\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java\", \"symbol\": \"BzlLoadFunction\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleCl
...{
"type": "create",
"filePath": "/workspace/answer.json",
"content": "{\n \"files\": [\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/net/starlark/java/eval/StarlarkThread.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/Package.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/MacroClass.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/RuleFunction.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/RuleClass.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/RuleFactory.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/BazelStarlarkEnvironment.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/StarlarkGlobals.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkGlobalsImpl.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/BzlInitThreadContext.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/StarlarkNativeModule.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/MacroInstance.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/BuildGlobals.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/cmdline/StarlarkThreadContext.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/net/starlark/java/eval/Starlark.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/net/starlark/java/eval/Module.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/net/starlark/java/eval/Eval.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/TargetDefinitionContext.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/skyframe/StarlarkBuiltinsFunction.java\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/AutoloadSymbols.java\"}\n ],\n \"symbols\": [\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/net/starlark/java/eval/StarlarkThread.java\", \"symbol\": \"StarlarkThread\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java\", \"symbol\": \"PackageFactory\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java\", \"symbol\": \"BzlLoadFunction\"},\n {\"repo\": \"sg-evals/bazel--8.0.0\", \"path\": \"src/main/java/com/google/devtools/build/lib/analysis/star
.../workspace/answer.json{
"files": [
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/net/starlark/java/eval/StarlarkThread.java"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/packages/Package.java"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/packages/MacroClass.java"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/packages/RuleFunction.java"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/packages/RuleClass.java"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/packages/RuleFactory.java"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/packages/BazelStarlarkEnvironment.java"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/packages/StarlarkGlobals.java"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkGlobalsImpl.java"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/packages/BzlInitThreadContext.java"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/packages/StarlarkNativeModule.java"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/packages/MacroInstance.java"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/packages/BuildGlobals.java"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/cmdline/StarlarkThreadContext.java"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/net/starlark/java/eval/Starlark.java"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/net/starlark/java/eval/Module.java"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/net/starlark/java/eval/Eval.java"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/packages/TargetDefinitionContext.java"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/skyframe/StarlarkBuiltinsFunction.java"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/packages/AutoloadSymbols.java"}
],
"symbols": [
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/net/starlark/java/eval/StarlarkThread.java", "symbol": "StarlarkThread"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java", "symbol": "PackageFactory"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/skyframe/BzlLoadFunction.java", "symbol": "BzlLoadFunction"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java", "symbol": "StarlarkRuleClassFunctions"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/packages/Package.java", "symbol": "Package.Builder"},
{"repo": "sg-evals/bazel--8.0.0", "path": "src/main/java/com/google/devtools/build/lib/packages/MacroClass.java", "symbol": "M...No bash commands.