authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-10-24 04:55:08+02:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-10-24 04:55:08+02:00
logd9c4f16e44f35f8d2b7aa39eb6a8100f2a680e1b
treeeaaf74b2d3337f9638aa5e10da6cf67adacfde97
parent76af1bbc4de446a9669b257289c0de6d81634f4e
parentbe69013825f95293e0916a8a89a1fdcdba65b5d7

Merge pull request 'build system: avoid the possibility of infinite fetch-and-retry loops for lazy dependencies' (#37391) from squeek502/zig:maker-lazy-loops into master

Reviewed-on: https://codeberg.org/ziglang/zig/pulls/37391 Reviewed-by: Andrew Kelley <andrew@ziglang.org>

2 files changed, 8 insertions(+), 0 deletions(-)

lib/compiler/Maker.zig+4
......@@ -1485,6 +1485,10 @@ fn configure(graph: *Graph, options: ConfigureOptions) ConfigureError!ScannedCon
14851485 fatal("replacing {f}: {t}", .{ dependencies_zig_path, err });
14861486
14871487 deps_mod.root_path = try dependencies_zig_path.toString(arena);
1488
1489 if (config_man) |man| {
1490 man.hash.addBytes(&hex_digest);
1491 }
14881492 }
14891493
14901494 {
lib/std/Build.zig+4
......@@ -1959,6 +1959,8 @@ pub fn lazyDependency(b: *Build, name: []const u8, args: anytype) ?*Dependency {
19591959/// * `dependencyStep`
19601960pub fn declareDependency(b: *Build, name: []const u8) void {
19611961 const pkg_hash = findPkgHashOrFatal(b, name);
1962 const entry = package_map.get(pkg_hash).?;
1963 if (entry.available) return;
19621964 markNeededLazyDep(b, pkg_hash);
19631965}
19641966
......@@ -1972,6 +1974,8 @@ pub fn declareDependency(b: *Build, name: []const u8) void {
19721974pub fn declareDependencyStep(b: *Build, s: *Step, name: []const u8) void {
19731975 const graph = b.graph;
19741976 const pkg_hash = findPkgHashOrFatal(b, name);
1977 const entry = package_map.get(pkg_hash).?;
1978 if (entry.available) return;
19751979 const interned_hash = graph.wip_configuration.addString(pkg_hash) catch @panic("OOM");
19761980 s.unlazy_deps.put(graph.arena, interned_hash, {}) catch @panic("OOM");
19771981}