From af164b3f3cdfddc2e5449b05b9e1a30535b9ac94 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Fri, 2 Jan 2026 18:42:31 -0800 Subject: [PATCH] std.Build.Step.Run: no need to sort the environment since we now use ArrayHashMap, the order is deterministic, and in fact, observable by applications. --- lib/std/Build/Step/Run.zig | 28 +++------------------------- 1 file changed, 3 insertions(+), 25 deletions(-) diff --git a/lib/std/Build/Step/Run.zig b/lib/std/Build/Step/Run.zig index 32b04b4a988b923957f31f33a8e27f257c94ad52..838b1ec347351456f08f265b54ac74e30dee6935 100644 --- a/lib/std/Build/Step/Run.zig +++ b/lib/std/Build/Step/Run.zig @@ -795,31 +795,9 @@ fn make(step: *Step, options: Step.MakeOptions) !void { defer man.deinit(); if (run.env_map) |env_map| { - const KV = struct { []const u8, []const u8 }; - var kv_pairs = try std.array_list.Managed(KV).initCapacity(arena, env_map.count()); - var iter = env_map.iterator(); - while (iter.next()) |entry| { - kv_pairs.appendAssumeCapacity(.{ entry.key_ptr.*, entry.value_ptr.* }); - } - - std.mem.sortUnstable(KV, kv_pairs.items, {}, struct { - fn lessThan(_: void, kv1: KV, kv2: KV) bool { - const k1 = kv1[0]; - const k2 = kv2[0]; - - if (k1.len != k2.len) return k1.len < k2.len; - - for (k1, k2) |c1, c2| { - if (c1 == c2) continue; - return c1 < c2; - } - unreachable; // two keys cannot be equal - } - }.lessThan); - - for (kv_pairs.items) |kv| { - man.hash.addBytes(kv[0]); - man.hash.addBytes(kv[1]); + for (env_map.keys(), env_map.values()) |key, value| { + man.hash.addBytes(key); + man.hash.addBytes(value); } } -- 2.54.0