aboutsummaryrefslogtreecommitdiff
path: root/tools/generate_linux_syscalls.zig
diff options
context:
space:
mode:
authorTravis Staloch <1562827+travisstaloch@users.noreply.github.com>2024-04-20 23:14:39 -0700
committerAndrew Kelley <andrew@ziglang.org>2024-04-22 15:31:41 -0700
commit8af59d1f98266bd70b3afb44d196bbd151cedf22 (patch)
tree64b0c48f2b2d222629acbd5698c1f5310fdc708f /tools/generate_linux_syscalls.zig
parentfefdbca6e62145a20777789961262f15c2bf6cbe (diff)
downloadzig-8af59d1f98266bd70b3afb44d196bbd151cedf22.tar.gz
zig-8af59d1f98266bd70b3afb44d196bbd151cedf22.zip
ComptimeStringMap: return a regular struct and optimize
this patch renames ComptimeStringMap to StaticStringMap, makes it accept only a single type parameter, and return a known struct type instead of an anonymous struct. initial motivation for these changes was to reduce the 'very long type names' issue described here https://github.com/ziglang/zig/pull/19682. this breaks the previous API. users will now need to write: `const map = std.StaticStringMap(T).initComptime(kvs_list);` * move `kvs_list` param from type param to an `initComptime()` param * new public methods * `keys()`, `values()` helpers * `init(allocator)`, `deinit(allocator)` for runtime data * `getLongestPrefix(str)`, `getLongestPrefixIndex(str)` - i'm not sure these belong but have left in for now incase they are deemed useful * performance notes: * i posted some benchmarking results here: https://github.com/travisstaloch/comptime-string-map-revised/issues/1 * i noticed a speedup reducing the size of the struct from 48 to 32 bytes and thus use u32s instead of usize for all length fields * i noticed speedup storing KVs as a struct of arrays * latest benchmark shows these wall_time improvements for debug/safe/small/fast builds: -6.6% / -10.2% / -19.1% / -8.9%. full output in link above.
Diffstat (limited to 'tools/generate_linux_syscalls.zig')
-rw-r--r--tools/generate_linux_syscalls.zig2
1 files changed, 1 insertions, 1 deletions
diff --git a/tools/generate_linux_syscalls.zig b/tools/generate_linux_syscalls.zig
index 8c066f749e..ba368e1f0b 100644
--- a/tools/generate_linux_syscalls.zig
+++ b/tools/generate_linux_syscalls.zig
@@ -9,7 +9,7 @@ const fmt = std.fmt;
const zig = std.zig;
const fs = std.fs;
-const stdlib_renames = std.ComptimeStringMap([]const u8, .{
+const stdlib_renames = std.StaticStringMap([]const u8).initComptime(.{
// Most 64-bit archs.
.{ "newfstatat", "fstatat64" },
// POWER.