authorgravatar for johnnymarler@gmail.comJonathan Marler <johnnymarler@gmail.com> 2024-09-27 09:44:44-06:00
committergravatar for johnnymarler@gmail.comJonathan Marler <johnnymarler@gmail.com> 2024-09-27 09:44:44-06:00
loge0fdbfb705d1c8184eb3664e1d540f90031f7dd5
tree68e4be8bdcfff60135e8768a0d47e2ac91c7bf24
parent28189b0fa5be6b56d1d9961b4e432ac7c16a80de

build: make dependency cache hash map unmanaged

Allows Build.Graph to initialize dependency_cache with a default value.

2 files changed, 6 insertions(+), 7 deletions(-)

lib/compiler/build_runner.zig-1
...@@ -80,7 +80,6 @@ pub fn main() !void {...@@ -80,7 +80,6 @@ pub fn main() !void {
80 .query = .{},80 .query = .{},
81 .result = try std.zig.system.resolveTargetQuery(.{}),81 .result = try std.zig.system.resolveTargetQuery(.{}),
82 },82 },
83 .dependency_cache = std.Build.InitializedDepMap.initContext(arena, .{ .allocator = arena }),
84 };83 };
8584
86 graph.cache.addPrefix(.{ .path = null, .handle = std.fs.cwd() });85 graph.cache.addPrefix(.{ .path = null, .handle = std.fs.cwd() });
lib/std/Build.zig+6-6
...@@ -122,7 +122,7 @@ pub const Graph = struct {...@@ -122,7 +122,7 @@ pub const Graph = struct {
122 host: ResolvedTarget,122 host: ResolvedTarget,
123 incremental: ?bool = null,123 incremental: ?bool = null,
124 random_seed: u32 = 0,124 random_seed: u32 = 0,
125 dependency_cache: InitializedDepMap,125 dependency_cache: InitializedDepMap = .empty,
126};126};
127127
128const AvailableDeps = []const struct { []const u8, []const u8 };128const AvailableDeps = []const struct { []const u8, []const u8 };
...@@ -142,7 +142,7 @@ const SystemLibraryMode = enum {...@@ -142,7 +142,7 @@ const SystemLibraryMode = enum {
142 declared_enabled,142 declared_enabled,
143};143};
144144
145pub const InitializedDepMap = std.HashMap(InitializedDepKey, *Dependency, InitializedDepContext, std.hash_map.default_max_load_percentage);145const InitializedDepMap = std.HashMapUnmanaged(InitializedDepKey, *Dependency, InitializedDepContext, std.hash_map.default_max_load_percentage);
146const InitializedDepKey = struct {146const InitializedDepKey = struct {
147 build_root_string: []const u8,147 build_root_string: []const u8,
148 user_input_options: UserInputOptionsMap,148 user_input_options: UserInputOptionsMap,
...@@ -2121,10 +2121,10 @@ fn dependencyInner(...@@ -2121,10 +2121,10 @@ fn dependencyInner(
2121 args: anytype,2121 args: anytype,
2122) *Dependency {2122) *Dependency {
2123 const user_input_options = userInputOptionsFromArgs(b.allocator, args);2123 const user_input_options = userInputOptionsFromArgs(b.allocator, args);
2124 if (b.graph.dependency_cache.get(.{2124 if (b.graph.dependency_cache.getContext(.{
2125 .build_root_string = build_root_string,2125 .build_root_string = build_root_string,
2126 .user_input_options = user_input_options,2126 .user_input_options = user_input_options,
2127 })) |dep|2127 }, .{ .allocator = b.graph.arena })) |dep|
2128 return dep;2128 return dep;
21292129
2130 const build_root: std.Build.Cache.Directory = .{2130 const build_root: std.Build.Cache.Directory = .{
...@@ -2149,10 +2149,10 @@ fn dependencyInner(...@@ -2149,10 +2149,10 @@ fn dependencyInner(
2149 const dep = b.allocator.create(Dependency) catch @panic("OOM");2149 const dep = b.allocator.create(Dependency) catch @panic("OOM");
2150 dep.* = .{ .builder = sub_builder };2150 dep.* = .{ .builder = sub_builder };
21512151
2152 b.graph.dependency_cache.put(.{2152 b.graph.dependency_cache.putContext(b.graph.arena, .{
2153 .build_root_string = build_root_string,2153 .build_root_string = build_root_string,
2154 .user_input_options = user_input_options,2154 .user_input_options = user_input_options,
2155 }, dep) catch @panic("OOM");2155 }, dep, .{ .allocator = b.graph.arena }) catch @panic("OOM");
2156 return dep;2156 return dep;
2157}2157}
21582158