From 23ee39116c783908420d7d9e58a9344042c823fa Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Sat, 6 Apr 2024 19:10:36 -0400 Subject: [PATCH 01/11] cbe: fix struct field location computation --- src/codegen/c.zig | 76 ++++++++++++++--------------------------------- 1 file changed, 22 insertions(+), 54 deletions(-) diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 95f4ecc4ac..576cc55b63 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -822,19 +822,6 @@ pub const DeclGen = struct { try dg.fmtIntLiteral(try zcu.intValue(Type.usize, byte_offset), .Other), }); }, - .end => { - const ptr_base_ctype = try dg.ctypeFromType(ptr_base_ty, .complete); - if (!ptr_ctype.eql(ptr_base_ctype)) { - try writer.writeByte('('); - try dg.renderCType(writer, ptr_ctype); - try writer.writeByte(')'); - } - try writer.writeAll("(("); - try dg.renderParentPtr(writer, field.base, location); - try writer.print(") + {})", .{ - try dg.fmtIntLiteral(try zcu.intValue(Type.usize, 1), .Other), - }); - }, } }, .comptime_field, .comptime_alloc => unreachable, @@ -5453,49 +5440,39 @@ fn fieldLocation( ) union(enum) { begin: void, field: CValue, - byte_offset: u32, - end: void, + byte_offset: u64, } { const ip = &zcu.intern_pool; const container_ty = Type.fromInterned(ip.indexToKey(container_ptr_ty.toIntern()).ptr_type.child); switch (ip.indexToKey(container_ty.toIntern())) { .struct_type => { const loaded_struct = ip.loadStructType(container_ty.toIntern()); - switch (loaded_struct.layout) { - .auto, .@"extern" => { - var field_it = loaded_struct.iterateRuntimeOrder(ip); - var before = true; - while (field_it.next()) |next_field_index| { - if (next_field_index == field_index) before = false; - if (before) continue; - const field_type = Type.fromInterned(loaded_struct.field_types.get(ip)[next_field_index]); - if (!field_type.hasRuntimeBitsIgnoreComptime(zcu)) continue; - return .{ .field = if (loaded_struct.fieldName(ip, next_field_index).unwrap()) |field_name| - .{ .identifier = ip.stringToSlice(field_name) } - else - .{ .field = next_field_index } }; - } - return if (container_ty.hasRuntimeBitsIgnoreComptime(zcu)) .end else .begin; - }, - .@"packed" => return if (field_ptr_ty.ptrInfo(zcu).packed_offset.host_size == 0) + return switch (loaded_struct.layout) { + .auto, .@"extern" => if (!container_ty.hasRuntimeBitsIgnoreComptime(zcu)) + .begin + else if (!field_ptr_ty.childType(zcu).hasRuntimeBitsIgnoreComptime(zcu)) + .{ .byte_offset = loaded_struct.offsets.get(ip)[field_index] } + else + .{ .field = if (loaded_struct.fieldName(ip, field_index).unwrap()) |field_name| + .{ .identifier = ip.stringToSlice(field_name) } + else + .{ .field = field_index } }, + .@"packed" => if (field_ptr_ty.ptrInfo(zcu).packed_offset.host_size == 0) .{ .byte_offset = @divExact(zcu.structPackedFieldBitOffset(loaded_struct, field_index) + container_ptr_ty.ptrInfo(zcu).packed_offset.bit_offset, 8) } else .begin, - } - }, - .anon_struct_type => |anon_struct_info| { - for (field_index..anon_struct_info.types.len) |next_field_index| { - if (anon_struct_info.values.get(ip)[next_field_index] != .none) continue; - const field_type = Type.fromInterned(anon_struct_info.types.get(ip)[next_field_index]); - if (!field_type.hasRuntimeBitsIgnoreComptime(zcu)) continue; - return .{ .field = if (anon_struct_info.fieldName(ip, next_field_index).unwrap()) |field_name| - .{ .identifier = ip.stringToSlice(field_name) } - else - .{ .field = next_field_index } }; - } - return if (container_ty.hasRuntimeBitsIgnoreComptime(zcu)) .end else .begin; + }; }, + .anon_struct_type => |anon_struct_info| return if (!container_ty.hasRuntimeBitsIgnoreComptime(zcu)) + .begin + else if (!field_ptr_ty.childType(zcu).hasRuntimeBitsIgnoreComptime(zcu)) + .{ .byte_offset = container_ty.structFieldOffset(field_index, zcu) } + else + .{ .field = if (anon_struct_info.fieldName(ip, field_index).unwrap()) |field_name| + .{ .identifier = ip.stringToSlice(field_name) } + else + .{ .field = field_index } }, .union_type => { const loaded_union = ip.loadUnionType(container_ty.toIntern()); switch (loaded_union.getLayout(ip)) { @@ -5591,10 +5568,6 @@ fn airFieldParentPtr(f: *Function, inst: Air.Inst.Index) !CValue { try f.fmtIntLiteral(try zcu.intValue(Type.usize, byte_offset)), }); }, - .end => { - try f.writeCValue(writer, field_ptr_val, .Other); - try writer.print(" - {}", .{try f.fmtIntLiteral(try zcu.intValue(Type.usize, 1))}); - }, } try writer.writeAll(";\n"); @@ -5639,11 +5612,6 @@ fn fieldPtr( try f.fmtIntLiteral(try zcu.intValue(Type.usize, byte_offset)), }); }, - .end => { - try writer.writeByte('('); - try f.writeCValue(writer, container_ptr_val, .Other); - try writer.print(" + {})", .{try f.fmtIntLiteral(try zcu.intValue(Type.usize, 1))}); - }, } try writer.writeAll(";\n"); From 0c83fa2fd03fec86c4e36075978646f202deec32 Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Sat, 6 Apr 2024 17:47:54 -0400 Subject: [PATCH 02/11] haiku: fix directory iteration --- lib/std/c/haiku.zig | 1389 +++++++++++++++++++++++-------------------- lib/std/fs/Dir.zig | 103 +++- 2 files changed, 830 insertions(+), 662 deletions(-) diff --git a/lib/std/c/haiku.zig b/lib/std/c/haiku.zig index d75dd3bf00..cd2e4bc296 100644 --- a/lib/std/c/haiku.zig +++ b/lib/std/c/haiku.zig @@ -5,28 +5,18 @@ const maxInt = std.math.maxInt; const iovec = std.posix.iovec; const iovec_const = std.posix.iovec_const; -extern "c" fn _errnop() *c_int; +pub extern "root" fn find_directory(which: directory_which, volume: i32, createIt: bool, path_ptr: [*]u8, length: i32) u64; -pub const _errno = _errnop; +pub extern "root" fn find_thread(thread_name: ?*anyopaque) i32; -pub extern "c" fn find_directory(which: directory_which, volume: i32, createIt: bool, path_ptr: [*]u8, length: i32) u64; +pub extern "root" fn get_system_info(system_info: *system_info) usize; -pub extern "c" fn find_thread(thread_name: ?*anyopaque) i32; +pub extern "root" fn _get_team_info(team: i32, team_info: *team_info, size: usize) i32; -pub extern "c" fn get_system_info(system_info: *system_info) usize; - -pub extern "c" fn _get_team_info(team: c_int, team_info: *team_info, size: usize) i32; - -pub extern "c" fn _get_next_area_info(team: c_int, cookie: *i64, area_info: *area_info, size: usize) i32; +pub extern "root" fn _get_next_area_info(team: i32, cookie: *i64, area_info: *area_info, size: usize) i32; // TODO revisit if abi changes or better option becomes apparent -pub extern "c" fn _get_next_image_info(team: c_int, cookie: *i32, image_info: *image_info, size: usize) i32; - -pub extern "c" fn _kern_read_dir(fd: c_int, buf_ptr: [*]u8, nbytes: usize, maxcount: u32) usize; - -pub extern "c" fn _kern_read_stat(fd: c_int, path_ptr: [*]u8, traverse_link: bool, st: *Stat, stat_size: i32) usize; - -pub extern "c" fn _kern_get_current_team() i32; +pub extern "root" fn _get_next_image_info(team: i32, cookie: *i32, image_info: *image_info, size: usize) i32; pub const sem_t = extern struct { type: i32, @@ -45,7 +35,7 @@ pub const pthread_attr_t = extern struct { __stack_address: ?*anyopaque, }; -pub const EAI = enum(c_int) { +pub const EAI = enum(i32) { /// address family for hostname not supported ADDRFAMILY = 1, @@ -99,11 +89,7 @@ pub const AI = struct { pub const AI_NUMERICSERV = AI.NUMERICSERV; -pub const fd_t = c_int; -pub const pid_t = c_int; -pub const uid_t = u32; -pub const gid_t = u32; -pub const mode_t = c_uint; +pub const fd_t = i32; pub const socklen_t = u32; @@ -129,8 +115,8 @@ pub const dl_phdr_info = extern struct { }; pub const Flock = extern struct { - type: c_short, - whence: c_short, + type: i16, + whence: i16, start: off_t, len: off_t, pid: pid_t, @@ -159,54 +145,6 @@ pub const msghdr = extern struct { msg_flags: i32, }; -pub const off_t = i64; -pub const ino_t = u64; - -pub const Stat = extern struct { - dev: i32, - ino: u64, - mode: u32, - nlink: i32, - uid: i32, - gid: i32, - size: i64, - rdev: i32, - blksize: i32, - atim: timespec, - mtim: timespec, - ctim: timespec, - crtim: timespec, - st_type: u32, - blocks: i64, - - pub fn atime(self: @This()) timespec { - return self.atim; - } - pub fn mtime(self: @This()) timespec { - return self.mtim; - } - pub fn ctime(self: @This()) timespec { - return self.ctim; - } - pub fn birthtime(self: @This()) timespec { - return self.crtim; - } -}; - -pub const timespec = extern struct { - tv_sec: isize, - tv_nsec: isize, -}; - -pub const dirent = extern struct { - dev: i32, - pdev: i32, - ino: i64, - pino: i64, - reclen: u16, - name: [256]u8, -}; - pub const B_OS_NAME_LENGTH = 32; // OS.h pub const area_info = extern struct { @@ -354,17 +292,6 @@ pub const PROT = struct { pub const NONE = 0x00; }; -pub const CLOCK = struct { - /// system-wide monotonic clock (aka system time) - pub const MONOTONIC = 0; - /// system-wide real time clock - pub const REALTIME = -1; - /// clock measuring the used CPU time of the current process - pub const PROCESS_CPUTIME_ID = -2; - /// clock measuring the used CPU time of the current thread - pub const THREAD_CPUTIME_ID = -3; -}; - pub const MSF = struct { pub const ASYNC = 1; pub const INVALIDATE = 2; @@ -404,159 +331,526 @@ pub const W = struct { } }; -// /system/develop/headers/posix/poll.h +// access function +pub const F_OK = 0; // test for existence of file +pub const X_OK = 1; // test for execute or search permission +pub const W_OK = 2; // test for write permission +pub const R_OK = 4; // test for read permission -pub const nfds_t = usize; +pub const F = struct { + pub const DUPFD = 0x0001; + pub const GETFD = 0x0002; + pub const SETFD = 0x0004; + pub const GETFL = 0x0008; + pub const SETFL = 0x0010; -pub const pollfd = extern struct { - fd: i32, - events: i16, - revents: i16, + pub const GETLK = 0x0020; + pub const SETLK = 0x0080; + pub const SETLKW = 0x0100; + pub const DUPFD_CLOEXEC = 0x0200; + + pub const RDLCK = 0x0040; + pub const UNLCK = 0x0200; + pub const WRLCK = 0x0400; }; -pub const POLL = struct { - /// any readable data available - pub const IN = 0x0001; - /// file descriptor is writeable - pub const OUT = 0x0002; - pub const RDNORM = IN; - pub const WRNORM = OUT; - /// priority readable data - pub const RDBAND = 0x0008; - /// priority data can be written - pub const WRBAND = 0x0010; - /// high priority readable data - pub const PRI = 0x0020; - - /// errors pending - pub const ERR = 0x0004; - /// disconnected - pub const HUP = 0x0080; - /// invalid file descriptor - pub const NVAL = 0x1000; +pub const LOCK = struct { + pub const SH = 0x01; + pub const EX = 0x02; + pub const NB = 0x04; + pub const UN = 0x08; }; -// /system/develop/headers/posix/signal.h +pub const FD_CLOEXEC = 1; -pub const sigset_t = u64; -pub const empty_sigset: sigset_t = 0; -pub const filled_sigset = ~@as(sigset_t, 0); - -pub const SIG = struct { - pub const DFL: ?Sigaction.handler_fn = @ptrFromInt(0); - pub const IGN: ?Sigaction.handler_fn = @ptrFromInt(1); - pub const ERR: ?Sigaction.handler_fn = @ptrFromInt(maxInt(usize)); - - pub const HOLD: ?Sigaction.handler_fn = @ptrFromInt(3); - - pub const HUP = 1; - pub const INT = 2; - pub const QUIT = 3; - pub const ILL = 4; - pub const CHLD = 5; - pub const ABRT = 6; - pub const IOT = ABRT; - pub const PIPE = 7; - pub const FPE = 8; - pub const KILL = 9; - pub const STOP = 10; - pub const SEGV = 11; - pub const CONT = 12; - pub const TSTP = 13; - pub const ALRM = 14; - pub const TERM = 15; - pub const TTIN = 16; - pub const TTOU = 17; - pub const USR1 = 18; - pub const USR2 = 19; - pub const WINCH = 20; - pub const KILLTHR = 21; - pub const TRAP = 22; - pub const POLL = 23; - pub const PROF = 24; - pub const SYS = 25; - pub const URG = 26; - pub const VTALRM = 27; - pub const XCPU = 28; - pub const XFSZ = 29; - pub const BUS = 30; - pub const RESERVED1 = 31; - pub const RESERVED2 = 32; - - pub const BLOCK = 1; - pub const UNBLOCK = 2; - pub const SETMASK = 3; +pub const SEEK = struct { + pub const SET = 0; + pub const CUR = 1; + pub const END = 2; }; -pub const siginfo_t = extern struct { - signo: c_int, - code: c_int, - errno: c_int, +pub const SOCK = struct { + pub const STREAM = 1; + pub const DGRAM = 2; + pub const RAW = 3; + pub const SEQPACKET = 5; - pid: pid_t, - uid: uid_t, - addr: *allowzero anyopaque, + /// WARNING: this flag is not supported by windows socket functions directly, + /// it is only supported by std.os.socket. Be sure that this value does + /// not share any bits with any of the `SOCK` values. + pub const CLOEXEC = 0x10000; + /// WARNING: this flag is not supported by windows socket functions directly, + /// it is only supported by std.os.socket. Be sure that this value does + /// not share any bits with any of the `SOCK` values. + pub const NONBLOCK = 0x20000; }; -/// Renamed from `sigaction` to `Sigaction` to avoid conflict with the syscall. -pub const Sigaction = extern struct { - pub const handler_fn = *align(1) const fn (i32) callconv(.C) void; - pub const sigaction_fn = *const fn (i32, *const siginfo_t, ?*anyopaque) callconv(.C) void; +pub const SO = struct { + pub const ACCEPTCONN = 0x00000001; + pub const BROADCAST = 0x00000002; + pub const DEBUG = 0x00000004; + pub const DONTROUTE = 0x00000008; + pub const KEEPALIVE = 0x00000010; + pub const OOBINLINE = 0x00000020; + pub const REUSEADDR = 0x00000040; + pub const REUSEPORT = 0x00000080; + pub const USELOOPBACK = 0x00000100; + pub const LINGER = 0x00000200; - /// signal handler - handler: extern union { - handler: handler_fn, - sigaction: sigaction_fn, - }, - - /// signal mask to apply - mask: sigset_t, - - /// see signal options - flags: c_int, - - /// will be passed to the signal handler, BeOS extension - userdata: *allowzero anyopaque = undefined, + pub const SNDBUF = 0x40000001; + pub const SNDLOWAT = 0x40000002; + pub const SNDTIMEO = 0x40000003; + pub const RCVBUF = 0x40000004; + pub const RCVLOWAT = 0x40000005; + pub const RCVTIMEO = 0x40000006; + pub const ERROR = 0x40000007; + pub const TYPE = 0x40000008; + pub const NONBLOCK = 0x40000009; + pub const BINDTODEVICE = 0x4000000a; + pub const PEERCRED = 0x4000000b; }; -pub const SA = struct { - pub const NOCLDSTOP = 0x01; - pub const NOCLDWAIT = 0x02; - pub const RESETHAND = 0x04; - pub const NODEFER = 0x08; - pub const RESTART = 0x10; - pub const ONSTACK = 0x20; - pub const SIGINFO = 0x40; - pub const NOMASK = NODEFER; - pub const STACK = ONSTACK; - pub const ONESHOT = RESETHAND; +pub const SOL = struct { + pub const SOCKET = -1; }; -pub const SS = struct { - pub const ONSTACK = 0x1; - pub const DISABLE = 0x2; +pub const PF = struct { + pub const UNSPEC = AF.UNSPEC; + pub const INET = AF.INET; + pub const ROUTE = AF.ROUTE; + pub const LINK = AF.LINK; + pub const INET6 = AF.INET6; + pub const LOCAL = AF.LOCAL; + pub const UNIX = AF.UNIX; + pub const BLUETOOTH = AF.BLUETOOTH; }; -pub const MINSIGSTKSZ = 8192; -pub const SIGSTKSZ = 16384; +pub const AF = struct { + pub const UNSPEC = 0; + pub const INET = 1; + pub const APPLETALK = 2; + pub const ROUTE = 3; + pub const LINK = 4; + pub const INET6 = 5; + pub const DLI = 6; + pub const IPX = 7; + pub const NOTIFY = 8; + pub const LOCAL = 9; + pub const UNIX = LOCAL; + pub const BLUETOOTH = 10; + pub const MAX = 11; +}; -pub const stack_t = extern struct { - sp: [*]u8, - size: isize, +pub const DT = struct {}; + +/// add event to kq (implies enable) +pub const EV_ADD = 0x0001; + +/// delete event from kq +pub const EV_DELETE = 0x0002; + +/// enable event +pub const EV_ENABLE = 0x0004; + +/// disable event (not reported) +pub const EV_DISABLE = 0x0008; + +/// only report one occurrence +pub const EV_ONESHOT = 0x0010; + +/// clear event state after reporting +pub const EV_CLEAR = 0x0020; + +/// force immediate event output +/// ... with or without EV_ERROR +/// ... use KEVENT_FLAG_ERROR_EVENTS +/// on syscalls supporting flags +pub const EV_RECEIPT = 0x0040; + +/// disable event after reporting +pub const EV_DISPATCH = 0x0080; + +pub const EVFILT_READ = -1; +pub const EVFILT_WRITE = -2; + +/// attached to aio requests +pub const EVFILT_AIO = -3; + +/// attached to vnodes +pub const EVFILT_VNODE = -4; + +/// attached to struct proc +pub const EVFILT_PROC = -5; + +/// attached to struct proc +pub const EVFILT_SIGNAL = -6; + +/// timers +pub const EVFILT_TIMER = -7; + +/// Process descriptors +pub const EVFILT_PROCDESC = -8; + +/// Filesystem events +pub const EVFILT_FS = -9; + +pub const EVFILT_LIO = -10; + +/// User events +pub const EVFILT_USER = -11; + +/// Sendfile events +pub const EVFILT_SENDFILE = -12; + +pub const EVFILT_EMPTY = -13; + +pub const T = struct { + pub const CGETA = 0x8000; + pub const CSETA = 0x8001; + pub const CSETAF = 0x8002; + pub const CSETAW = 0x8003; + pub const CWAITEVENT = 0x8004; + pub const CSBRK = 0x8005; + pub const CFLSH = 0x8006; + pub const CXONC = 0x8007; + pub const CQUERYCONNECTED = 0x8008; + pub const CGETBITS = 0x8009; + pub const CSETDTR = 0x8010; + pub const CSETRTS = 0x8011; + pub const IOCGWINSZ = 0x8012; + pub const IOCSWINSZ = 0x8013; + pub const CVTIME = 0x8014; + pub const IOCGPGRP = 0x8015; + pub const IOCSPGRP = 0x8016; + pub const IOCSCTTY = 0x8017; + pub const IOCMGET = 0x8018; + pub const IOCMSET = 0x8019; + pub const IOCSBRK = 0x8020; + pub const IOCCBRK = 0x8021; + pub const IOCMBIS = 0x8022; + pub const IOCMBIC = 0x8023; + pub const IOCGSID = 0x8024; + + pub const FIONREAD = 0xbe000001; + pub const FIONBIO = 0xbe000000; +}; + +pub const winsize = extern struct { + ws_row: u16, + ws_col: u16, + ws_xpixel: u16, + ws_ypixel: u16, +}; + +pub const S = struct { + pub const IFMT = 0o170000; + pub const IFSOCK = 0o140000; + pub const IFLNK = 0o120000; + pub const IFREG = 0o100000; + pub const IFBLK = 0o060000; + pub const IFDIR = 0o040000; + pub const IFCHR = 0o020000; + pub const IFIFO = 0o010000; + pub const INDEX_DIR = 0o4000000000; + + pub const IUMSK = 0o7777; + pub const ISUID = 0o4000; + pub const ISGID = 0o2000; + pub const ISVTX = 0o1000; + pub const IRWXU = 0o700; + pub const IRUSR = 0o400; + pub const IWUSR = 0o200; + pub const IXUSR = 0o100; + pub const IRWXG = 0o070; + pub const IRGRP = 0o040; + pub const IWGRP = 0o020; + pub const IXGRP = 0o010; + pub const IRWXO = 0o007; + pub const IROTH = 0o004; + pub const IWOTH = 0o002; + pub const IXOTH = 0o001; + + pub fn ISREG(m: u32) bool { + return m & IFMT == IFREG; + } + + pub fn ISLNK(m: u32) bool { + return m & IFMT == IFLNK; + } + + pub fn ISBLK(m: u32) bool { + return m & IFMT == IFBLK; + } + + pub fn ISDIR(m: u32) bool { + return m & IFMT == IFDIR; + } + + pub fn ISCHR(m: u32) bool { + return m & IFMT == IFCHR; + } + + pub fn ISFIFO(m: u32) bool { + return m & IFMT == IFIFO; + } + + pub fn ISSOCK(m: u32) bool { + return m & IFMT == IFSOCK; + } + + pub fn ISINDEX(m: u32) bool { + return m & INDEX_DIR == INDEX_DIR; + } +}; + +pub const HOST_NAME_MAX = 255; + +pub const addrinfo = extern struct { flags: i32, + family: i32, + socktype: i32, + protocol: i32, + addrlen: socklen_t, + canonname: ?[*:0]u8, + addr: ?*sockaddr, + next: ?*addrinfo, }; -pub const NSIG = 65; - -pub const mcontext_t = vregs; - -pub const ucontext_t = extern struct { - link: ?*ucontext_t, - sigmask: sigset_t, - stack: stack_t, - mcontext: mcontext_t, +pub const IPPROTO = struct { + pub const IP = 0; + pub const HOPOPTS = 0; + pub const ICMP = 1; + pub const IGMP = 2; + pub const TCP = 6; + pub const UDP = 17; + pub const IPV6 = 41; + pub const ROUTING = 43; + pub const FRAGMENT = 44; + pub const ESP = 50; + pub const AH = 51; + pub const ICMPV6 = 58; + pub const NONE = 59; + pub const DSTOPTS = 60; + pub const ETHERIP = 97; + pub const RAW = 255; + pub const MAX = 256; }; +pub const rlimit_resource = enum(i32) { + CORE = 0, + CPU = 1, + DATA = 2, + FSIZE = 3, + NOFILE = 4, + STACK = 5, + AS = 6, + NOVMON = 7, + _, +}; + +pub const rlim_t = i64; + +pub const RLIM = struct { + /// No limit + pub const INFINITY: rlim_t = (1 << 63) - 1; + + pub const SAVED_MAX = INFINITY; + pub const SAVED_CUR = INFINITY; +}; + +pub const rlimit = extern struct { + /// Soft limit + cur: rlim_t, + /// Hard limit + max: rlim_t, +}; + +pub const SHUT = struct { + pub const RD = 0; + pub const WR = 1; + pub const RDWR = 2; +}; + +// TODO fill out if needed +pub const directory_which = enum(i32) { + B_USER_SETTINGS_DIRECTORY = 0xbbe, + + _, +}; + +pub const MSG_NOSIGNAL = 0x0800; + +// /system/develop/headers/os/kernel/OS.h + +pub const area_id = i32; +pub const port_id = i32; +pub const sem_id = i32; +pub const team_id = i32; +pub const thread_id = i32; + +// /system/develop/headers/os/support/Errors.h + +pub const E = enum(i32) { + pub const B_GENERAL_ERROR_BASE: i32 = std.math.minInt(i32); + pub const B_OS_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x1000; + pub const B_APP_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x2000; + pub const B_INTERFACE_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x3000; + pub const B_MEDIA_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x4000; + pub const B_TRANSLATION_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x4800; + pub const B_MIDI_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x5000; + pub const B_STORAGE_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x6000; + pub const B_POSIX_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x7000; + pub const B_MAIL_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x8000; + pub const B_PRINT_ERROR_BASE = B_GENERAL_ERROR_BASE + 0x9000; + pub const B_DEVICE_ERROR_BASE = B_GENERAL_ERROR_BASE + 0xa000; + + pub const B_ERRORS_END = B_GENERAL_ERROR_BASE + 0xffff; + + pub const B_NO_MEMORY = B_GENERAL_ERROR_BASE + 0; + pub const B_IO_ERROR = B_GENERAL_ERROR_BASE + 1; + pub const B_PERMISSION_DENIED = B_GENERAL_ERROR_BASE + 2; + pub const B_BAD_INDEX = B_GENERAL_ERROR_BASE + 3; + pub const B_BAD_TYPE = B_GENERAL_ERROR_BASE + 4; + pub const B_BAD_VALUE = B_GENERAL_ERROR_BASE + 5; + pub const B_MISMATCHED_VALUES = B_GENERAL_ERROR_BASE + 6; + pub const B_NAME_NOT_FOUND = B_GENERAL_ERROR_BASE + 7; + pub const B_NAME_IN_USE = B_GENERAL_ERROR_BASE + 8; + pub const B_TIMED_OUT = B_GENERAL_ERROR_BASE + 9; + pub const B_INTERRUPTED = B_GENERAL_ERROR_BASE + 10; + pub const B_WOULD_BLOCK = B_GENERAL_ERROR_BASE + 11; + pub const B_CANCELED = B_GENERAL_ERROR_BASE + 12; + pub const B_NO_INIT = B_GENERAL_ERROR_BASE + 13; + pub const B_NOT_INITIALIZED = B_GENERAL_ERROR_BASE + 13; + pub const B_BUSY = B_GENERAL_ERROR_BASE + 14; + pub const B_NOT_ALLOWED = B_GENERAL_ERROR_BASE + 15; + pub const B_BAD_DATA = B_GENERAL_ERROR_BASE + 16; + pub const B_DONT_DO_THAT = B_GENERAL_ERROR_BASE + 17; + + pub const B_BAD_IMAGE_ID = B_OS_ERROR_BASE + 0x300; + pub const B_BAD_ADDRESS = B_OS_ERROR_BASE + 0x301; + pub const B_NOT_AN_EXECUTABLE = B_OS_ERROR_BASE + 0x302; + pub const B_MISSING_LIBRARY = B_OS_ERROR_BASE + 0x303; + pub const B_MISSING_SYMBOL = B_OS_ERROR_BASE + 0x304; + pub const B_UNKNOWN_EXECUTABLE = B_OS_ERROR_BASE + 0x305; + pub const B_LEGACY_EXECUTABLE = B_OS_ERROR_BASE + 0x306; + + pub const B_FILE_ERROR = B_STORAGE_ERROR_BASE + 0; + pub const B_FILE_EXISTS = B_STORAGE_ERROR_BASE + 2; + pub const B_ENTRY_NOT_FOUND = B_STORAGE_ERROR_BASE + 3; + pub const B_NAME_TOO_LONG = B_STORAGE_ERROR_BASE + 4; + pub const B_NOT_A_DIRECTORY = B_STORAGE_ERROR_BASE + 5; + pub const B_DIRECTORY_NOT_EMPTY = B_STORAGE_ERROR_BASE + 6; + pub const B_DEVICE_FULL = B_STORAGE_ERROR_BASE + 7; + pub const B_READ_ONLY_DEVICE = B_STORAGE_ERROR_BASE + 8; + pub const B_IS_A_DIRECTORY = B_STORAGE_ERROR_BASE + 9; + pub const B_NO_MORE_FDS = B_STORAGE_ERROR_BASE + 10; + pub const B_CROSS_DEVICE_LINK = B_STORAGE_ERROR_BASE + 11; + pub const B_LINK_LIMIT = B_STORAGE_ERROR_BASE + 12; + pub const B_BUSTED_PIPE = B_STORAGE_ERROR_BASE + 13; + pub const B_UNSUPPORTED = B_STORAGE_ERROR_BASE + 14; + pub const B_PARTITION_TOO_SMALL = B_STORAGE_ERROR_BASE + 15; + pub const B_PARTIAL_READ = B_STORAGE_ERROR_BASE + 16; + pub const B_PARTIAL_WRITE = B_STORAGE_ERROR_BASE + 17; + + SUCCESS = 0, + + @"2BIG" = B_POSIX_ERROR_BASE + 1, + CHILD = B_POSIX_ERROR_BASE + 2, + DEADLK = B_POSIX_ERROR_BASE + 3, + FBIG = B_POSIX_ERROR_BASE + 4, + MLINK = B_POSIX_ERROR_BASE + 5, + NFILE = B_POSIX_ERROR_BASE + 6, + NODEV = B_POSIX_ERROR_BASE + 7, + NOLCK = B_POSIX_ERROR_BASE + 8, + NOSYS = B_POSIX_ERROR_BASE + 9, + NOTTY = B_POSIX_ERROR_BASE + 10, + NXIO = B_POSIX_ERROR_BASE + 11, + SPIPE = B_POSIX_ERROR_BASE + 12, + SRCH = B_POSIX_ERROR_BASE + 13, + FPOS = B_POSIX_ERROR_BASE + 14, + SIGPARM = B_POSIX_ERROR_BASE + 15, + DOM = B_POSIX_ERROR_BASE + 16, + RANGE = B_POSIX_ERROR_BASE + 17, + PROTOTYPE = B_POSIX_ERROR_BASE + 18, + PROTONOSUPPORT = B_POSIX_ERROR_BASE + 19, + PFNOSUPPORT = B_POSIX_ERROR_BASE + 20, + AFNOSUPPORT = B_POSIX_ERROR_BASE + 21, + ADDRINUSE = B_POSIX_ERROR_BASE + 22, + ADDRNOTAVAIL = B_POSIX_ERROR_BASE + 23, + NETDOWN = B_POSIX_ERROR_BASE + 24, + NETUNREACH = B_POSIX_ERROR_BASE + 25, + NETRESET = B_POSIX_ERROR_BASE + 26, + CONNABORTED = B_POSIX_ERROR_BASE + 27, + CONNRESET = B_POSIX_ERROR_BASE + 28, + ISCONN = B_POSIX_ERROR_BASE + 29, + NOTCONN = B_POSIX_ERROR_BASE + 30, + SHUTDOWN = B_POSIX_ERROR_BASE + 31, + CONNREFUSED = B_POSIX_ERROR_BASE + 32, + HOSTUNREACH = B_POSIX_ERROR_BASE + 33, + NOPROTOOPT = B_POSIX_ERROR_BASE + 34, + NOBUFS = B_POSIX_ERROR_BASE + 35, + INPROGRESS = B_POSIX_ERROR_BASE + 36, + ALREADY = B_POSIX_ERROR_BASE + 37, + ILSEQ = B_POSIX_ERROR_BASE + 38, + NOMSG = B_POSIX_ERROR_BASE + 39, + STALE = B_POSIX_ERROR_BASE + 40, + OVERFLOW = B_POSIX_ERROR_BASE + 41, + MSGSIZE = B_POSIX_ERROR_BASE + 42, + OPNOTSUPP = B_POSIX_ERROR_BASE + 43, + NOTSOCK = B_POSIX_ERROR_BASE + 44, + HOSTDOWN = B_POSIX_ERROR_BASE + 45, + BADMSG = B_POSIX_ERROR_BASE + 46, + CANCELED = B_POSIX_ERROR_BASE + 47, + DESTADDRREQ = B_POSIX_ERROR_BASE + 48, + DQUOT = B_POSIX_ERROR_BASE + 49, + IDRM = B_POSIX_ERROR_BASE + 50, + MULTIHOP = B_POSIX_ERROR_BASE + 51, + NODATA = B_POSIX_ERROR_BASE + 52, + NOLINK = B_POSIX_ERROR_BASE + 53, + NOSR = B_POSIX_ERROR_BASE + 54, + NOSTR = B_POSIX_ERROR_BASE + 55, + NOTSUP = B_POSIX_ERROR_BASE + 56, + PROTO = B_POSIX_ERROR_BASE + 57, + TIME = B_POSIX_ERROR_BASE + 58, + TXTBSY = B_POSIX_ERROR_BASE + 59, + NOATTR = B_POSIX_ERROR_BASE + 60, + NOTRECOVERABLE = B_POSIX_ERROR_BASE + 61, + OWNERDEAD = B_POSIX_ERROR_BASE + 62, + + NOMEM = B_NO_MEMORY, + + ACCES = B_PERMISSION_DENIED, + INTR = B_INTERRUPTED, + IO = B_IO_ERROR, + BUSY = B_BUSY, + FAULT = B_BAD_ADDRESS, + TIMEDOUT = B_TIMED_OUT, + /// Also used for WOULDBLOCK + AGAIN = B_WOULD_BLOCK, + BADF = B_FILE_ERROR, + EXIST = B_FILE_EXISTS, + INVAL = B_BAD_VALUE, + NAMETOOLONG = B_NAME_TOO_LONG, + NOENT = B_ENTRY_NOT_FOUND, + PERM = B_NOT_ALLOWED, + NOTDIR = B_NOT_A_DIRECTORY, + ISDIR = B_IS_A_DIRECTORY, + NOTEMPTY = B_DIRECTORY_NOT_EMPTY, + NOSPC = B_DEVICE_FULL, + ROFS = B_READ_ONLY_DEVICE, + MFILE = B_NO_MORE_FDS, + XDEV = B_CROSS_DEVICE_LINK, + LOOP = B_LINK_LIMIT, + NOEXEC = B_NOT_AN_EXECUTABLE, + PIPE = B_BUSTED_PIPE, + + _, +}; + +// /system/develop/headers/os/support/SupportDefs.h + +pub const status_t = i32; + // /system/develop/headers/posix/arch/*/signal.h pub const vregs = switch (builtin.cpu.arch) { @@ -822,445 +1116,278 @@ pub const vregs = switch (builtin.cpu.arch) { else => void, }; -// access function -pub const F_OK = 0; // test for existence of file -pub const X_OK = 1; // test for execute or search permission -pub const W_OK = 2; // test for write permission -pub const R_OK = 4; // test for read permission +// /system/develop/headers/posix/dirent.h -pub const F = struct { - pub const DUPFD = 0x0001; - pub const GETFD = 0x0002; - pub const SETFD = 0x0004; - pub const GETFL = 0x0008; - pub const SETFL = 0x0010; - - pub const GETLK = 0x0020; - pub const SETLK = 0x0080; - pub const SETLKW = 0x0100; - pub const DUPFD_CLOEXEC = 0x0200; - - pub const RDLCK = 0x0040; - pub const UNLCK = 0x0200; - pub const WRLCK = 0x0400; -}; - -pub const LOCK = struct { - pub const SH = 0x01; - pub const EX = 0x02; - pub const NB = 0x04; - pub const UN = 0x08; -}; - -pub const FD_CLOEXEC = 1; - -pub const SEEK = struct { - pub const SET = 0; - pub const CUR = 1; - pub const END = 2; -}; - -pub const SOCK = struct { - pub const STREAM = 1; - pub const DGRAM = 2; - pub const RAW = 3; - pub const SEQPACKET = 5; - - /// WARNING: this flag is not supported by windows socket functions directly, - /// it is only supported by std.os.socket. Be sure that this value does - /// not share any bits with any of the `SOCK` values. - pub const CLOEXEC = 0x10000; - /// WARNING: this flag is not supported by windows socket functions directly, - /// it is only supported by std.os.socket. Be sure that this value does - /// not share any bits with any of the `SOCK` values. - pub const NONBLOCK = 0x20000; -}; - -pub const SO = struct { - pub const ACCEPTCONN = 0x00000001; - pub const BROADCAST = 0x00000002; - pub const DEBUG = 0x00000004; - pub const DONTROUTE = 0x00000008; - pub const KEEPALIVE = 0x00000010; - pub const OOBINLINE = 0x00000020; - pub const REUSEADDR = 0x00000040; - pub const REUSEPORT = 0x00000080; - pub const USELOOPBACK = 0x00000100; - pub const LINGER = 0x00000200; - - pub const SNDBUF = 0x40000001; - pub const SNDLOWAT = 0x40000002; - pub const SNDTIMEO = 0x40000003; - pub const RCVBUF = 0x40000004; - pub const RCVLOWAT = 0x40000005; - pub const RCVTIMEO = 0x40000006; - pub const ERROR = 0x40000007; - pub const TYPE = 0x40000008; - pub const NONBLOCK = 0x40000009; - pub const BINDTODEVICE = 0x4000000a; - pub const PEERCRED = 0x4000000b; -}; - -pub const SOL = struct { - pub const SOCKET = -1; -}; - -pub const PF = struct { - pub const UNSPEC = AF.UNSPEC; - pub const INET = AF.INET; - pub const ROUTE = AF.ROUTE; - pub const LINK = AF.LINK; - pub const INET6 = AF.INET6; - pub const LOCAL = AF.LOCAL; - pub const UNIX = AF.UNIX; - pub const BLUETOOTH = AF.BLUETOOTH; -}; - -pub const AF = struct { - pub const UNSPEC = 0; - pub const INET = 1; - pub const APPLETALK = 2; - pub const ROUTE = 3; - pub const LINK = 4; - pub const INET6 = 5; - pub const DLI = 6; - pub const IPX = 7; - pub const NOTIFY = 8; - pub const LOCAL = 9; - pub const UNIX = LOCAL; - pub const BLUETOOTH = 10; - pub const MAX = 11; -}; - -pub const DT = struct {}; - -/// add event to kq (implies enable) -pub const EV_ADD = 0x0001; - -/// delete event from kq -pub const EV_DELETE = 0x0002; - -/// enable event -pub const EV_ENABLE = 0x0004; - -/// disable event (not reported) -pub const EV_DISABLE = 0x0008; - -/// only report one occurrence -pub const EV_ONESHOT = 0x0010; - -/// clear event state after reporting -pub const EV_CLEAR = 0x0020; - -/// force immediate event output -/// ... with or without EV_ERROR -/// ... use KEVENT_FLAG_ERROR_EVENTS -/// on syscalls supporting flags -pub const EV_RECEIPT = 0x0040; - -/// disable event after reporting -pub const EV_DISPATCH = 0x0080; - -pub const EVFILT_READ = -1; -pub const EVFILT_WRITE = -2; - -/// attached to aio requests -pub const EVFILT_AIO = -3; - -/// attached to vnodes -pub const EVFILT_VNODE = -4; - -/// attached to struct proc -pub const EVFILT_PROC = -5; - -/// attached to struct proc -pub const EVFILT_SIGNAL = -6; - -/// timers -pub const EVFILT_TIMER = -7; - -/// Process descriptors -pub const EVFILT_PROCDESC = -8; - -/// Filesystem events -pub const EVFILT_FS = -9; - -pub const EVFILT_LIO = -10; - -/// User events -pub const EVFILT_USER = -11; - -/// Sendfile events -pub const EVFILT_SENDFILE = -12; - -pub const EVFILT_EMPTY = -13; - -pub const T = struct { - pub const CGETA = 0x8000; - pub const CSETA = 0x8001; - pub const CSETAF = 0x8002; - pub const CSETAW = 0x8003; - pub const CWAITEVENT = 0x8004; - pub const CSBRK = 0x8005; - pub const CFLSH = 0x8006; - pub const CXONC = 0x8007; - pub const CQUERYCONNECTED = 0x8008; - pub const CGETBITS = 0x8009; - pub const CSETDTR = 0x8010; - pub const CSETRTS = 0x8011; - pub const IOCGWINSZ = 0x8012; - pub const IOCSWINSZ = 0x8013; - pub const CVTIME = 0x8014; - pub const IOCGPGRP = 0x8015; - pub const IOCSPGRP = 0x8016; - pub const IOCSCTTY = 0x8017; - pub const IOCMGET = 0x8018; - pub const IOCMSET = 0x8019; - pub const IOCSBRK = 0x8020; - pub const IOCCBRK = 0x8021; - pub const IOCMBIS = 0x8022; - pub const IOCMBIC = 0x8023; - pub const IOCGSID = 0x8024; - - pub const FIONREAD = 0xbe000001; - pub const FIONBIO = 0xbe000000; -}; - -pub const winsize = extern struct { - ws_row: u16, - ws_col: u16, - ws_xpixel: u16, - ws_ypixel: u16, -}; - -const B_POSIX_ERROR_BASE = -2147454976; - -pub const E = enum(i32) { - @"2BIG" = B_POSIX_ERROR_BASE + 1, - CHILD = B_POSIX_ERROR_BASE + 2, - DEADLK = B_POSIX_ERROR_BASE + 3, - FBIG = B_POSIX_ERROR_BASE + 4, - MLINK = B_POSIX_ERROR_BASE + 5, - NFILE = B_POSIX_ERROR_BASE + 6, - NODEV = B_POSIX_ERROR_BASE + 7, - NOLCK = B_POSIX_ERROR_BASE + 8, - NOSYS = B_POSIX_ERROR_BASE + 9, - NOTTY = B_POSIX_ERROR_BASE + 10, - NXIO = B_POSIX_ERROR_BASE + 11, - SPIPE = B_POSIX_ERROR_BASE + 12, - SRCH = B_POSIX_ERROR_BASE + 13, - FPOS = B_POSIX_ERROR_BASE + 14, - SIGPARM = B_POSIX_ERROR_BASE + 15, - DOM = B_POSIX_ERROR_BASE + 16, - RANGE = B_POSIX_ERROR_BASE + 17, - PROTOTYPE = B_POSIX_ERROR_BASE + 18, - PROTONOSUPPORT = B_POSIX_ERROR_BASE + 19, - PFNOSUPPORT = B_POSIX_ERROR_BASE + 20, - AFNOSUPPORT = B_POSIX_ERROR_BASE + 21, - ADDRINUSE = B_POSIX_ERROR_BASE + 22, - ADDRNOTAVAIL = B_POSIX_ERROR_BASE + 23, - NETDOWN = B_POSIX_ERROR_BASE + 24, - NETUNREACH = B_POSIX_ERROR_BASE + 25, - NETRESET = B_POSIX_ERROR_BASE + 26, - CONNABORTED = B_POSIX_ERROR_BASE + 27, - CONNRESET = B_POSIX_ERROR_BASE + 28, - ISCONN = B_POSIX_ERROR_BASE + 29, - NOTCONN = B_POSIX_ERROR_BASE + 30, - SHUTDOWN = B_POSIX_ERROR_BASE + 31, - CONNREFUSED = B_POSIX_ERROR_BASE + 32, - HOSTUNREACH = B_POSIX_ERROR_BASE + 33, - NOPROTOOPT = B_POSIX_ERROR_BASE + 34, - NOBUFS = B_POSIX_ERROR_BASE + 35, - INPROGRESS = B_POSIX_ERROR_BASE + 36, - ALREADY = B_POSIX_ERROR_BASE + 37, - ILSEQ = B_POSIX_ERROR_BASE + 38, - NOMSG = B_POSIX_ERROR_BASE + 39, - STALE = B_POSIX_ERROR_BASE + 40, - OVERFLOW = B_POSIX_ERROR_BASE + 41, - MSGSIZE = B_POSIX_ERROR_BASE + 42, - OPNOTSUPP = B_POSIX_ERROR_BASE + 43, - NOTSOCK = B_POSIX_ERROR_BASE + 44, - HOSTDOWN = B_POSIX_ERROR_BASE + 45, - BADMSG = B_POSIX_ERROR_BASE + 46, - CANCELED = B_POSIX_ERROR_BASE + 47, - DESTADDRREQ = B_POSIX_ERROR_BASE + 48, - DQUOT = B_POSIX_ERROR_BASE + 49, - IDRM = B_POSIX_ERROR_BASE + 50, - MULTIHOP = B_POSIX_ERROR_BASE + 51, - NODATA = B_POSIX_ERROR_BASE + 52, - NOLINK = B_POSIX_ERROR_BASE + 53, - NOSR = B_POSIX_ERROR_BASE + 54, - NOSTR = B_POSIX_ERROR_BASE + 55, - NOTSUP = B_POSIX_ERROR_BASE + 56, - PROTO = B_POSIX_ERROR_BASE + 57, - TIME = B_POSIX_ERROR_BASE + 58, - TXTBSY = B_POSIX_ERROR_BASE + 59, - NOATTR = B_POSIX_ERROR_BASE + 60, - NOTRECOVERABLE = B_POSIX_ERROR_BASE + 61, - OWNERDEAD = B_POSIX_ERROR_BASE + 62, - - ACCES = -0x7ffffffe, // Permission denied - INTR = -0x7ffffff6, // Interrupted system call - IO = -0x7fffffff, // Input/output error - BUSY = -0x7ffffff2, // Device busy - FAULT = -0x7fffecff, // Bad address - TIMEDOUT = -2147483639, // Operation timed out - AGAIN = -0x7ffffff5, - BADF = -0x7fffa000, // Bad file descriptor - EXIST = -0x7fff9ffe, // File exists - INVAL = -0x7ffffffb, // Invalid argument - NAMETOOLONG = -2147459068, // File name too long - NOENT = -0x7fff9ffd, // No such file or directory - PERM = -0x7ffffff1, // Operation not permitted - NOTDIR = -0x7fff9ffb, // Not a directory - ISDIR = -0x7fff9ff7, // Is a directory - NOTEMPTY = -2147459066, // Directory not empty - NOSPC = -0x7fff9ff9, // No space left on device - ROFS = -0x7fff9ff8, // Read-only filesystem - MFILE = -0x7fff9ff6, // Too many open files - XDEV = -0x7fff9ff5, // Cross-device link - NOEXEC = -0x7fffecfe, // Exec format error - PIPE = -0x7fff9ff3, // Broken pipe - NOMEM = -0x80000000, // Cannot allocate memory - LOOP = -2147459060, // Too many levels of symbolic links - SUCCESS = 0, - _, -}; - -pub const S = struct { - pub const IFMT = 0o170000; - pub const IFSOCK = 0o140000; - pub const IFLNK = 0o120000; - pub const IFREG = 0o100000; - pub const IFBLK = 0o060000; - pub const IFDIR = 0o040000; - pub const IFCHR = 0o020000; - pub const IFIFO = 0o010000; - pub const INDEX_DIR = 0o4000000000; - - pub const IUMSK = 0o7777; - pub const ISUID = 0o4000; - pub const ISGID = 0o2000; - pub const ISVTX = 0o1000; - pub const IRWXU = 0o700; - pub const IRUSR = 0o400; - pub const IWUSR = 0o200; - pub const IXUSR = 0o100; - pub const IRWXG = 0o070; - pub const IRGRP = 0o040; - pub const IWGRP = 0o020; - pub const IXGRP = 0o010; - pub const IRWXO = 0o007; - pub const IROTH = 0o004; - pub const IWOTH = 0o002; - pub const IXOTH = 0o001; - - pub fn ISREG(m: u32) bool { - return m & IFMT == IFREG; - } - - pub fn ISLNK(m: u32) bool { - return m & IFMT == IFLNK; - } - - pub fn ISBLK(m: u32) bool { - return m & IFMT == IFBLK; - } - - pub fn ISDIR(m: u32) bool { - return m & IFMT == IFDIR; - } - - pub fn ISCHR(m: u32) bool { - return m & IFMT == IFCHR; - } - - pub fn ISFIFO(m: u32) bool { - return m & IFMT == IFIFO; - } - - pub fn ISSOCK(m: u32) bool { - return m & IFMT == IFSOCK; - } - - pub fn ISINDEX(m: u32) bool { - return m & INDEX_DIR == INDEX_DIR; +pub const DirEnt = extern struct { + /// device + dev: dev_t, + /// parent device (only for queries) + pdev: dev_t, + /// inode number + ino: ino_t, + /// parent inode (only for queries) + pino: ino_t, + /// length of this record, not the name + reclen: u16, + /// name of the entry (null byte terminated) + name: [0]u8, + pub fn getName(dirent: *const DirEnt) [*:0]const u8 { + return @ptrCast(&dirent.name); } }; -pub const HOST_NAME_MAX = 255; +// /system/develop/headers/posix/errno.h -pub const addrinfo = extern struct { +extern "root" fn _errnop() *i32; +pub const _errno = _errnop; + +// /system/develop/headers/posix/poll.h + +pub const nfds_t = usize; + +pub const pollfd = extern struct { + fd: i32, + events: i16, + revents: i16, +}; + +pub const POLL = struct { + /// any readable data available + pub const IN = 0x0001; + /// file descriptor is writeable + pub const OUT = 0x0002; + pub const RDNORM = IN; + pub const WRNORM = OUT; + /// priority readable data + pub const RDBAND = 0x0008; + /// priority data can be written + pub const WRBAND = 0x0010; + /// high priority readable data + pub const PRI = 0x0020; + + /// errors pending + pub const ERR = 0x0004; + /// disconnected + pub const HUP = 0x0080; + /// invalid file descriptor + pub const NVAL = 0x1000; +}; + +// /system/develop/headers/posix/signal.h + +pub const sigset_t = u64; +pub const empty_sigset: sigset_t = 0; +pub const filled_sigset = ~@as(sigset_t, 0); + +pub const SIG = struct { + pub const DFL: ?Sigaction.handler_fn = @ptrFromInt(0); + pub const IGN: ?Sigaction.handler_fn = @ptrFromInt(1); + pub const ERR: ?Sigaction.handler_fn = @ptrFromInt(maxInt(usize)); + + pub const HOLD: ?Sigaction.handler_fn = @ptrFromInt(3); + + pub const HUP = 1; + pub const INT = 2; + pub const QUIT = 3; + pub const ILL = 4; + pub const CHLD = 5; + pub const ABRT = 6; + pub const IOT = ABRT; + pub const PIPE = 7; + pub const FPE = 8; + pub const KILL = 9; + pub const STOP = 10; + pub const SEGV = 11; + pub const CONT = 12; + pub const TSTP = 13; + pub const ALRM = 14; + pub const TERM = 15; + pub const TTIN = 16; + pub const TTOU = 17; + pub const USR1 = 18; + pub const USR2 = 19; + pub const WINCH = 20; + pub const KILLTHR = 21; + pub const TRAP = 22; + pub const POLL = 23; + pub const PROF = 24; + pub const SYS = 25; + pub const URG = 26; + pub const VTALRM = 27; + pub const XCPU = 28; + pub const XFSZ = 29; + pub const BUS = 30; + pub const RESERVED1 = 31; + pub const RESERVED2 = 32; + + pub const BLOCK = 1; + pub const UNBLOCK = 2; + pub const SETMASK = 3; +}; + +pub const siginfo_t = extern struct { + signo: i32, + code: i32, + errno: i32, + + pid: pid_t, + uid: uid_t, + addr: *allowzero anyopaque, +}; + +/// Renamed from `sigaction` to `Sigaction` to avoid conflict with the syscall. +pub const Sigaction = extern struct { + pub const handler_fn = *align(1) const fn (i32) callconv(.C) void; + pub const sigaction_fn = *const fn (i32, *const siginfo_t, ?*anyopaque) callconv(.C) void; + + /// signal handler + handler: extern union { + handler: handler_fn, + sigaction: sigaction_fn, + }, + + /// signal mask to apply + mask: sigset_t, + + /// see signal options flags: i32, - family: i32, - socktype: i32, - protocol: i32, - addrlen: socklen_t, - canonname: ?[*:0]u8, - addr: ?*sockaddr, - next: ?*addrinfo, + + /// will be passed to the signal handler, BeOS extension + userdata: *allowzero anyopaque = undefined, }; -pub const IPPROTO = struct { - pub const IP = 0; - pub const HOPOPTS = 0; - pub const ICMP = 1; - pub const IGMP = 2; - pub const TCP = 6; - pub const UDP = 17; - pub const IPV6 = 41; - pub const ROUTING = 43; - pub const FRAGMENT = 44; - pub const ESP = 50; - pub const AH = 51; - pub const ICMPV6 = 58; - pub const NONE = 59; - pub const DSTOPTS = 60; - pub const ETHERIP = 97; - pub const RAW = 255; - pub const MAX = 256; +pub const SA = struct { + pub const NOCLDSTOP = 0x01; + pub const NOCLDWAIT = 0x02; + pub const RESETHAND = 0x04; + pub const NODEFER = 0x08; + pub const RESTART = 0x10; + pub const ONSTACK = 0x20; + pub const SIGINFO = 0x40; + pub const NOMASK = NODEFER; + pub const STACK = ONSTACK; + pub const ONESHOT = RESETHAND; }; -pub const rlimit_resource = enum(c_int) { - CORE = 0, - CPU = 1, - DATA = 2, - FSIZE = 3, - NOFILE = 4, - STACK = 5, - AS = 6, - NOVMON = 7, - _, +pub const SS = struct { + pub const ONSTACK = 0x1; + pub const DISABLE = 0x2; }; -pub const rlim_t = i64; +pub const MINSIGSTKSZ = 8192; +pub const SIGSTKSZ = 16384; -pub const RLIM = struct { - /// No limit - pub const INFINITY: rlim_t = (1 << 63) - 1; - - pub const SAVED_MAX = INFINITY; - pub const SAVED_CUR = INFINITY; +pub const stack_t = extern struct { + sp: [*]u8, + size: isize, + flags: i32, }; -pub const rlimit = extern struct { - /// Soft limit - cur: rlim_t, - /// Hard limit - max: rlim_t, +pub const NSIG = 65; + +pub const mcontext_t = vregs; + +pub const ucontext_t = extern struct { + link: ?*ucontext_t, + sigmask: sigset_t, + stack: stack_t, + mcontext: mcontext_t, }; -pub const SHUT = struct { - pub const RD = 0; - pub const WR = 1; - pub const RDWR = 2; +// /system/develop/headers/posix/sys/stat.h + +pub const Stat = extern struct { + dev: dev_t, + ino: ino_t, + mode: mode_t, + nlink: nlink_t, + uid: uid_t, + gid: gid_t, + size: off_t, + rdev: dev_t, + blksize: blksize_t, + atim: timespec, + mtim: timespec, + ctim: timespec, + crtim: timespec, + type: u32, + blocks: blkcnt_t, + + pub fn atime(self: @This()) timespec { + return self.atim; + } + pub fn mtime(self: @This()) timespec { + return self.mtim; + } + pub fn ctime(self: @This()) timespec { + return self.ctim; + } + pub fn birthtime(self: @This()) timespec { + return self.crtim; + } }; -// TODO fill out if needed -pub const directory_which = enum(c_int) { - B_USER_SETTINGS_DIRECTORY = 0xbbe, +// /system/develop/headers/posix/sys/types.h - _, +pub const blkcnt_t = i64; +pub const blksize_t = i32; +pub const fsblkcnt_t = i64; +pub const fsfilcnt_t = i64; +pub const off_t = i64; +pub const ino_t = i64; +pub const cnt_t = i32; +pub const dev_t = i32; +pub const pid_t = i32; +pub const id_t = i32; + +pub const uid_t = u32; +pub const gid_t = u32; +pub const mode_t = u32; +pub const umode_t = u32; +pub const nlink_t = i32; + +pub const clockid_t = i32; +pub const timer_t = *opaque {}; + +// /system/develop/headers/posix/time.h + +pub const clock_t = i32; +pub const suseconds_t = i32; +pub const useconds_t = u32; + +pub const time_t = isize; + +pub const CLOCKS_PER_SEC = 1_000_000; +pub const CLK_TCK = CLOCKS_PER_SEC; +pub const TIME_UTC = 1; + +pub const CLOCK = struct { + /// system-wide monotonic clock (aka system time) + pub const MONOTONIC: clockid_t = 0; + /// system-wide real time clock + pub const REALTIME: clockid_t = -1; + /// clock measuring the used CPU time of the current process + pub const PROCESS_CPUTIME_ID: clockid_t = -2; + /// clock measuring the used CPU time of the current thread + pub const THREAD_CPUTIME_ID: clockid_t = -3; }; -pub const MSG_NOSIGNAL = 0x0800; +pub const timespec = extern struct { + /// seconds + tv_sec: time_t, + /// and nanoseconds + tv_nsec: isize, +}; + +pub const itimerspec = extern struct { + interval: timespec, + value: timespec, +}; + +// /system/develop/headers/private/system/syscalls.h + +pub extern "root" fn _kern_get_current_team() team_id; +pub extern "root" fn _kern_open_dir(fd: fd_t, path: [*:0]const u8) fd_t; +pub extern "root" fn _kern_read_dir(fd: fd_t, buffer: [*]u8, bufferSize: usize, maxCount: u32) isize; +pub extern "root" fn _kern_rewind_dir(fd: fd_t) status_t; +pub extern "root" fn _kern_read_stat(fd: fd_t, path: [*:0]const u8, traverseLink: bool, stat: *Stat, statSize: usize) status_t; diff --git a/lib/std/fs/Dir.zig b/lib/std/fs/Dir.zig index 74d91239f8..785e9541e2 100644 --- a/lib/std/fs/Dir.zig +++ b/lib/std/fs/Dir.zig @@ -220,71 +220,83 @@ pub const Iterator = switch (native_os) { }, .haiku => struct { dir: Dir, - buf: [1024]u8, // TODO align(@alignOf(posix.dirent64)), + buf: [@sizeOf(DirEnt) + posix.PATH_MAX]u8 align(@alignOf(DirEnt)), + offset: usize, index: usize, end_index: usize, first_iter: bool, const Self = @This(); + const DirEnt = posix.system.DirEnt; pub const Error = IteratorError; /// Memory such as file names referenced in this returned entry becomes invalid /// with subsequent calls to `next`, as well as when this `Dir` is deinitialized. pub fn next(self: *Self) Error!?Entry { - start_over: while (true) { - // TODO: find a better max - const HAIKU_MAX_COUNT = 10000; + while (true) { if (self.index >= self.end_index) { if (self.first_iter) { - posix.lseek_SET(self.dir.fd, 0) catch unreachable; // EBADF here likely means that the Dir was not opened with iteration permissions + switch (@as(posix.E, @enumFromInt(posix.system._kern_rewind_dir(self.dir.fd)))) { + .SUCCESS => {}, + .BADF => unreachable, // Dir is invalid + .FAULT => unreachable, + .NOTDIR => unreachable, + .INVAL => unreachable, + .ACCES => return error.AccessDenied, + .PERM => return error.AccessDenied, + else => |err| return posix.unexpectedErrno(err), + } self.first_iter = false; } const rc = posix.system._kern_read_dir( self.dir.fd, &self.buf, self.buf.len, - HAIKU_MAX_COUNT, + self.buf.len / @sizeOf(DirEnt), ); if (rc == 0) return null; if (rc < 0) { - switch (posix.errno(rc)) { - .BADF => unreachable, // Dir is invalid or was opened without iteration ability + switch (@as(posix.E, @enumFromInt(rc))) { + .BADF => unreachable, // Dir is invalid .FAULT => unreachable, .NOTDIR => unreachable, .INVAL => unreachable, + .OVERFLOW => unreachable, + .ACCES => return error.AccessDenied, + .PERM => return error.AccessDenied, else => |err| return posix.unexpectedErrno(err), } } + self.offset = 0; self.index = 0; - self.end_index = @as(usize, @intCast(rc)); - } - const haiku_entry = @as(*align(1) posix.system.dirent, @ptrCast(&self.buf[self.index])); - const next_index = self.index + haiku_entry.reclen; - self.index = next_index; - const name = mem.sliceTo(@as([*:0]u8, @ptrCast(&haiku_entry.name)), 0); - - if (mem.eql(u8, name, ".") or mem.eql(u8, name, "..") or (haiku_entry.ino == 0)) { - continue :start_over; + self.end_index = @intCast(rc); } + const dirent: *DirEnt = @ptrCast(@alignCast(&self.buf[self.offset])); + self.offset += dirent.reclen; + self.index += 1; + const name = mem.span(dirent.getName()); + if (mem.eql(u8, name, ".") or mem.eql(u8, name, "..") or dirent.ino == 0) continue; var stat_info: posix.Stat = undefined; - const rc = posix.system._kern_read_stat( + switch (@as(posix.E, @enumFromInt(posix.system._kern_read_stat( self.dir.fd, - &haiku_entry.name, + name, false, &stat_info, 0, - ); - if (rc != 0) { - switch (posix.errno(rc)) { - .SUCCESS => {}, - .BADF => unreachable, // Dir is invalid or was opened without iteration ability - .FAULT => unreachable, - .NOTDIR => unreachable, - .INVAL => unreachable, - else => |err| return posix.unexpectedErrno(err), - } + )))) { + .SUCCESS => {}, + .INVAL => unreachable, + .BADF => unreachable, // Dir is invalid + .NOMEM => return error.SystemResources, + .ACCES => return error.AccessDenied, + .PERM => return error.AccessDenied, + .FAULT => unreachable, + .NAMETOOLONG => unreachable, + .LOOP => unreachable, + .NOENT => continue, + else => |err| return posix.unexpectedErrno(err), } const statmode = stat_info.mode & posix.S.IFMT; @@ -315,7 +327,7 @@ pub const Iterator = switch (native_os) { dir: Dir, // The if guard is solely there to prevent compile errors from missing `linux.dirent64` // definition when compiling for other OSes. It doesn't do anything when compiling for Linux. - buf: [1024]u8 align(if (native_os != .linux) 1 else @alignOf(linux.dirent64)), + buf: [1024]u8 align(@alignOf(linux.dirent64)), index: usize, end_index: usize, first_iter: bool, @@ -599,13 +611,21 @@ fn iterateImpl(self: Dir, first_iter_start_value: bool) Iterator { .buf = undefined, .first_iter = first_iter_start_value, }, - .linux, .haiku => return Iterator{ + .linux => return Iterator{ .dir = self, .index = 0, .end_index = 0, .buf = undefined, .first_iter = first_iter_start_value, }, + .haiku => return Iterator{ + .dir = self, + .offset = 0, + .index = 0, + .end_index = 0, + .buf = undefined, + .first_iter = first_iter_start_value, + }, .windows => return Iterator{ .dir = self, .index = 0, @@ -1429,6 +1449,27 @@ pub fn openDirZ(self: Dir, sub_path_c: [*:0]const u8, args: OpenDirOptions) Open .wasi => { return openDir(self, mem.sliceTo(sub_path_c, 0), args); }, + .haiku => { + const rc = posix.system._kern_open_dir(self.fd, sub_path_c); + if (rc >= 0) return .{ .fd = rc }; + switch (@as(posix.E, @enumFromInt(rc))) { + .FAULT => unreachable, + .INVAL => unreachable, + .BADF => unreachable, + .ACCES => return error.AccessDenied, + .LOOP => return error.SymLinkLoop, + .MFILE => return error.ProcessFdQuotaExceeded, + .NAMETOOLONG => return error.NameTooLong, + .NFILE => return error.SystemFdQuotaExceeded, + .NODEV => return error.NoDevice, + .NOENT => return error.FileNotFound, + .NOMEM => return error.SystemResources, + .NOTDIR => return error.NotDir, + .PERM => return error.AccessDenied, + .BUSY => return error.DeviceBusy, + else => |err| return posix.unexpectedErrno(err), + } + }, else => { var symlink_flags: posix.O = .{ .ACCMODE = .RDONLY, From fcdb7027e9f606cf0f4415daee73cb717affe69e Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Sun, 7 Apr 2024 21:19:12 -0400 Subject: [PATCH 03/11] haiku: fix linking issues --- build.zig | 3 +++ lib/std/Target.zig | 7 +++++++ lib/std/zig/system/NativePaths.zig | 7 +++++++ src/link/Elf.zig | 7 +++++-- 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/build.zig b/build.zig index 11d716a17f..21059abd3c 100644 --- a/build.zig +++ b/build.zig @@ -747,6 +747,9 @@ fn addCmakeCfgOptionsToExe( try addCxxKnownPath(b, cfg, exe, b.fmt("libstdc++.{s}", .{lib_suffix}), null, need_cpp_includes); try addCxxKnownPath(b, cfg, exe, b.fmt("libgcc_eh.{s}", .{lib_suffix}), null, need_cpp_includes); }, + .haiku => { + try addCxxKnownPath(b, cfg, exe, b.fmt("libstdc++.{s}", .{lib_suffix}), null, need_cpp_includes); + }, else => {}, } } diff --git a/lib/std/Target.zig b/lib/std/Target.zig index 842442e37b..55cde46308 100644 --- a/lib/std/Target.zig +++ b/lib/std/Target.zig @@ -2740,6 +2740,13 @@ pub fn is_libc_lib_name(target: std.Target, name: []const u8) bool { return true; } + if (target.os.tag == .haiku) { + if (eqlIgnoreCase(ignore_case, name, "root")) + return true; + if (eqlIgnoreCase(ignore_case, name, "network")) + return true; + } + return false; } diff --git a/lib/std/zig/system/NativePaths.zig b/lib/std/zig/system/NativePaths.zig index 9d9ab22812..2a50e27b0c 100644 --- a/lib/std/zig/system/NativePaths.zig +++ b/lib/std/zig/system/NativePaths.zig @@ -105,6 +105,13 @@ pub fn detect(arena: Allocator, native_target: std.Target) !NativePaths { return self; } + if (builtin.os.tag == .haiku) { + try self.addLibDir("/system/non-packaged/lib"); + try self.addLibDir("/system/develop/lib"); + try self.addLibDir("/system/lib"); + return self; + } + if (builtin.os.tag != .windows and builtin.os.tag != .wasi) { const triple = try native_target.linuxTriple(arena); diff --git a/src/link/Elf.zig b/src/link/Elf.zig index c20a4b6afa..72937cd628 100644 --- a/src/link/Elf.zig +++ b/src/link/Elf.zig @@ -1517,7 +1517,7 @@ fn dumpArgv(self: *Elf, comp: *Compilation) !void { if (self.base.isStatic()) { try argv.append("-static"); - } else if (self.base.isDynLib()) { + } else if (self.base.isDynLib() or (target.os.tag == .haiku and self.base.isExe())) { try argv.append("-shared"); } @@ -2469,7 +2469,10 @@ fn linkWithLLD(self: *Elf, arena: Allocator, prog_node: *std.Progress.Node) !voi } else { try argv.append("-static"); } - } else if (is_dyn_lib) { + } else if (switch (target.os.tag) { + else => is_dyn_lib, + .haiku => is_exe_or_dyn_lib, + }) { try argv.append("-shared"); } From 3f1f05011edc19e0b94b3200e54f30cf7aa8da8e Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Sun, 7 Apr 2024 21:40:59 -0400 Subject: [PATCH 04/11] haiku: fix abi and dynamic linker detection --- lib/std/zig/system.zig | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/std/zig/system.zig b/lib/std/zig/system.zig index c9fe14a1c6..af0986e0b8 100644 --- a/lib/std/zig/system.zig +++ b/lib/std/zig/system.zig @@ -988,9 +988,13 @@ fn detectAbiAndDynamicLinker( // if it finds one, then instead of using /usr/bin/env as the ELF file to examine, it uses the file it references instead, // doing the same logic recursively in case it finds another shebang line. - // Since /usr/bin/env is hard-coded into the shebang line of many portable scripts, it's a - // reasonably reliable path to start with. - var file_name: []const u8 = "/usr/bin/env"; + var file_name: []const u8 = switch (os.tag) { + // Since /usr/bin/env is hard-coded into the shebang line of many portable scripts, it's a + // reasonably reliable path to start with. + else => "/usr/bin/env", + // Haiku does not have a /usr root directory. + .haiku => "/bin/env", + }; // #! (2) + 255 (max length of shebang line since Linux 5.1) + \n (1) var buffer: [258]u8 = undefined; while (true) { From b98e3bee2ba69c55a8c890eaca5eafae9fc251a7 Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Sun, 7 Apr 2024 22:04:15 -0400 Subject: [PATCH 05/11] haiku: default to single threaded to work around tls bugs --- src/target.zig | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/target.zig b/src/target.zig index fa782075c7..3ad36deab2 100644 --- a/src/target.zig +++ b/src/target.zig @@ -59,10 +59,15 @@ pub fn alwaysSingleThreaded(target: std.Target) bool { } pub fn defaultSingleThreaded(target: std.Target) bool { - return switch (target.cpu.arch) { - .wasm32, .wasm64 => true, - else => false, - }; + switch (target.cpu.arch) { + .wasm32, .wasm64 => return true, + else => {}, + } + switch (target.os.tag) { + .haiku => return true, + else => {}, + } + return false; } /// Valgrind supports more, but Zig does not support them yet. From 4cd92567e7392b0fe390562d7ea52f68357bb45a Mon Sep 17 00:00:00 2001 From: Jakub Konka Date: Mon, 8 Apr 2024 10:24:48 +0200 Subject: [PATCH 06/11] link/elf: propagate Haiku requirement of always passing -shared for images --- src/link/Elf.zig | 24 +++++++++++++++++------- src/link/Elf/Atom.zig | 4 ++-- src/link/Elf/Object.zig | 2 +- src/link/Elf/ZigObject.zig | 2 +- src/link/Elf/synthetic_sections.zig | 24 ++++++++++++------------ 5 files changed, 33 insertions(+), 23 deletions(-) diff --git a/src/link/Elf.zig b/src/link/Elf.zig index 72937cd628..f5f9a073e5 100644 --- a/src/link/Elf.zig +++ b/src/link/Elf.zig @@ -1461,7 +1461,7 @@ fn dumpArgv(self: *Elf, comp: *Compilation) !void { } } - if (self.base.isDynLib()) { + if (self.isEffectivelyDynLib()) { if (self.soname) |name| { try argv.append("-soname"); try argv.append(name); @@ -1517,7 +1517,7 @@ fn dumpArgv(self: *Elf, comp: *Compilation) !void { if (self.base.isStatic()) { try argv.append("-static"); - } else if (self.base.isDynLib() or (target.os.tag == .haiku and self.base.isExe())) { + } else if (self.isEffectivelyDynLib()) { try argv.append("-shared"); } @@ -1997,7 +1997,7 @@ fn markImportsExports(self: *Elf) void { } if (file_ptr.index() == file_index) { global.flags.@"export" = true; - if (elf_file.base.isDynLib() and vis != .PROTECTED) { + if (elf_file.isEffectivelyDynLib() and vis != .PROTECTED) { global.flags.import = true; } } @@ -2005,7 +2005,7 @@ fn markImportsExports(self: *Elf) void { } }.mark; - if (!self.base.isDynLib()) { + if (!self.isEffectivelyDynLib()) { for (self.shared_objects.items) |index| { for (self.file(index).?.globals()) |global_index| { const global = self.symbol(global_index); @@ -3117,7 +3117,7 @@ fn addLinkerDefinedSymbols(self: *Elf) !void { } } - if (self.getTarget().cpu.arch == .riscv64 and self.base.isDynLib()) { + if (self.getTarget().cpu.arch == .riscv64 and self.isEffectivelyDynLib()) { self.global_pointer_index = try linker_defined.addGlobal("__global_pointer$", self); } @@ -3423,7 +3423,7 @@ fn initSyntheticSections(self: *Elf) !void { }); } - if (self.base.isDynLib() or self.shared_objects.items.len > 0 or comp.config.pie) { + if (self.isEffectivelyDynLib() or self.shared_objects.items.len > 0 or comp.config.pie) { self.dynstrtab_section_index = try self.addSection(.{ .name = ".dynstr", .flags = elf.SHF_ALLOC, @@ -3660,7 +3660,7 @@ fn setDynamicSection(self: *Elf, rpaths: []const []const u8) !void { try self.dynamic.addNeeded(shared_object, self); } - if (self.base.isDynLib()) { + if (self.isEffectivelyDynLib()) { if (self.soname) |soname| { try self.dynamic.setSoname(soname, self); } @@ -5249,6 +5249,16 @@ const CsuObjects = struct { } }; +/// If a target compiles other output modes as dynamic libraries, +/// this function returns true for those too. +pub fn isEffectivelyDynLib(self: Elf) bool { + if (self.base.isDynLib()) return true; + return switch (self.getTarget().os.tag) { + .haiku => self.base.isExe(), + else => false, + }; +} + pub fn isZigSection(self: Elf, shndx: u32) bool { inline for (&[_]?u32{ self.zig_text_section_index, diff --git a/src/link/Elf/Atom.zig b/src/link/Elf/Atom.zig index 3db1182696..b5ceeb24b8 100644 --- a/src/link/Elf/Atom.zig +++ b/src/link/Elf/Atom.zig @@ -1054,7 +1054,7 @@ const x86_64 = struct { it: *RelocsIterator, ) !void { const is_static = elf_file.base.isStatic(); - const is_dyn_lib = elf_file.base.isDynLib(); + const is_dyn_lib = elf_file.isEffectivelyDynLib(); const r_type: elf.R_X86_64 = @enumFromInt(rel.r_type()); const r_offset = std.math.cast(usize, rel.r_offset) orelse return error.Overflow; @@ -1599,7 +1599,7 @@ const aarch64 = struct { _ = it; const r_type: elf.R_AARCH64 = @enumFromInt(rel.r_type()); - const is_dyn_lib = elf_file.base.isDynLib(); + const is_dyn_lib = elf_file.isEffectivelyDynLib(); switch (r_type) { .ABS64 => { diff --git a/src/link/Elf/Object.zig b/src/link/Elf/Object.zig index cc135f2f97..d483540aa6 100644 --- a/src/link/Elf/Object.zig +++ b/src/link/Elf/Object.zig @@ -568,7 +568,7 @@ pub fn claimUnresolved(self: *Object, elf_file: *Elf) void { } const is_import = blk: { - if (!elf_file.base.isDynLib()) break :blk false; + if (!elf_file.isEffectivelyDynLib()) break :blk false; const vis = @as(elf.STV, @enumFromInt(esym.st_other)); if (vis == .HIDDEN) break :blk false; break :blk true; diff --git a/src/link/Elf/ZigObject.zig b/src/link/Elf/ZigObject.zig index 6aede441c8..8b8dc9bd81 100644 --- a/src/link/Elf/ZigObject.zig +++ b/src/link/Elf/ZigObject.zig @@ -367,7 +367,7 @@ pub fn claimUnresolved(self: ZigObject, elf_file: *Elf) void { } const is_import = blk: { - if (!elf_file.base.isDynLib()) break :blk false; + if (!elf_file.isEffectivelyDynLib()) break :blk false; const vis = @as(elf.STV, @enumFromInt(esym.st_other)); if (vis == .HIDDEN) break :blk false; break :blk true; diff --git a/src/link/Elf/synthetic_sections.zig b/src/link/Elf/synthetic_sections.zig index 0e7cb90545..2ef7d49540 100644 --- a/src/link/Elf/synthetic_sections.zig +++ b/src/link/Elf/synthetic_sections.zig @@ -89,7 +89,7 @@ pub const DynamicSection = struct { if (elf_file.verneed_section_index != null) nentries += 2; // VERNEED if (dt.getFlags(elf_file) != null) nentries += 1; // FLAGS if (dt.getFlags1(elf_file) != null) nentries += 1; // FLAGS_1 - if (!elf_file.base.isDynLib()) nentries += 1; // DEBUG + if (!elf_file.isEffectivelyDynLib()) nentries += 1; // DEBUG nentries += 1; // NULL return nentries * @sizeOf(elf.Elf64_Dyn); } @@ -216,7 +216,7 @@ pub const DynamicSection = struct { } // DEBUG - if (!elf_file.base.isDynLib()) try writer.writeStruct(elf.Elf64_Dyn{ .d_tag = elf.DT_DEBUG, .d_val = 0 }); + if (!elf_file.isEffectivelyDynLib()) try writer.writeStruct(elf.Elf64_Dyn{ .d_tag = elf.DT_DEBUG, .d_val = 0 }); // NULL try writer.writeStruct(elf.Elf64_Dyn{ .d_tag = elf.DT_NULL, .d_val = 0 }); @@ -256,7 +256,7 @@ pub const ZigGotSection = struct { entry.* = sym_index; const symbol = elf_file.symbol(sym_index); symbol.flags.has_zig_got = true; - if (elf_file.base.isDynLib() or (elf_file.base.isExe() and comp.config.pie)) { + if (elf_file.isEffectivelyDynLib() or (elf_file.base.isExe() and comp.config.pie)) { zig_got.flags.needs_rela = true; } if (symbol.extra(elf_file)) |extra| { @@ -495,7 +495,7 @@ pub const GotSection = struct { const symbol = elf_file.symbol(sym_index); symbol.flags.has_got = true; if (symbol.flags.import or symbol.isIFunc(elf_file) or - ((elf_file.base.isDynLib() or (elf_file.base.isExe() and comp.config.pie)) and !symbol.isAbs(elf_file))) + ((elf_file.isEffectivelyDynLib() or (elf_file.base.isExe() and comp.config.pie)) and !symbol.isAbs(elf_file))) { got.flags.needs_rela = true; } @@ -528,7 +528,7 @@ pub const GotSection = struct { entry.symbol_index = sym_index; const symbol = elf_file.symbol(sym_index); symbol.flags.has_tlsgd = true; - if (symbol.flags.import or elf_file.base.isDynLib()) got.flags.needs_rela = true; + if (symbol.flags.import or elf_file.isEffectivelyDynLib()) got.flags.needs_rela = true; if (symbol.extra(elf_file)) |extra| { var new_extra = extra; new_extra.tlsgd = index; @@ -545,7 +545,7 @@ pub const GotSection = struct { entry.symbol_index = sym_index; const symbol = elf_file.symbol(sym_index); symbol.flags.has_gottp = true; - if (symbol.flags.import or elf_file.base.isDynLib()) got.flags.needs_rela = true; + if (symbol.flags.import or elf_file.isEffectivelyDynLib()) got.flags.needs_rela = true; if (symbol.extra(elf_file)) |extra| { var new_extra = extra; new_extra.gottp = index; @@ -580,7 +580,7 @@ pub const GotSection = struct { pub fn write(got: GotSection, elf_file: *Elf, writer: anytype) !void { const comp = elf_file.base.comp; - const is_dyn_lib = elf_file.base.isDynLib(); + const is_dyn_lib = elf_file.isEffectivelyDynLib(); const apply_relocs = true; // TODO add user option for this for (got.entries.items) |entry| { @@ -595,7 +595,7 @@ pub const GotSection = struct { if (symbol.?.flags.import) break :blk 0; if (symbol.?.isIFunc(elf_file)) break :blk if (apply_relocs) value else 0; - if ((elf_file.base.isDynLib() or (elf_file.base.isExe() and comp.config.pie)) and + if ((elf_file.isEffectivelyDynLib() or (elf_file.base.isExe() and comp.config.pie)) and !symbol.?.isAbs(elf_file)) { break :blk if (apply_relocs) value else 0; @@ -653,7 +653,7 @@ pub const GotSection = struct { pub fn addRela(got: GotSection, elf_file: *Elf) !void { const comp = elf_file.base.comp; const gpa = comp.gpa; - const is_dyn_lib = elf_file.base.isDynLib(); + const is_dyn_lib = elf_file.isEffectivelyDynLib(); const cpu_arch = elf_file.getTarget().cpu.arch; try elf_file.rela_dyn.ensureUnusedCapacity(gpa, got.numRela(elf_file)); @@ -683,7 +683,7 @@ pub const GotSection = struct { }); continue; } - if ((elf_file.base.isDynLib() or (elf_file.base.isExe() and comp.config.pie)) and + if ((elf_file.isEffectivelyDynLib() or (elf_file.base.isExe() and comp.config.pie)) and !symbol.?.isAbs(elf_file)) { elf_file.addRelaDynAssumeCapacity(.{ @@ -758,7 +758,7 @@ pub const GotSection = struct { pub fn numRela(got: GotSection, elf_file: *Elf) usize { const comp = elf_file.base.comp; - const is_dyn_lib = elf_file.base.isDynLib(); + const is_dyn_lib = elf_file.isEffectivelyDynLib(); var num: usize = 0; for (got.entries.items) |entry| { const symbol = switch (entry.tag) { @@ -767,7 +767,7 @@ pub const GotSection = struct { }; switch (entry.tag) { .got => if (symbol.?.flags.import or symbol.?.isIFunc(elf_file) or - ((elf_file.base.isDynLib() or (elf_file.base.isExe() and comp.config.pie)) and + ((elf_file.isEffectivelyDynLib() or (elf_file.base.isExe() and comp.config.pie)) and !symbol.?.isAbs(elf_file))) { num += 1; From 7611d90ba011fb030523e669e85acfb6faae5d19 Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Mon, 8 Apr 2024 12:44:42 -0400 Subject: [PATCH 07/11] InternPool: remove slice from byte aggregate keys This deletes a ton of lookups and avoids many UAF bugs. Closes #19485 --- lib/std/zig/Zir.zig | 8 +- src/Compilation.zig | 7 +- src/InternPool.zig | 354 +++++++++++---------- src/Module.zig | 113 ++++--- src/Sema.zig | 581 ++++++++++++++++++++--------------- src/Value.zig | 180 ++++++----- src/arch/aarch64/CodeGen.zig | 4 +- src/arch/wasm/CodeGen.zig | 19 +- src/arch/x86_64/CodeGen.zig | 6 +- src/codegen.zig | 107 +++---- src/codegen/c.zig | 106 +++---- src/codegen/c/Type.zig | 10 +- src/codegen/llvm.zig | 113 ++++--- src/codegen/spirv.zig | 43 +-- src/link/Coff.zig | 48 ++- src/link/Dwarf.zig | 37 +-- src/link/Elf/ZigObject.zig | 32 +- src/link/MachO/ZigObject.zig | 38 +-- src/link/Plan9.zig | 42 +-- src/link/SpirV.zig | 11 +- src/link/Wasm/ZigObject.zig | 48 ++- src/mutable_value.zig | 12 +- src/print_value.zig | 49 +-- src/type.zig | 22 +- 24 files changed, 1038 insertions(+), 952 deletions(-) diff --git a/lib/std/zig/Zir.zig b/lib/std/zig/Zir.zig index db082b7f8e..64e8a1c805 100644 --- a/lib/std/zig/Zir.zig +++ b/lib/std/zig/Zir.zig @@ -106,12 +106,8 @@ pub const NullTerminatedString = enum(u32) { /// Given an index into `string_bytes` returns the null-terminated string found there. pub fn nullTerminatedString(code: Zir, index: NullTerminatedString) [:0]const u8 { - const start = @intFromEnum(index); - var end: u32 = start; - while (code.string_bytes[end] != 0) { - end += 1; - } - return code.string_bytes[start..end :0]; + const slice = code.string_bytes[@intFromEnum(index)..]; + return slice[0..std.mem.indexOfScalar(u8, slice, 0).? :0]; } pub fn refSlice(code: Zir, start: usize, len: usize) []Inst.Ref { diff --git a/src/Compilation.zig b/src/Compilation.zig index c533f2fae7..5395be9f32 100644 --- a/src/Compilation.zig +++ b/src/Compilation.zig @@ -3159,7 +3159,7 @@ pub fn addModuleErrorMsg(mod: *Module, eb: *ErrorBundle.Wip, module_err_msg: Mod const rt_file_path = try module_reference.src_loc.file_scope.fullPath(gpa); defer gpa.free(rt_file_path); ref_traces.appendAssumeCapacity(.{ - .decl_name = try eb.addString(ip.stringToSlice(module_reference.decl)), + .decl_name = try eb.addString(module_reference.decl.toSlice(ip)), .src_loc = try eb.addSourceLocation(.{ .src_path = try eb.addString(rt_file_path), .span_start = span.start, @@ -4074,8 +4074,7 @@ fn workerCheckEmbedFile( fn detectEmbedFileUpdate(comp: *Compilation, embed_file: *Module.EmbedFile) !void { const mod = comp.module.?; const ip = &mod.intern_pool; - const sub_file_path = ip.stringToSlice(embed_file.sub_file_path); - var file = try embed_file.owner.root.openFile(sub_file_path, .{}); + var file = try embed_file.owner.root.openFile(embed_file.sub_file_path.toSlice(ip), .{}); defer file.close(); const stat = try file.stat(); @@ -4444,7 +4443,7 @@ fn reportRetryableEmbedFileError( const ip = &mod.intern_pool; const err_msg = try Module.ErrorMsg.create(gpa, src_loc, "unable to load '{}{s}': {s}", .{ embed_file.owner.root, - ip.stringToSlice(embed_file.sub_file_path), + embed_file.sub_file_path.toSlice(ip), @errorName(err), }); diff --git a/src/InternPool.zig b/src/InternPool.zig index 1155d8c5ad..15dba62e07 100644 --- a/src/InternPool.zig +++ b/src/InternPool.zig @@ -351,7 +351,7 @@ const KeyAdapter = struct { pub fn eql(ctx: @This(), a: Key, b_void: void, b_map_index: usize) bool { _ = b_void; if (ctx.intern_pool.items.items(.tag)[b_map_index] == .removed) return false; - return ctx.intern_pool.indexToKey(@as(Index, @enumFromInt(b_map_index))).eql(a, ctx.intern_pool); + return ctx.intern_pool.indexToKey(@enumFromInt(b_map_index)).eql(a, ctx.intern_pool); } pub fn hash(ctx: @This(), a: Key) u32 { @@ -385,7 +385,7 @@ pub const RuntimeIndex = enum(u32) { _, pub fn increment(ri: *RuntimeIndex) void { - ri.* = @as(RuntimeIndex, @enumFromInt(@intFromEnum(ri.*) + 1)); + ri.* = @enumFromInt(@intFromEnum(ri.*) + 1); } }; @@ -418,12 +418,44 @@ pub const OptionalNamespaceIndex = enum(u32) { /// An index into `string_bytes`. pub const String = enum(u32) { + /// An empty string. + empty = 0, _, + + pub fn toSlice(string: String, len: u64, ip: *const InternPool) []const u8 { + return ip.string_bytes.items[@intFromEnum(string)..][0..@intCast(len)]; + } + + pub fn at(string: String, index: u64, ip: *const InternPool) u8 { + return ip.string_bytes.items[@intCast(@intFromEnum(string) + index)]; + } + + pub fn toNullTerminatedString(string: String, len: u64, ip: *const InternPool) NullTerminatedString { + assert(std.mem.indexOfScalar(u8, string.toSlice(len, ip), 0) == null); + assert(string.at(len, ip) == 0); + return @enumFromInt(@intFromEnum(string)); + } +}; + +/// An index into `string_bytes` which might be `none`. +pub const OptionalString = enum(u32) { + /// This is distinct from `none` - it is a valid index that represents empty string. + empty = 0, + none = std.math.maxInt(u32), + _, + + pub fn unwrap(string: OptionalString) ?String { + return if (string != .none) @enumFromInt(@intFromEnum(string)) else null; + } + + pub fn toSlice(string: OptionalString, len: u64, ip: *const InternPool) ?[]const u8 { + return (string.unwrap() orelse return null).toSlice(len, ip); + } }; /// An index into `string_bytes`. pub const NullTerminatedString = enum(u32) { - /// This is distinct from `none` - it is a valid index that represents empty string. + /// An empty string. empty = 0, _, @@ -447,6 +479,19 @@ pub const NullTerminatedString = enum(u32) { return @enumFromInt(@intFromEnum(self)); } + pub fn toSlice(string: NullTerminatedString, ip: *const InternPool) [:0]const u8 { + const slice = ip.string_bytes.items[@intFromEnum(string)..]; + return slice[0..std.mem.indexOfScalar(u8, slice, 0).? :0]; + } + + pub fn length(string: NullTerminatedString, ip: *const InternPool) u32 { + return @intCast(string.toSlice(ip).len); + } + + pub fn eqlSlice(string: NullTerminatedString, slice: []const u8, ip: *const InternPool) bool { + return std.mem.eql(u8, string.toSlice(ip), slice); + } + const Adapter = struct { strings: []const NullTerminatedString, @@ -467,11 +512,11 @@ pub const NullTerminatedString = enum(u32) { return @intFromEnum(a) < @intFromEnum(b); } - pub fn toUnsigned(self: NullTerminatedString, ip: *const InternPool) ?u32 { - const s = ip.stringToSlice(self); - if (s.len > 1 and s[0] == '0') return null; - if (std.mem.indexOfScalar(u8, s, '_')) |_| return null; - return std.fmt.parseUnsigned(u32, s, 10) catch null; + pub fn toUnsigned(string: NullTerminatedString, ip: *const InternPool) ?u32 { + const slice = string.toSlice(ip); + if (slice.len > 1 and slice[0] == '0') return null; + if (std.mem.indexOfScalar(u8, slice, '_')) |_| return null; + return std.fmt.parseUnsigned(u32, slice, 10) catch null; } const FormatData = struct { @@ -484,11 +529,11 @@ pub const NullTerminatedString = enum(u32) { _: std.fmt.FormatOptions, writer: anytype, ) @TypeOf(writer).Error!void { - const s = data.ip.stringToSlice(data.string); + const slice = data.string.toSlice(data.ip); if (comptime std.mem.eql(u8, specifier, "")) { - try writer.writeAll(s); + try writer.writeAll(slice); } else if (comptime std.mem.eql(u8, specifier, "i")) { - try writer.print("{p}", .{std.zig.fmtId(s)}); + try writer.print("{p}", .{std.zig.fmtId(slice)}); } else @compileError("invalid format string '" ++ specifier ++ "' for '" ++ @typeName(NullTerminatedString) ++ "'"); } @@ -504,9 +549,12 @@ pub const OptionalNullTerminatedString = enum(u32) { none = std.math.maxInt(u32), _, - pub fn unwrap(oi: OptionalNullTerminatedString) ?NullTerminatedString { - if (oi == .none) return null; - return @enumFromInt(@intFromEnum(oi)); + pub fn unwrap(string: OptionalNullTerminatedString) ?NullTerminatedString { + return if (string != .none) @enumFromInt(@intFromEnum(string)) else null; + } + + pub fn toSlice(string: OptionalNullTerminatedString, ip: *const InternPool) ?[:0]const u8 { + return (string.unwrap() orelse return null).toSlice(ip); } }; @@ -690,6 +738,10 @@ pub const Key = union(enum) { len: u64, child: Index, sentinel: Index = .none, + + pub fn lenIncludingSentinel(array_type: ArrayType) u64 { + return array_type.len + @intFromBool(array_type.sentinel != .none); + } }; /// Extern so that hashing can be done via memory reinterpreting. @@ -1043,7 +1095,7 @@ pub const Key = union(enum) { storage: Storage, pub const Storage = union(enum) { - bytes: []const u8, + bytes: String, elems: []const Index, repeated_elem: Index, @@ -1203,7 +1255,7 @@ pub const Key = union(enum) { if (child == .u8_type) { switch (aggregate.storage) { - .bytes => |bytes| for (bytes[0..@intCast(len)]) |byte| { + .bytes => |bytes| for (bytes.toSlice(len, ip)) |byte| { std.hash.autoHash(&hasher, KeyTag.int); std.hash.autoHash(&hasher, byte); }, @@ -1240,7 +1292,7 @@ pub const Key = union(enum) { switch (aggregate.storage) { .bytes => unreachable, - .elems => |elems| for (elems[0..@as(usize, @intCast(len))]) |elem| + .elems => |elems| for (elems[0..@intCast(len)]) |elem| std.hash.autoHash(&hasher, elem), .repeated_elem => |elem| { var remaining = len; @@ -1505,11 +1557,11 @@ pub const Key = union(enum) { if (a_info.ty == .c_longdouble_type and a_info.storage != .f80) { // These are strange: we'll sometimes represent them as f128, even if the // underlying type is smaller. f80 is an exception: see float_c_longdouble_f80. - const a_val = switch (a_info.storage) { - inline else => |val| @as(u128, @bitCast(@as(f128, @floatCast(val)))), + const a_val: u128 = switch (a_info.storage) { + inline else => |val| @bitCast(@as(f128, @floatCast(val))), }; - const b_val = switch (b_info.storage) { - inline else => |val| @as(u128, @bitCast(@as(f128, @floatCast(val)))), + const b_val: u128 = switch (b_info.storage) { + inline else => |val| @bitCast(@as(f128, @floatCast(val))), }; return a_val == b_val; } @@ -1560,11 +1612,11 @@ pub const Key = union(enum) { const len = ip.aggregateTypeLen(a_info.ty); const StorageTag = @typeInfo(Key.Aggregate.Storage).Union.tag_type.?; if (@as(StorageTag, a_info.storage) != @as(StorageTag, b_info.storage)) { - for (0..@as(usize, @intCast(len))) |elem_index| { + for (0..@intCast(len)) |elem_index| { const a_elem = switch (a_info.storage) { .bytes => |bytes| ip.getIfExists(.{ .int = .{ .ty = .u8_type, - .storage = .{ .u64 = bytes[elem_index] }, + .storage = .{ .u64 = bytes.at(elem_index, ip) }, } }) orelse return false, .elems => |elems| elems[elem_index], .repeated_elem => |elem| elem, @@ -1572,7 +1624,7 @@ pub const Key = union(enum) { const b_elem = switch (b_info.storage) { .bytes => |bytes| ip.getIfExists(.{ .int = .{ .ty = .u8_type, - .storage = .{ .u64 = bytes[elem_index] }, + .storage = .{ .u64 = bytes.at(elem_index, ip) }, } }) orelse return false, .elems => |elems| elems[elem_index], .repeated_elem => |elem| elem, @@ -1585,18 +1637,15 @@ pub const Key = union(enum) { switch (a_info.storage) { .bytes => |a_bytes| { const b_bytes = b_info.storage.bytes; - return std.mem.eql( - u8, - a_bytes[0..@as(usize, @intCast(len))], - b_bytes[0..@as(usize, @intCast(len))], - ); + return a_bytes == b_bytes or + std.mem.eql(u8, a_bytes.toSlice(len, ip), b_bytes.toSlice(len, ip)); }, .elems => |a_elems| { const b_elems = b_info.storage.elems; return std.mem.eql( Index, - a_elems[0..@as(usize, @intCast(len))], - b_elems[0..@as(usize, @intCast(len))], + a_elems[0..@intCast(len)], + b_elems[0..@intCast(len)], ); }, .repeated_elem => |a_elem| { @@ -4175,10 +4224,10 @@ pub const Float64 = struct { } fn pack(val: f64) Float64 { - const bits = @as(u64, @bitCast(val)); + const bits: u64 = @bitCast(val); return .{ - .piece0 = @as(u32, @truncate(bits)), - .piece1 = @as(u32, @truncate(bits >> 32)), + .piece0 = @truncate(bits), + .piece1 = @truncate(bits >> 32), }; } }; @@ -4197,11 +4246,11 @@ pub const Float80 = struct { } fn pack(val: f80) Float80 { - const bits = @as(u80, @bitCast(val)); + const bits: u80 = @bitCast(val); return .{ - .piece0 = @as(u32, @truncate(bits)), - .piece1 = @as(u32, @truncate(bits >> 32)), - .piece2 = @as(u16, @truncate(bits >> 64)), + .piece0 = @truncate(bits), + .piece1 = @truncate(bits >> 32), + .piece2 = @truncate(bits >> 64), }; } }; @@ -4222,12 +4271,12 @@ pub const Float128 = struct { } fn pack(val: f128) Float128 { - const bits = @as(u128, @bitCast(val)); + const bits: u128 = @bitCast(val); return .{ - .piece0 = @as(u32, @truncate(bits)), - .piece1 = @as(u32, @truncate(bits >> 32)), - .piece2 = @as(u32, @truncate(bits >> 64)), - .piece3 = @as(u32, @truncate(bits >> 96)), + .piece0 = @truncate(bits), + .piece1 = @truncate(bits >> 32), + .piece2 = @truncate(bits >> 64), + .piece3 = @truncate(bits >> 96), }; } }; @@ -4244,7 +4293,7 @@ pub fn init(ip: *InternPool, gpa: Allocator) !void { assert(ip.items.len == 0); // Reserve string index 0 for an empty string. - assert((try ip.getOrPutString(gpa, "")) == .empty); + assert((try ip.getOrPutString(gpa, "", .no_embedded_nulls)) == .empty); // So that we can use `catch unreachable` below. try ip.items.ensureUnusedCapacity(gpa, static_keys.len); @@ -4329,13 +4378,13 @@ pub fn indexToKey(ip: *const InternPool, index: Index) Key { .type_int_signed => .{ .int_type = .{ .signedness = .signed, - .bits = @as(u16, @intCast(data)), + .bits = @intCast(data), }, }, .type_int_unsigned => .{ .int_type = .{ .signedness = .unsigned, - .bits = @as(u16, @intCast(data)), + .bits = @intCast(data), }, }, .type_array_big => { @@ -4354,8 +4403,8 @@ pub fn indexToKey(ip: *const InternPool, index: Index) Key { .sentinel = .none, } }; }, - .simple_type => .{ .simple_type = @as(SimpleType, @enumFromInt(data)) }, - .simple_value => .{ .simple_value = @as(SimpleValue, @enumFromInt(data)) }, + .simple_type => .{ .simple_type = @enumFromInt(data) }, + .simple_value => .{ .simple_value = @enumFromInt(data) }, .type_vector => { const vector_info = ip.extraData(Vector, data); @@ -4506,9 +4555,9 @@ pub fn indexToKey(ip: *const InternPool, index: Index) Key { } }, .type_function => .{ .func_type = ip.extraFuncType(data) }, - .undef => .{ .undef = @as(Index, @enumFromInt(data)) }, + .undef => .{ .undef = @enumFromInt(data) }, .opt_null => .{ .opt = .{ - .ty = @as(Index, @enumFromInt(data)), + .ty = @enumFromInt(data), .val = .none, } }, .opt_payload => { @@ -4670,11 +4719,11 @@ pub fn indexToKey(ip: *const InternPool, index: Index) Key { }, .float_f16 => .{ .float = .{ .ty = .f16_type, - .storage = .{ .f16 = @as(f16, @bitCast(@as(u16, @intCast(data)))) }, + .storage = .{ .f16 = @bitCast(@as(u16, @intCast(data))) }, } }, .float_f32 => .{ .float = .{ .ty = .f32_type, - .storage = .{ .f32 = @as(f32, @bitCast(data)) }, + .storage = .{ .f32 = @bitCast(data) }, } }, .float_f64 => .{ .float = .{ .ty = .f64_type, @@ -4771,10 +4820,9 @@ pub fn indexToKey(ip: *const InternPool, index: Index) Key { }, .bytes => { const extra = ip.extraData(Bytes, data); - const len: u32 = @intCast(ip.aggregateTypeLenIncludingSentinel(extra.ty)); return .{ .aggregate = .{ .ty = extra.ty, - .storage = .{ .bytes = ip.string_bytes.items[@intFromEnum(extra.bytes)..][0..len] }, + .storage = .{ .bytes = extra.bytes }, } }; }, .aggregate => { @@ -4809,14 +4857,14 @@ pub fn indexToKey(ip: *const InternPool, index: Index) Key { .val = .{ .payload = extra.val }, } }; }, - .enum_literal => .{ .enum_literal = @as(NullTerminatedString, @enumFromInt(data)) }, + .enum_literal => .{ .enum_literal = @enumFromInt(data) }, .enum_tag => .{ .enum_tag = ip.extraData(Tag.EnumTag, data) }, .memoized_call => { const extra = ip.extraDataTrail(MemoizedCall, data); return .{ .memoized_call = .{ .func = extra.data.func, - .arg_values = @as([]const Index, @ptrCast(ip.extra.items[extra.end..][0..extra.data.args_len])), + .arg_values = @ptrCast(ip.extra.items[extra.end..][0..extra.data.args_len]), .result = extra.data.result, } }; }, @@ -5596,9 +5644,8 @@ pub fn get(ip: *InternPool, gpa: Allocator, key: Key) Allocator.Error!Index { switch (aggregate.storage) { .bytes => |bytes| { assert(child == .u8_type); - if (bytes.len != len) { - assert(bytes.len == len_including_sentinel); - assert(bytes[@intCast(len)] == ip.indexToKey(sentinel).int.storage.u64); + if (sentinel != .none) { + assert(bytes.at(@intCast(len), ip) == ip.indexToKey(sentinel).int.storage.u64); } }, .elems => |elems| { @@ -5641,11 +5688,16 @@ pub fn get(ip: *InternPool, gpa: Allocator, key: Key) Allocator.Error!Index { switch (ty_key) { .anon_struct_type => |anon_struct_type| opv: { switch (aggregate.storage) { - .bytes => |bytes| for (anon_struct_type.values.get(ip), bytes) |value, byte| { - if (value != ip.getIfExists(.{ .int = .{ - .ty = .u8_type, - .storage = .{ .u64 = byte }, - } })) break :opv; + .bytes => |bytes| for (anon_struct_type.values.get(ip), bytes.at(0, ip)..) |value, byte| { + if (value == .none) break :opv; + switch (ip.indexToKey(value)) { + .undef => break :opv, + .int => |int| switch (int.storage) { + .u64 => |x| if (x != byte) break :opv, + else => break :opv, + }, + else => unreachable, + } }, .elems => |elems| if (!std.mem.eql( Index, @@ -5670,9 +5722,9 @@ pub fn get(ip: *InternPool, gpa: Allocator, key: Key) Allocator.Error!Index { repeated: { switch (aggregate.storage) { - .bytes => |bytes| for (bytes[1..@as(usize, @intCast(len))]) |byte| - if (byte != bytes[0]) break :repeated, - .elems => |elems| for (elems[1..@as(usize, @intCast(len))]) |elem| + .bytes => |bytes| for (bytes.toSlice(len, ip)[1..]) |byte| + if (byte != bytes.at(0, ip)) break :repeated, + .elems => |elems| for (elems[1..@intCast(len)]) |elem| if (elem != elems[0]) break :repeated, .repeated_elem => {}, } @@ -5681,7 +5733,7 @@ pub fn get(ip: *InternPool, gpa: Allocator, key: Key) Allocator.Error!Index { _ = ip.map.pop(); const elem = try ip.get(gpa, .{ .int = .{ .ty = .u8_type, - .storage = .{ .u64 = bytes[0] }, + .storage = .{ .u64 = bytes.at(0, ip) }, } }); assert(!(try ip.map.getOrPutAdapted(gpa, key, adapter)).found_existing); try ip.items.ensureUnusedCapacity(gpa, 1); @@ -5710,7 +5762,7 @@ pub fn get(ip: *InternPool, gpa: Allocator, key: Key) Allocator.Error!Index { try ip.string_bytes.ensureUnusedCapacity(gpa, @intCast(len_including_sentinel + 1)); try ip.extra.ensureUnusedCapacity(gpa, @typeInfo(Bytes).Struct.fields.len); switch (aggregate.storage) { - .bytes => |bytes| ip.string_bytes.appendSliceAssumeCapacity(bytes[0..@intCast(len)]), + .bytes => |bytes| ip.string_bytes.appendSliceAssumeCapacity(bytes.toSlice(len, ip)), .elems => |elems| for (elems[0..@intCast(len)]) |elem| switch (ip.indexToKey(elem)) { .undef => { ip.string_bytes.shrinkRetainingCapacity(string_bytes_index); @@ -5730,15 +5782,14 @@ pub fn get(ip: *InternPool, gpa: Allocator, key: Key) Allocator.Error!Index { else => unreachable, }, } - const has_internal_null = - std.mem.indexOfScalar(u8, ip.string_bytes.items[string_bytes_index..], 0) != null; if (sentinel != .none) ip.string_bytes.appendAssumeCapacity( @intCast(ip.indexToKey(sentinel).int.storage.u64), ); - const string: String = if (has_internal_null) - @enumFromInt(string_bytes_index) - else - (try ip.getOrPutTrailingString(gpa, @intCast(len_including_sentinel))).toString(); + const string = try ip.getOrPutTrailingString( + gpa, + @intCast(len_including_sentinel), + .maybe_embedded_nulls, + ); ip.items.appendAssumeCapacity(.{ .tag = .bytes, .data = ip.addExtraAssumeCapacity(Bytes{ @@ -5780,7 +5831,7 @@ pub fn get(ip: *InternPool, gpa: Allocator, key: Key) Allocator.Error!Index { .tag = .memoized_call, .data = ip.addExtraAssumeCapacity(MemoizedCall{ .func = memoized_call.func, - .args_len = @as(u32, @intCast(memoized_call.arg_values.len)), + .args_len = @intCast(memoized_call.arg_values.len), .result = memoized_call.result, }), }); @@ -6753,7 +6804,7 @@ fn finishFuncInstance( const decl = ip.declPtr(decl_index); decl.name = try ip.getOrPutStringFmt(gpa, "{}__anon_{d}", .{ fn_owner_decl.name.fmt(ip), @intFromEnum(decl_index), - }); + }, .no_embedded_nulls); return func_index; } @@ -7216,7 +7267,7 @@ pub fn remove(ip: *InternPool, index: Index) void { } fn addInt(ip: *InternPool, gpa: Allocator, ty: Index, tag: Tag, limbs: []const Limb) !void { - const limbs_len = @as(u32, @intCast(limbs.len)); + const limbs_len: u32 = @intCast(limbs.len); try ip.reserveLimbs(gpa, @typeInfo(Int).Struct.fields.len + limbs_len); ip.items.appendAssumeCapacity(.{ .tag = tag, @@ -7235,7 +7286,7 @@ fn addExtra(ip: *InternPool, gpa: Allocator, extra: anytype) Allocator.Error!u32 } fn addExtraAssumeCapacity(ip: *InternPool, extra: anytype) u32 { - const result = @as(u32, @intCast(ip.extra.items.len)); + const result: u32 = @intCast(ip.extra.items.len); inline for (@typeInfo(@TypeOf(extra)).Struct.fields) |field| { ip.extra.appendAssumeCapacity(switch (field.type) { Index, @@ -7286,7 +7337,7 @@ fn addLimbsExtraAssumeCapacity(ip: *InternPool, extra: anytype) u32 { @sizeOf(u64) => {}, else => @compileError("unsupported host"), } - const result = @as(u32, @intCast(ip.limbs.items.len)); + const result: u32 = @intCast(ip.limbs.items.len); inline for (@typeInfo(@TypeOf(extra)).Struct.fields, 0..) |field, i| { const new: u32 = switch (field.type) { u32 => @field(extra, field.name), @@ -7374,7 +7425,7 @@ fn limbData(ip: *const InternPool, comptime T: type, index: usize) T { @field(result, field.name) = switch (field.type) { u32 => int32, - Index => @as(Index, @enumFromInt(int32)), + Index => @enumFromInt(int32), else => @compileError("bad field type: " ++ @typeName(field.type)), }; } @@ -7410,8 +7461,8 @@ fn limbsSliceToIndex(ip: *const InternPool, limbs: []const Limb) LimbsAsIndexes }; // TODO: https://github.com/ziglang/zig/issues/1738 return .{ - .start = @as(u32, @intCast(@divExact(@intFromPtr(limbs.ptr) - @intFromPtr(host_slice.ptr), @sizeOf(Limb)))), - .len = @as(u32, @intCast(limbs.len)), + .start = @intCast(@divExact(@intFromPtr(limbs.ptr) - @intFromPtr(host_slice.ptr), @sizeOf(Limb))), + .len = @intCast(limbs.len), }; } @@ -7683,7 +7734,7 @@ pub fn getCoerced(ip: *InternPool, gpa: Allocator, val: Index, new_ty: Index) Al .val = error_union.val, } }), .aggregate => |aggregate| { - const new_len = @as(usize, @intCast(ip.aggregateTypeLen(new_ty))); + const new_len: usize = @intCast(ip.aggregateTypeLen(new_ty)); direct: { const old_ty_child = switch (ip.indexToKey(old_ty)) { inline .array_type, .vector_type => |seq_type| seq_type.child, @@ -7696,16 +7747,11 @@ pub fn getCoerced(ip: *InternPool, gpa: Allocator, val: Index, new_ty: Index) Al else => unreachable, }; if (old_ty_child != new_ty_child) break :direct; - // TODO: write something like getCoercedInts to avoid needing to dupe here switch (aggregate.storage) { - .bytes => |bytes| { - const bytes_copy = try gpa.dupe(u8, bytes[0..new_len]); - defer gpa.free(bytes_copy); - return ip.get(gpa, .{ .aggregate = .{ - .ty = new_ty, - .storage = .{ .bytes = bytes_copy }, - } }); - }, + .bytes => |bytes| return ip.get(gpa, .{ .aggregate = .{ + .ty = new_ty, + .storage = .{ .bytes = bytes }, + } }), .elems => |elems| { const elems_copy = try gpa.dupe(Index, elems[0..new_len]); defer gpa.free(elems_copy); @@ -7729,14 +7775,13 @@ pub fn getCoerced(ip: *InternPool, gpa: Allocator, val: Index, new_ty: Index) Al // lifetime issues, since it'll allow us to avoid referencing `aggregate` after we // begin interning elems. switch (aggregate.storage) { - .bytes => { + .bytes => |bytes| { // We have to intern each value here, so unfortunately we can't easily avoid // the repeated indexToKey calls. - for (agg_elems, 0..) |*elem, i| { - const x = ip.indexToKey(val).aggregate.storage.bytes[i]; + for (agg_elems, 0..) |*elem, index| { elem.* = try ip.get(gpa, .{ .int = .{ .ty = .u8_type, - .storage = .{ .u64 = x }, + .storage = .{ .u64 = bytes.at(index, ip) }, } }); } }, @@ -8169,9 +8214,8 @@ fn dumpStatsFallible(ip: *const InternPool, arena: Allocator) anyerror!void { .bytes => b: { const info = ip.extraData(Bytes, data); - const len = @as(u32, @intCast(ip.aggregateTypeLenIncludingSentinel(info.ty))); - break :b @sizeOf(Bytes) + len + - @intFromBool(ip.string_bytes.items[@intFromEnum(info.bytes) + len - 1] != 0); + const len: usize = @intCast(ip.aggregateTypeLenIncludingSentinel(info.ty)); + break :b @sizeOf(Bytes) + len + @intFromBool(info.bytes.at(len - 1, ip) != 0); }, .aggregate => b: { const info = ip.extraData(Tag.Aggregate, data); @@ -8434,15 +8478,35 @@ pub fn destroyNamespace(ip: *InternPool, gpa: Allocator, index: NamespaceIndex) }; } +const EmbeddedNulls = enum { + no_embedded_nulls, + maybe_embedded_nulls, + + fn StringType(comptime embedded_nulls: EmbeddedNulls) type { + return switch (embedded_nulls) { + .no_embedded_nulls => NullTerminatedString, + .maybe_embedded_nulls => String, + }; + } + + fn OptionalStringType(comptime embedded_nulls: EmbeddedNulls) type { + return switch (embedded_nulls) { + .no_embedded_nulls => OptionalNullTerminatedString, + .maybe_embedded_nulls => OptionalString, + }; + } +}; + pub fn getOrPutString( ip: *InternPool, gpa: Allocator, - s: []const u8, -) Allocator.Error!NullTerminatedString { - try ip.string_bytes.ensureUnusedCapacity(gpa, s.len + 1); - ip.string_bytes.appendSliceAssumeCapacity(s); + slice: []const u8, + comptime embedded_nulls: EmbeddedNulls, +) Allocator.Error!embedded_nulls.StringType() { + try ip.string_bytes.ensureUnusedCapacity(gpa, slice.len + 1); + ip.string_bytes.appendSliceAssumeCapacity(slice); ip.string_bytes.appendAssumeCapacity(0); - return ip.getOrPutTrailingString(gpa, s.len + 1); + return ip.getOrPutTrailingString(gpa, slice.len + 1, embedded_nulls); } pub fn getOrPutStringFmt( @@ -8450,23 +8514,24 @@ pub fn getOrPutStringFmt( gpa: Allocator, comptime format: []const u8, args: anytype, -) Allocator.Error!NullTerminatedString { + comptime embedded_nulls: EmbeddedNulls, +) Allocator.Error!embedded_nulls.StringType() { // ensure that references to string_bytes in args do not get invalidated const len: usize = @intCast(std.fmt.count(format, args) + 1); try ip.string_bytes.ensureUnusedCapacity(gpa, len); ip.string_bytes.writer(undefined).print(format, args) catch unreachable; ip.string_bytes.appendAssumeCapacity(0); - return ip.getOrPutTrailingString(gpa, len); + return ip.getOrPutTrailingString(gpa, len, embedded_nulls); } pub fn getOrPutStringOpt( ip: *InternPool, gpa: Allocator, - optional_string: ?[]const u8, -) Allocator.Error!OptionalNullTerminatedString { - const s = optional_string orelse return .none; - const interned = try getOrPutString(ip, gpa, s); - return interned.toOptional(); + slice: ?[]const u8, + comptime embedded_nulls: EmbeddedNulls, +) Allocator.Error!embedded_nulls.OptionalStringType() { + const string = try getOrPutString(ip, gpa, slice orelse return .none, embedded_nulls); + return string.toOptional(); } /// Uses the last len bytes of ip.string_bytes as the key. @@ -8474,7 +8539,8 @@ pub fn getOrPutTrailingString( ip: *InternPool, gpa: Allocator, len: usize, -) Allocator.Error!NullTerminatedString { + comptime embedded_nulls: EmbeddedNulls, +) Allocator.Error!embedded_nulls.StringType() { const string_bytes = &ip.string_bytes; const str_index: u32 = @intCast(string_bytes.items.len - len); if (len > 0 and string_bytes.getLast() == 0) { @@ -8483,6 +8549,14 @@ pub fn getOrPutTrailingString( try string_bytes.ensureUnusedCapacity(gpa, 1); } const key: []const u8 = string_bytes.items[str_index..]; + const has_embedded_null = std.mem.indexOfScalar(u8, key, 0) != null; + switch (embedded_nulls) { + .no_embedded_nulls => assert(!has_embedded_null), + .maybe_embedded_nulls => if (has_embedded_null) { + string_bytes.appendAssumeCapacity(0); + return @enumFromInt(str_index); + }, + } const gop = try ip.string_table.getOrPutContextAdapted(gpa, key, std.hash_map.StringIndexAdapter{ .bytes = string_bytes, }, std.hash_map.StringIndexContext{ @@ -8498,58 +8572,10 @@ pub fn getOrPutTrailingString( } } -/// Uses the last len bytes of ip.string_bytes as the key. -pub fn getTrailingAggregate( - ip: *InternPool, - gpa: Allocator, - ty: Index, - len: usize, -) Allocator.Error!Index { - try ip.items.ensureUnusedCapacity(gpa, 1); - try ip.extra.ensureUnusedCapacity(gpa, @typeInfo(Bytes).Struct.fields.len); - - const str: String = @enumFromInt(ip.string_bytes.items.len - len); - const adapter: KeyAdapter = .{ .intern_pool = ip }; - const gop = try ip.map.getOrPutAdapted(gpa, Key{ .aggregate = .{ - .ty = ty, - .storage = .{ .bytes = ip.string_bytes.items[@intFromEnum(str)..] }, - } }, adapter); - if (gop.found_existing) return @enumFromInt(gop.index); - - ip.items.appendAssumeCapacity(.{ - .tag = .bytes, - .data = ip.addExtraAssumeCapacity(Bytes{ - .ty = ty, - .bytes = str, - }), - }); - return @enumFromInt(ip.items.len - 1); -} - pub fn getString(ip: *InternPool, s: []const u8) OptionalNullTerminatedString { - if (ip.string_table.getKeyAdapted(s, std.hash_map.StringIndexAdapter{ + return if (ip.string_table.getKeyAdapted(s, std.hash_map.StringIndexAdapter{ .bytes = &ip.string_bytes, - })) |index| { - return @as(NullTerminatedString, @enumFromInt(index)).toOptional(); - } else { - return .none; - } -} - -pub fn stringToSlice(ip: *const InternPool, s: NullTerminatedString) [:0]const u8 { - const string_bytes = ip.string_bytes.items; - const start = @intFromEnum(s); - var end: usize = start; - while (string_bytes[end] != 0) end += 1; - return string_bytes[start..end :0]; -} - -pub fn stringToSliceUnwrap(ip: *const InternPool, s: OptionalNullTerminatedString) ?[:0]const u8 { - return ip.stringToSlice(s.unwrap() orelse return null); -} - -pub fn stringEqlSlice(ip: *const InternPool, a: NullTerminatedString, b: []const u8) bool { - return std.mem.eql(u8, stringToSlice(ip, a), b); + })) |index| @enumFromInt(index) else .none; } pub fn typeOf(ip: *const InternPool, index: Index) Index { @@ -8767,7 +8793,7 @@ pub fn aggregateTypeLenIncludingSentinel(ip: *const InternPool, ty: Index) u64 { return switch (ip.indexToKey(ty)) { .struct_type => ip.loadStructType(ty).field_types.len, .anon_struct_type => |anon_struct_type| anon_struct_type.types.len, - .array_type => |array_type| array_type.len + @intFromBool(array_type.sentinel != .none), + .array_type => |array_type| array_type.lenIncludingSentinel(), .vector_type => |vector_type| vector_type.len, else => unreachable, }; diff --git a/src/Module.zig b/src/Module.zig index 0399a2f85b..c4d7f43fe4 100644 --- a/src/Module.zig +++ b/src/Module.zig @@ -763,11 +763,11 @@ pub const Namespace = struct { ) !InternPool.NullTerminatedString { const ip = &zcu.intern_pool; const count = count: { - var count: usize = ip.stringToSlice(name).len + 1; + var count: usize = name.length(ip) + 1; var cur_ns = &ns; while (true) { const decl = zcu.declPtr(cur_ns.decl_index); - count += ip.stringToSlice(decl.name).len + 1; + count += decl.name.length(ip) + 1; cur_ns = zcu.namespacePtr(cur_ns.parent.unwrap() orelse { count += ns.file_scope.sub_file_path.len; break :count count; @@ -793,7 +793,7 @@ pub const Namespace = struct { }; } - return ip.getOrPutTrailingString(gpa, ip.string_bytes.items.len - start); + return ip.getOrPutTrailingString(gpa, ip.string_bytes.items.len - start, .no_embedded_nulls); } pub fn getType(ns: Namespace, zcu: *Zcu) Type { @@ -980,17 +980,13 @@ pub const File = struct { const ip = &mod.intern_pool; const start = ip.string_bytes.items.len; try file.renderFullyQualifiedName(ip.string_bytes.writer(mod.gpa)); - return ip.getOrPutTrailingString(mod.gpa, ip.string_bytes.items.len - start); + return ip.getOrPutTrailingString(mod.gpa, ip.string_bytes.items.len - start, .no_embedded_nulls); } pub fn fullPath(file: File, ally: Allocator) ![]u8 { return file.mod.root.joinString(ally, file.sub_file_path); } - pub fn fullPathZ(file: File, ally: Allocator) ![:0]u8 { - return file.mod.root.joinStringZ(ally, file.sub_file_path); - } - pub fn dumpSrc(file: *File, src: LazySrcLoc) void { const loc = std.zig.findLineColumn(file.source.bytes, src); std.debug.print("{s}:{d}:{d}\n", .{ file.sub_file_path, loc.line + 1, loc.column + 1 }); @@ -2534,6 +2530,7 @@ fn updateZirRefs(zcu: *Module, file: *File, old_zir: Zir) !void { const name_ip = try zcu.intern_pool.getOrPutString( zcu.gpa, old_zir.nullTerminatedString(name_zir), + .no_embedded_nulls, ); try old_names.put(zcu.gpa, name_ip, {}); } @@ -2551,6 +2548,7 @@ fn updateZirRefs(zcu: *Module, file: *File, old_zir: Zir) !void { const name_ip = try zcu.intern_pool.getOrPutString( zcu.gpa, old_zir.nullTerminatedString(name_zir), + .no_embedded_nulls, ); if (!old_names.swapRemove(name_ip)) continue; // Name added @@ -3555,37 +3553,46 @@ fn semaDecl(mod: *Module, decl_index: Decl.Index) !SemaDeclResult { const gpa = mod.gpa; const zir = decl.getFileScope(mod).zir; - const builtin_type_target_index: InternPool.Index = blk: { + const builtin_type_target_index: InternPool.Index = ip_index: { const std_mod = mod.std_mod; - if (decl.getFileScope(mod).mod != std_mod) break :blk .none; + if (decl.getFileScope(mod).mod != std_mod) break :ip_index .none; // We're in the std module. const std_file = (try mod.importPkg(std_mod)).file; const std_decl = mod.declPtr(std_file.root_decl.unwrap().?); const std_namespace = std_decl.getInnerNamespace(mod).?; - const builtin_str = try ip.getOrPutString(gpa, "builtin"); - const builtin_decl = mod.declPtr(std_namespace.decls.getKeyAdapted(builtin_str, DeclAdapter{ .zcu = mod }) orelse break :blk .none); - const builtin_namespace = builtin_decl.getInnerNamespaceIndex(mod).unwrap() orelse break :blk .none; - if (decl.src_namespace != builtin_namespace) break :blk .none; + const builtin_str = try ip.getOrPutString(gpa, "builtin", .no_embedded_nulls); + const builtin_decl = mod.declPtr(std_namespace.decls.getKeyAdapted(builtin_str, DeclAdapter{ .zcu = mod }) orelse break :ip_index .none); + const builtin_namespace = builtin_decl.getInnerNamespaceIndex(mod).unwrap() orelse break :ip_index .none; + if (decl.src_namespace != builtin_namespace) break :ip_index .none; // We're in builtin.zig. This could be a builtin we need to add to a specific InternPool index. - for ([_]struct { []const u8, InternPool.Index }{ - .{ "AtomicOrder", .atomic_order_type }, - .{ "AtomicRmwOp", .atomic_rmw_op_type }, - .{ "CallingConvention", .calling_convention_type }, - .{ "AddressSpace", .address_space_type }, - .{ "FloatMode", .float_mode_type }, - .{ "ReduceOp", .reduce_op_type }, - .{ "CallModifier", .call_modifier_type }, - .{ "PrefetchOptions", .prefetch_options_type }, - .{ "ExportOptions", .export_options_type }, - .{ "ExternOptions", .extern_options_type }, - .{ "Type", .type_info_type }, - }) |pair| { - const decl_name = ip.stringToSlice(decl.name); - if (std.mem.eql(u8, decl_name, pair[0])) { - break :blk pair[1]; - } + for ([_][]const u8{ + "AtomicOrder", + "AtomicRmwOp", + "CallingConvention", + "AddressSpace", + "FloatMode", + "ReduceOp", + "CallModifier", + "PrefetchOptions", + "ExportOptions", + "ExternOptions", + "Type", + }, [_]InternPool.Index{ + .atomic_order_type, + .atomic_rmw_op_type, + .calling_convention_type, + .address_space_type, + .float_mode_type, + .reduce_op_type, + .call_modifier_type, + .prefetch_options_type, + .export_options_type, + .extern_options_type, + .type_info_type, + }) |type_name, type_ip| { + if (decl.name.eqlSlice(type_name, ip)) break :ip_index type_ip; } - break :blk .none; + break :ip_index .none; }; mod.intern_pool.removeDependenciesForDepender(gpa, InternPool.Depender.wrap(.{ .decl = decl_index })); @@ -3725,8 +3732,7 @@ fn semaDecl(mod: *Module, decl_index: Decl.Index) !SemaDeclResult { } else if (bytes.len == 0) { return sema.fail(&block_scope, section_src, "linksection cannot be empty", .{}); } - const section = try ip.getOrPutString(gpa, bytes); - break :blk section.toOptional(); + break :blk try ip.getOrPutStringOpt(gpa, bytes, .no_embedded_nulls); }; decl.@"addrspace" = blk: { const addrspace_ctx: Sema.AddressSpaceContext = switch (ip.indexToKey(decl_val.toIntern())) { @@ -4101,7 +4107,10 @@ fn newEmbedFile( .sentinel = .zero_u8, .child = .u8_type, } }); - const array_val = try ip.getTrailingAggregate(gpa, array_ty, bytes.len); + const array_val = try ip.get(gpa, .{ .aggregate = .{ + .ty = array_ty, + .storage = .{ .bytes = try ip.getOrPutTrailingString(gpa, bytes.len, .maybe_embedded_nulls) }, + } }); const ptr_ty = (try mod.ptrType(.{ .child = array_ty, @@ -4111,7 +4120,6 @@ fn newEmbedFile( .address_space = .generic, }, })).toIntern(); - const ptr_val = try ip.get(gpa, .{ .ptr = .{ .ty = ptr_ty, .addr = .{ .anon_decl = .{ @@ -4122,7 +4130,7 @@ fn newEmbedFile( result.* = new_file; new_file.* = .{ - .sub_file_path = try ip.getOrPutString(gpa, sub_file_path), + .sub_file_path = try ip.getOrPutString(gpa, sub_file_path, .no_embedded_nulls), .owner = pkg, .stat = stat, .val = ptr_val, @@ -4214,11 +4222,11 @@ const ScanDeclIter = struct { const zcu = iter.zcu; const gpa = zcu.gpa; const ip = &zcu.intern_pool; - var name = try ip.getOrPutStringFmt(gpa, fmt, args); + var name = try ip.getOrPutStringFmt(gpa, fmt, args, .no_embedded_nulls); var gop = try iter.seen_decls.getOrPut(gpa, name); var next_suffix: u32 = 0; while (gop.found_existing) { - name = try ip.getOrPutStringFmt(gpa, fmt ++ "_{d}", args ++ .{next_suffix}); + name = try ip.getOrPutStringFmt(gpa, "{}_{d}", .{ name.fmt(ip), next_suffix }, .no_embedded_nulls); gop = try iter.seen_decls.getOrPut(gpa, name); next_suffix += 1; } @@ -4300,7 +4308,11 @@ fn scanDecl(iter: *ScanDeclIter, decl_inst: Zir.Inst.Index) Allocator.Error!void }; } else info: { if (iter.pass != .named) return; - const name = try ip.getOrPutString(gpa, zir.nullTerminatedString(declaration.name.toString(zir).?)); + const name = try ip.getOrPutString( + gpa, + zir.nullTerminatedString(declaration.name.toString(zir).?), + .no_embedded_nulls, + ); try iter.seen_decls.putNoClobber(gpa, name, {}); break :info .{ name, @@ -4362,9 +4374,10 @@ fn scanDecl(iter: *ScanDeclIter, decl_inst: Zir.Inst.Index) Allocator.Error!void if (!comp.config.is_test) break :a false; if (decl_mod != zcu.main_mod) break :a false; if (is_named_test and comp.test_filters.len > 0) { - const decl_fqn = ip.stringToSlice(try namespace.fullyQualifiedName(zcu, decl_name)); + const decl_fqn = try namespace.fullyQualifiedName(zcu, decl_name); + const decl_fqn_slice = decl_fqn.toSlice(ip); for (comp.test_filters) |test_filter| { - if (mem.indexOf(u8, decl_fqn, test_filter)) |_| break; + if (mem.indexOf(u8, decl_fqn_slice, test_filter)) |_| break; } else break :a false; } zcu.test_functions.putAssumeCapacity(decl_index, {}); // may clobber on incremental update @@ -4377,8 +4390,8 @@ fn scanDecl(iter: *ScanDeclIter, decl_inst: Zir.Inst.Index) Allocator.Error!void // `is_export` is unchanged. In this case, the incremental update mechanism will handle // re-analysis for us if necessary. if (prev_exported != declaration.flags.is_export or decl.analysis == .unreferenced) { - log.debug("scanDecl queue analyze_decl file='{s}' decl_name='{s}' decl_index={d}", .{ - namespace.file_scope.sub_file_path, ip.stringToSlice(decl_name), decl_index, + log.debug("scanDecl queue analyze_decl file='{s}' decl_name='{}' decl_index={d}", .{ + namespace.file_scope.sub_file_path, decl_name.fmt(ip), decl_index, }); comp.work_queue.writeItemAssumeCapacity(.{ .analyze_decl = decl_index }); } @@ -5300,7 +5313,7 @@ pub fn populateTestFunctions( const builtin_file = (mod.importPkg(builtin_mod) catch unreachable).file; const root_decl = mod.declPtr(builtin_file.root_decl.unwrap().?); const builtin_namespace = mod.namespacePtr(root_decl.src_namespace); - const test_functions_str = try ip.getOrPutString(gpa, "test_functions"); + const test_functions_str = try ip.getOrPutString(gpa, "test_functions", .no_embedded_nulls); const decl_index = builtin_namespace.decls.getKeyAdapted( test_functions_str, DeclAdapter{ .zcu = mod }, @@ -5327,16 +5340,16 @@ pub fn populateTestFunctions( for (test_fn_vals, mod.test_functions.keys()) |*test_fn_val, test_decl_index| { const test_decl = mod.declPtr(test_decl_index); - const test_decl_name = try gpa.dupe(u8, ip.stringToSlice(try test_decl.fullyQualifiedName(mod))); - defer gpa.free(test_decl_name); + const test_decl_name = try test_decl.fullyQualifiedName(mod); + const test_decl_name_len = test_decl_name.length(ip); const test_name_anon_decl: InternPool.Key.Ptr.Addr.AnonDecl = n: { const test_name_ty = try mod.arrayType(.{ - .len = test_decl_name.len, + .len = test_decl_name_len, .child = .u8_type, }); const test_name_val = try mod.intern(.{ .aggregate = .{ .ty = test_name_ty.toIntern(), - .storage = .{ .bytes = test_decl_name }, + .storage = .{ .bytes = test_decl_name.toString() }, } }); break :n .{ .orig_ty = (try mod.singleConstPtrType(test_name_ty)).toIntern(), @@ -5354,7 +5367,7 @@ pub fn populateTestFunctions( } }), .len = try mod.intern(.{ .int = .{ .ty = .usize_type, - .storage = .{ .u64 = test_decl_name.len }, + .storage = .{ .u64 = test_decl_name_len }, } }), } }), // func diff --git a/src/Sema.zig b/src/Sema.zig index d64226fef0..d3989f630c 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -2059,12 +2059,12 @@ pub fn setupErrorReturnTrace(sema: *Sema, block: *Block, last_arg_index: usize) const st_ptr = try err_trace_block.addTy(.alloc, try mod.singleMutPtrType(stack_trace_ty)); // st.instruction_addresses = &addrs; - const instruction_addresses_field_name = try ip.getOrPutString(gpa, "instruction_addresses"); + const instruction_addresses_field_name = try ip.getOrPutString(gpa, "instruction_addresses", .no_embedded_nulls); const addr_field_ptr = try sema.fieldPtr(&err_trace_block, src, st_ptr, instruction_addresses_field_name, src, true); try sema.storePtr2(&err_trace_block, src, addr_field_ptr, src, addrs_ptr, src, .store); // st.index = 0; - const index_field_name = try ip.getOrPutString(gpa, "index"); + const index_field_name = try ip.getOrPutString(gpa, "index", .no_embedded_nulls); const index_field_ptr = try sema.fieldPtr(&err_trace_block, src, st_ptr, index_field_name, src, true); try sema.storePtr2(&err_trace_block, src, index_field_ptr, src, .zero_usize, src, .store); @@ -2348,13 +2348,13 @@ fn failWithInvalidFieldAccess( fn typeSupportsFieldAccess(mod: *const Module, ty: Type, field_name: InternPool.NullTerminatedString) bool { const ip = &mod.intern_pool; switch (ty.zigTypeTag(mod)) { - .Array => return ip.stringEqlSlice(field_name, "len"), + .Array => return field_name.eqlSlice("len", ip), .Pointer => { const ptr_info = ty.ptrInfo(mod); if (ptr_info.flags.size == .Slice) { - return ip.stringEqlSlice(field_name, "ptr") or ip.stringEqlSlice(field_name, "len"); + return field_name.eqlSlice("ptr", ip) or field_name.eqlSlice("len", ip); } else if (Type.fromInterned(ptr_info.child).zigTypeTag(mod) == .Array) { - return ip.stringEqlSlice(field_name, "len"); + return field_name.eqlSlice("len", ip); } else return false; }, .Type, .Struct, .Union => return true, @@ -2703,12 +2703,20 @@ fn getCaptures(sema: *Sema, block: *Block, type_src: LazySrcLoc, extra_index: us break :capture .{ .runtime = sema.typeOf(air_ref).toIntern() }; }), .decl_val => |str| capture: { - const decl_name = try ip.getOrPutString(sema.gpa, sema.code.nullTerminatedString(str)); + const decl_name = try ip.getOrPutString( + sema.gpa, + sema.code.nullTerminatedString(str), + .no_embedded_nulls, + ); const decl = try sema.lookupIdentifier(block, .unneeded, decl_name); // TODO: could we need this src loc? break :capture InternPool.CaptureValue.wrap(.{ .decl_val = decl }); }, .decl_ref => |str| capture: { - const decl_name = try ip.getOrPutString(sema.gpa, sema.code.nullTerminatedString(str)); + const decl_name = try ip.getOrPutString( + sema.gpa, + sema.code.nullTerminatedString(str), + .no_embedded_nulls, + ); const decl = try sema.lookupIdentifier(block, .unneeded, decl_name); // TODO: could we need this src loc? break :capture InternPool.CaptureValue.wrap(.{ .decl_ref = decl }); }, @@ -2882,7 +2890,7 @@ fn createAnonymousDeclTypeNamed( const name = mod.intern_pool.getOrPutStringFmt(gpa, "{}__{s}_{d}", .{ src_decl.name.fmt(&mod.intern_pool), anon_prefix, @intFromEnum(new_decl_index), - }) catch unreachable; + }, .no_embedded_nulls) catch unreachable; try mod.initNewAnonDecl(new_decl_index, src_decl.src_line, val, name); return new_decl_index; }, @@ -2923,7 +2931,7 @@ fn createAnonymousDeclTypeNamed( }; try writer.writeByte(')'); - const name = try mod.intern_pool.getOrPutString(gpa, buf.items); + const name = try mod.intern_pool.getOrPutString(gpa, buf.items, .no_embedded_nulls); try mod.initNewAnonDecl(new_decl_index, src_decl.src_line, val, name); return new_decl_index; }, @@ -2937,8 +2945,7 @@ fn createAnonymousDeclTypeNamed( const name = try mod.intern_pool.getOrPutStringFmt(gpa, "{}.{s}", .{ src_decl.name.fmt(&mod.intern_pool), zir_data[i].str_op.getStr(sema.code), - }); - + }, .no_embedded_nulls); try mod.initNewAnonDecl(new_decl_index, src_decl.src_line, val, name); return new_decl_index; }, @@ -3157,7 +3164,7 @@ fn zirEnumDecl( const field_name_zir = sema.code.nullTerminatedString(field_name_index); extra_index += 2; // field name, doc comment - const field_name = try mod.intern_pool.getOrPutString(gpa, field_name_zir); + const field_name = try mod.intern_pool.getOrPutString(gpa, field_name_zir, .no_embedded_nulls); const tag_overflow = if (has_tag_value) overflow: { const tag_val_ref: Zir.Inst.Ref = @enumFromInt(sema.code.extra[extra_index]); @@ -3462,7 +3469,7 @@ fn zirErrorSetDecl( while (extra_index < extra_index_end) : (extra_index += 2) { // +2 to skip over doc_string const name_index: Zir.NullTerminatedString = @enumFromInt(sema.code.extra[extra_index]); const name = sema.code.nullTerminatedString(name_index); - const name_ip = try mod.intern_pool.getOrPutString(gpa, name); + const name_ip = try mod.intern_pool.getOrPutString(gpa, name, .no_embedded_nulls); _ = try mod.getErrorValue(name_ip); const result = names.getOrPutAssumeCapacity(name_ip); assert(!result.found_existing); // verified in AstGen @@ -3635,7 +3642,7 @@ fn indexablePtrLen( const is_pointer_to = object_ty.isSinglePointer(mod); const indexable_ty = if (is_pointer_to) object_ty.childType(mod) else object_ty; try checkIndexable(sema, block, src, indexable_ty); - const field_name = try mod.intern_pool.getOrPutString(sema.gpa, "len"); + const field_name = try mod.intern_pool.getOrPutString(sema.gpa, "len", .no_embedded_nulls); return sema.fieldVal(block, src, object, field_name, src); } @@ -3649,7 +3656,7 @@ fn indexablePtrLenOrNone( const operand_ty = sema.typeOf(operand); try checkMemOperand(sema, block, src, operand_ty); if (operand_ty.ptrSize(mod) == .Many) return .none; - const field_name = try mod.intern_pool.getOrPutString(sema.gpa, "len"); + const field_name = try mod.intern_pool.getOrPutString(sema.gpa, "len", .no_embedded_nulls); return sema.fieldVal(block, src, operand, field_name, src); } @@ -4363,7 +4370,7 @@ fn zirForLen(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air. } if (!object_ty.indexableHasLen(mod)) continue; - break :l try sema.fieldVal(block, arg_src, object, try ip.getOrPutString(gpa, "len"), arg_src); + break :l try sema.fieldVal(block, arg_src, object, try ip.getOrPutString(gpa, "len", .no_embedded_nulls), arg_src); }; const arg_len = try sema.coerce(block, Type.usize, arg_len_uncoerced, arg_src); if (len == .none) { @@ -4747,7 +4754,11 @@ fn validateUnionInit( const field_ptr_data = sema.code.instructions.items(.data)[@intFromEnum(field_ptr)].pl_node; const field_src: LazySrcLoc = .{ .node_offset_initializer = field_ptr_data.src_node }; const field_ptr_extra = sema.code.extraData(Zir.Inst.Field, field_ptr_data.payload_index).data; - const field_name = try mod.intern_pool.getOrPutString(gpa, sema.code.nullTerminatedString(field_ptr_extra.field_name_start)); + const field_name = try mod.intern_pool.getOrPutString( + gpa, + sema.code.nullTerminatedString(field_ptr_extra.field_name_start), + .no_embedded_nulls, + ); const field_index = try sema.unionFieldIndex(block, union_ty, field_name, field_src); const air_tags = sema.air_instructions.items(.tag); const air_datas = sema.air_instructions.items(.data); @@ -4890,6 +4901,7 @@ fn validateStructInit( const field_name = try ip.getOrPutString( gpa, sema.code.nullTerminatedString(field_ptr_extra.field_name_start), + .no_embedded_nulls, ); field_index.* = if (struct_ty.isTuple(mod)) try sema.tupleFieldIndex(block, struct_ty, field_name, field_src) @@ -5672,25 +5684,26 @@ fn zirStoreNode(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!v fn zirStr(sema: *Sema, inst: Zir.Inst.Index) CompileError!Air.Inst.Ref { const bytes = sema.code.instructions.items(.data)[@intFromEnum(inst)].str.get(sema.code); - return sema.addStrLitNoAlias(bytes); + return sema.addStrLit( + try sema.mod.intern_pool.getOrPutString(sema.gpa, bytes, .maybe_embedded_nulls), + bytes.len, + ); } -fn addStrLit(sema: *Sema, bytes: []const u8) CompileError!Air.Inst.Ref { - const duped_bytes = try sema.arena.dupe(u8, bytes); - return addStrLitNoAlias(sema, duped_bytes); +fn addNullTerminatedStrLit(sema: *Sema, string: InternPool.NullTerminatedString) CompileError!Air.Inst.Ref { + return sema.addStrLit(string.toString(), string.length(&sema.mod.intern_pool)); } -/// Safe to call when `bytes` does not point into `InternPool`. -fn addStrLitNoAlias(sema: *Sema, bytes: []const u8) CompileError!Air.Inst.Ref { +fn addStrLit(sema: *Sema, string: InternPool.String, len: u64) CompileError!Air.Inst.Ref { const mod = sema.mod; const array_ty = try mod.arrayType(.{ - .len = bytes.len, + .len = len, .sentinel = .zero_u8, .child = .u8_type, }); const val = try mod.intern(.{ .aggregate = .{ .ty = array_ty.toIntern(), - .storage = .{ .bytes = bytes }, + .storage = .{ .bytes = string }, } }); return anonDeclRef(sema, val); } @@ -6370,7 +6383,11 @@ fn zirExport(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!void const src = inst_data.src(); const operand_src: LazySrcLoc = .{ .node_offset_builtin_call_arg0 = inst_data.src_node }; const options_src: LazySrcLoc = .{ .node_offset_builtin_call_arg1 = inst_data.src_node }; - const decl_name = try mod.intern_pool.getOrPutString(mod.gpa, sema.code.nullTerminatedString(extra.decl_name)); + const decl_name = try mod.intern_pool.getOrPutString( + mod.gpa, + sema.code.nullTerminatedString(extra.decl_name), + .no_embedded_nulls, + ); const decl_index = if (extra.namespace != .none) index_blk: { const container_ty = try sema.resolveType(block, operand_src, extra.namespace); const container_namespace = container_ty.getNamespaceIndex(mod); @@ -6721,7 +6738,11 @@ fn zirDeclRef(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air const mod = sema.mod; const inst_data = sema.code.instructions.items(.data)[@intFromEnum(inst)].str_tok; const src = inst_data.src(); - const decl_name = try mod.intern_pool.getOrPutString(sema.gpa, inst_data.get(sema.code)); + const decl_name = try mod.intern_pool.getOrPutString( + sema.gpa, + inst_data.get(sema.code), + .no_embedded_nulls, + ); const decl_index = try sema.lookupIdentifier(block, src, decl_name); try sema.addReferencedBy(block, src, decl_index); return sema.analyzeDeclRef(decl_index); @@ -6731,7 +6752,11 @@ fn zirDeclVal(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air const mod = sema.mod; const inst_data = sema.code.instructions.items(.data)[@intFromEnum(inst)].str_tok; const src = inst_data.src(); - const decl_name = try mod.intern_pool.getOrPutString(sema.gpa, inst_data.get(sema.code)); + const decl_name = try mod.intern_pool.getOrPutString( + sema.gpa, + inst_data.get(sema.code), + .no_embedded_nulls, + ); const decl = try sema.lookupIdentifier(block, src, decl_name); return sema.analyzeDeclVal(block, src, decl); } @@ -6883,7 +6908,7 @@ pub fn analyzeSaveErrRetIndex(sema: *Sema, block: *Block) SemaError!Air.Inst.Ref error.NeededSourceLocation, error.GenericPoison, error.ComptimeReturn, error.ComptimeBreak => unreachable, else => |e| return e, }; - const field_name = try mod.intern_pool.getOrPutString(gpa, "index"); + const field_name = try mod.intern_pool.getOrPutString(gpa, "index", .no_embedded_nulls); const field_index = sema.structFieldIndex(block, stack_trace_ty, field_name, .unneeded) catch |err| switch (err) { error.AnalysisFail, error.NeededSourceLocation => @panic("std.builtin.StackTrace is corrupt"), error.GenericPoison, error.ComptimeReturn, error.ComptimeBreak => unreachable, @@ -6926,7 +6951,7 @@ fn popErrorReturnTrace( try sema.resolveTypeFields(stack_trace_ty); const ptr_stack_trace_ty = try mod.singleMutPtrType(stack_trace_ty); const err_return_trace = try block.addTy(.err_return_trace, ptr_stack_trace_ty); - const field_name = try mod.intern_pool.getOrPutString(gpa, "index"); + const field_name = try mod.intern_pool.getOrPutString(gpa, "index", .no_embedded_nulls); const field_ptr = try sema.structFieldPtr(block, src, err_return_trace, field_name, src, stack_trace_ty, true); try sema.storePtr2(block, src, field_ptr, src, saved_error_trace_index, src, .store); } else if (is_non_error == null) { @@ -6952,7 +6977,7 @@ fn popErrorReturnTrace( try sema.resolveTypeFields(stack_trace_ty); const ptr_stack_trace_ty = try mod.singleMutPtrType(stack_trace_ty); const err_return_trace = try then_block.addTy(.err_return_trace, ptr_stack_trace_ty); - const field_name = try mod.intern_pool.getOrPutString(gpa, "index"); + const field_name = try mod.intern_pool.getOrPutString(gpa, "index", .no_embedded_nulls); const field_ptr = try sema.structFieldPtr(&then_block, src, err_return_trace, field_name, src, stack_trace_ty, true); try sema.storePtr2(&then_block, src, field_ptr, src, saved_error_trace_index, src, .store); _ = try then_block.addBr(cond_block_inst, .void_value); @@ -7010,7 +7035,11 @@ fn zirCall( .direct => .{ .direct = try sema.resolveInst(extra.data.callee) }, .field => blk: { const object_ptr = try sema.resolveInst(extra.data.obj_ptr); - const field_name = try mod.intern_pool.getOrPutString(sema.gpa, sema.code.nullTerminatedString(extra.data.field_name_start)); + const field_name = try mod.intern_pool.getOrPutString( + sema.gpa, + sema.code.nullTerminatedString(extra.data.field_name_start), + .no_embedded_nulls, + ); const field_name_src: LazySrcLoc = .{ .node_offset_field_name = inst_data.src_node }; break :blk try sema.fieldCallBind(block, callee_src, object_ptr, field_name, field_name_src); }, @@ -7073,7 +7102,7 @@ fn zirCall( if (input_is_error or (pop_error_return_trace and return_ty.isError(mod))) { const stack_trace_ty = try sema.getBuiltinType("StackTrace"); try sema.resolveTypeFields(stack_trace_ty); - const field_name = try mod.intern_pool.getOrPutString(sema.gpa, "index"); + const field_name = try mod.intern_pool.getOrPutString(sema.gpa, "index", .no_embedded_nulls); const field_index = try sema.structFieldIndex(block, stack_trace_ty, field_name, call_src); // Insert a save instruction before the arg resolution + call instructions we just generated @@ -8648,7 +8677,11 @@ fn zirErrorValue(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError! _ = block; const mod = sema.mod; const inst_data = sema.code.instructions.items(.data)[@intFromEnum(inst)].str_tok; - const name = try mod.intern_pool.getOrPutString(sema.gpa, inst_data.get(sema.code)); + const name = try mod.intern_pool.getOrPutString( + sema.gpa, + inst_data.get(sema.code), + .no_embedded_nulls, + ); _ = try mod.getErrorValue(name); // Create an error set type with only this error value, and return the value. const error_set_type = try mod.singleErrorSetType(name); @@ -8804,7 +8837,7 @@ fn zirEnumLiteral(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError const inst_data = sema.code.instructions.items(.data)[@intFromEnum(inst)].str_tok; const name = inst_data.get(sema.code); return Air.internedToRef((try mod.intern(.{ - .enum_literal = try mod.intern_pool.getOrPutString(sema.gpa, name), + .enum_literal = try mod.intern_pool.getOrPutString(sema.gpa, name, .no_embedded_nulls), }))); } @@ -9761,7 +9794,7 @@ fn funcCommon( const func_index = try ip.getExternFunc(gpa, .{ .ty = func_ty, .decl = sema.owner_decl_index, - .lib_name = try mod.intern_pool.getOrPutStringOpt(gpa, opt_lib_name), + .lib_name = try mod.intern_pool.getOrPutStringOpt(gpa, opt_lib_name, .no_embedded_nulls), }); return finishFunc( sema, @@ -10225,7 +10258,11 @@ fn zirFieldVal(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai const src = inst_data.src(); const field_name_src: LazySrcLoc = .{ .node_offset_field_name = inst_data.src_node }; const extra = sema.code.extraData(Zir.Inst.Field, inst_data.payload_index).data; - const field_name = try mod.intern_pool.getOrPutString(sema.gpa, sema.code.nullTerminatedString(extra.field_name_start)); + const field_name = try mod.intern_pool.getOrPutString( + sema.gpa, + sema.code.nullTerminatedString(extra.field_name_start), + .no_embedded_nulls, + ); const object = try sema.resolveInst(extra.lhs); return sema.fieldVal(block, src, object, field_name, field_name_src); } @@ -10239,7 +10276,11 @@ fn zirFieldPtr(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai const src = inst_data.src(); const field_name_src: LazySrcLoc = .{ .node_offset_field_name = inst_data.src_node }; const extra = sema.code.extraData(Zir.Inst.Field, inst_data.payload_index).data; - const field_name = try mod.intern_pool.getOrPutString(sema.gpa, sema.code.nullTerminatedString(extra.field_name_start)); + const field_name = try mod.intern_pool.getOrPutString( + sema.gpa, + sema.code.nullTerminatedString(extra.field_name_start), + .no_embedded_nulls, + ); const object_ptr = try sema.resolveInst(extra.lhs); return sema.fieldPtr(block, src, object_ptr, field_name, field_name_src, false); } @@ -10253,7 +10294,11 @@ fn zirStructInitFieldPtr(sema: *Sema, block: *Block, inst: Zir.Inst.Index) Compi const src = inst_data.src(); const field_name_src: LazySrcLoc = .{ .node_offset_field_name_init = inst_data.src_node }; const extra = sema.code.extraData(Zir.Inst.Field, inst_data.payload_index).data; - const field_name = try mod.intern_pool.getOrPutString(sema.gpa, sema.code.nullTerminatedString(extra.field_name_start)); + const field_name = try mod.intern_pool.getOrPutString( + sema.gpa, + sema.code.nullTerminatedString(extra.field_name_start), + .no_embedded_nulls, + ); const object_ptr = try sema.resolveInst(extra.lhs); const struct_ty = sema.typeOf(object_ptr).childType(mod); switch (struct_ty.zigTypeTag(mod)) { @@ -13759,8 +13804,8 @@ fn zirHasField(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai switch (ip.indexToKey(ty.toIntern())) { .ptr_type => |ptr_type| switch (ptr_type.flags.size) { .Slice => { - if (ip.stringEqlSlice(field_name, "ptr")) break :hf true; - if (ip.stringEqlSlice(field_name, "len")) break :hf true; + if (field_name.eqlSlice("ptr", ip)) break :hf true; + if (field_name.eqlSlice("len", ip)) break :hf true; break :hf false; }, else => {}, @@ -13783,7 +13828,7 @@ fn zirHasField(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai .enum_type => { break :hf ip.loadEnumType(ty.toIntern()).nameIndex(ip, field_name) != null; }, - .array_type => break :hf ip.stringEqlSlice(field_name, "len"), + .array_type => break :hf field_name.eqlSlice("len", ip), else => {}, } return sema.fail(block, ty_src, "type '{}' does not support '@hasField'", .{ @@ -13885,7 +13930,11 @@ fn zirEmbedFile(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!A fn zirRetErrValueCode(sema: *Sema, inst: Zir.Inst.Index) CompileError!Air.Inst.Ref { const mod = sema.mod; const inst_data = sema.code.instructions.items(.data)[@intFromEnum(inst)].str_tok; - const name = try mod.intern_pool.getOrPutString(sema.gpa, inst_data.get(sema.code)); + const name = try mod.intern_pool.getOrPutString( + sema.gpa, + inst_data.get(sema.code), + .no_embedded_nulls, + ); _ = try mod.getErrorValue(name); const error_set_type = try mod.singleErrorSetType(name); return Air.internedToRef((try mod.intern(.{ .err = .{ @@ -17552,11 +17601,9 @@ fn zirBuiltinSrc( const gpa = sema.gpa; const func_name_val = v: { - // This dupe prevents InternPool string pool memory from being reallocated - // while a reference exists. - const bytes = try sema.arena.dupe(u8, ip.stringToSlice(fn_owner_decl.name)); + const func_name_len = fn_owner_decl.name.length(ip); const array_ty = try ip.get(gpa, .{ .array_type = .{ - .len = bytes.len, + .len = func_name_len, .sentinel = .zero_u8, .child = .u8_type, } }); @@ -17568,19 +17615,19 @@ fn zirBuiltinSrc( .orig_ty = .slice_const_u8_sentinel_0_type, .val = try ip.get(gpa, .{ .aggregate = .{ .ty = array_ty, - .storage = .{ .bytes = bytes }, + .storage = .{ .bytes = fn_owner_decl.name.toString() }, } }), } }, } }), - .len = (try mod.intValue(Type.usize, bytes.len)).toIntern(), + .len = (try mod.intValue(Type.usize, func_name_len)).toIntern(), } }); }; const file_name_val = v: { // The compiler must not call realpath anywhere. - const bytes = try fn_owner_decl.getFileScope(mod).fullPathZ(sema.arena); + const file_name = try fn_owner_decl.getFileScope(mod).fullPath(sema.arena); const array_ty = try ip.get(gpa, .{ .array_type = .{ - .len = bytes.len, + .len = file_name.len, .sentinel = .zero_u8, .child = .u8_type, } }); @@ -17592,11 +17639,13 @@ fn zirBuiltinSrc( .orig_ty = .slice_const_u8_sentinel_0_type, .val = try ip.get(gpa, .{ .aggregate = .{ .ty = array_ty, - .storage = .{ .bytes = bytes }, + .storage = .{ + .bytes = try ip.getOrPutString(gpa, file_name, .maybe_embedded_nulls), + }, } }), } }, } }), - .len = (try mod.intValue(Type.usize, bytes.len)).toIntern(), + .len = (try mod.intValue(Type.usize, file_name.len)).toIntern(), } }); }; @@ -17651,7 +17700,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai block, src, type_info_ty.getNamespaceIndex(mod), - try ip.getOrPutString(gpa, "Fn"), + try ip.getOrPutString(gpa, "Fn", .no_embedded_nulls), )).?; try sema.ensureDeclAnalyzed(fn_info_decl_index); const fn_info_decl = mod.declPtr(fn_info_decl_index); @@ -17661,7 +17710,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai block, src, fn_info_ty.getNamespaceIndex(mod), - try ip.getOrPutString(gpa, "Param"), + try ip.getOrPutString(gpa, "Param", .no_embedded_nulls), )).?; try sema.ensureDeclAnalyzed(param_info_decl_index); const param_info_decl = mod.declPtr(param_info_decl_index); @@ -17762,7 +17811,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai block, src, type_info_ty.getNamespaceIndex(mod), - try ip.getOrPutString(gpa, "Int"), + try ip.getOrPutString(gpa, "Int", .no_embedded_nulls), )).?; try sema.ensureDeclAnalyzed(int_info_decl_index); const int_info_decl = mod.declPtr(int_info_decl_index); @@ -17790,7 +17839,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai block, src, type_info_ty.getNamespaceIndex(mod), - try ip.getOrPutString(gpa, "Float"), + try ip.getOrPutString(gpa, "Float", .no_embedded_nulls), )).?; try sema.ensureDeclAnalyzed(float_info_decl_index); const float_info_decl = mod.declPtr(float_info_decl_index); @@ -17822,7 +17871,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai block, src, (try sema.getBuiltinType("Type")).getNamespaceIndex(mod), - try ip.getOrPutString(gpa, "Pointer"), + try ip.getOrPutString(gpa, "Pointer", .no_embedded_nulls), )).?; try sema.ensureDeclAnalyzed(decl_index); const decl = mod.declPtr(decl_index); @@ -17833,7 +17882,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai block, src, pointer_ty.getNamespaceIndex(mod), - try ip.getOrPutString(gpa, "Size"), + try ip.getOrPutString(gpa, "Size", .no_embedded_nulls), )).?; try sema.ensureDeclAnalyzed(decl_index); const decl = mod.declPtr(decl_index); @@ -17876,7 +17925,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai block, src, type_info_ty.getNamespaceIndex(mod), - try ip.getOrPutString(gpa, "Array"), + try ip.getOrPutString(gpa, "Array", .no_embedded_nulls), )).?; try sema.ensureDeclAnalyzed(array_field_ty_decl_index); const array_field_ty_decl = mod.declPtr(array_field_ty_decl_index); @@ -17907,7 +17956,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai block, src, type_info_ty.getNamespaceIndex(mod), - try ip.getOrPutString(gpa, "Vector"), + try ip.getOrPutString(gpa, "Vector", .no_embedded_nulls), )).?; try sema.ensureDeclAnalyzed(vector_field_ty_decl_index); const vector_field_ty_decl = mod.declPtr(vector_field_ty_decl_index); @@ -17936,7 +17985,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai block, src, type_info_ty.getNamespaceIndex(mod), - try ip.getOrPutString(gpa, "Optional"), + try ip.getOrPutString(gpa, "Optional", .no_embedded_nulls), )).?; try sema.ensureDeclAnalyzed(optional_field_ty_decl_index); const optional_field_ty_decl = mod.declPtr(optional_field_ty_decl_index); @@ -17963,7 +18012,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai block, src, type_info_ty.getNamespaceIndex(mod), - try ip.getOrPutString(gpa, "Error"), + try ip.getOrPutString(gpa, "Error", .no_embedded_nulls), )).?; try sema.ensureDeclAnalyzed(set_field_ty_decl_index); const set_field_ty_decl = mod.declPtr(set_field_ty_decl_index); @@ -17980,18 +18029,18 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai else => |err_set_ty_index| blk: { const names = ip.indexToKey(err_set_ty_index).error_set_type.names; const vals = try sema.arena.alloc(InternPool.Index, names.len); - for (vals, 0..) |*field_val, i| { - // TODO: write something like getCoercedInts to avoid needing to dupe - const name = try sema.arena.dupeZ(u8, ip.stringToSlice(names.get(ip)[i])); - const name_val = v: { + for (vals, 0..) |*field_val, error_index| { + const error_name = names.get(ip)[error_index]; + const error_name_len = error_name.length(ip); + const error_name_val = v: { const new_decl_ty = try mod.arrayType(.{ - .len = name.len, + .len = error_name_len, .sentinel = .zero_u8, .child = .u8_type, }); const new_decl_val = try mod.intern(.{ .aggregate = .{ .ty = new_decl_ty.toIntern(), - .storage = .{ .bytes = name }, + .storage = .{ .bytes = error_name.toString() }, } }); break :v try mod.intern(.{ .slice = .{ .ty = .slice_const_u8_sentinel_0_type, @@ -18002,13 +18051,13 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai .orig_ty = .slice_const_u8_sentinel_0_type, } }, } }), - .len = (try mod.intValue(Type.usize, name.len)).toIntern(), + .len = (try mod.intValue(Type.usize, error_name_len)).toIntern(), } }); }; const error_field_fields = .{ // name: [:0]const u8, - name_val, + error_name_val, }; field_val.* = try mod.intern(.{ .aggregate = .{ .ty = error_field_ty.toIntern(), @@ -18069,7 +18118,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai block, src, type_info_ty.getNamespaceIndex(mod), - try ip.getOrPutString(gpa, "ErrorUnion"), + try ip.getOrPutString(gpa, "ErrorUnion", .no_embedded_nulls), )).?; try sema.ensureDeclAnalyzed(error_union_field_ty_decl_index); const error_union_field_ty_decl = mod.declPtr(error_union_field_ty_decl_index); @@ -18099,7 +18148,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai block, src, type_info_ty.getNamespaceIndex(mod), - try ip.getOrPutString(gpa, "EnumField"), + try ip.getOrPutString(gpa, "EnumField", .no_embedded_nulls), )).?; try sema.ensureDeclAnalyzed(enum_field_ty_decl_index); const enum_field_ty_decl = mod.declPtr(enum_field_ty_decl_index); @@ -18107,27 +18156,29 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai }; const enum_field_vals = try sema.arena.alloc(InternPool.Index, ip.loadEnumType(ty.toIntern()).names.len); - for (enum_field_vals, 0..) |*field_val, i| { + for (enum_field_vals, 0..) |*field_val, tag_index| { const enum_type = ip.loadEnumType(ty.toIntern()); const value_val = if (enum_type.values.len > 0) try mod.intern_pool.getCoercedInts( mod.gpa, - mod.intern_pool.indexToKey(enum_type.values.get(ip)[i]).int, + mod.intern_pool.indexToKey(enum_type.values.get(ip)[tag_index]).int, .comptime_int_type, ) else - (try mod.intValue(Type.comptime_int, i)).toIntern(); + (try mod.intValue(Type.comptime_int, tag_index)).toIntern(); + // TODO: write something like getCoercedInts to avoid needing to dupe - const name = try sema.arena.dupeZ(u8, ip.stringToSlice(enum_type.names.get(ip)[i])); const name_val = v: { + const tag_name = enum_type.names.get(ip)[tag_index]; + const tag_name_len = tag_name.length(ip); const new_decl_ty = try mod.arrayType(.{ - .len = name.len, + .len = tag_name_len, .sentinel = .zero_u8, .child = .u8_type, }); const new_decl_val = try mod.intern(.{ .aggregate = .{ .ty = new_decl_ty.toIntern(), - .storage = .{ .bytes = name }, + .storage = .{ .bytes = tag_name.toString() }, } }); break :v try mod.intern(.{ .slice = .{ .ty = .slice_const_u8_sentinel_0_type, @@ -18138,7 +18189,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai .orig_ty = .slice_const_u8_sentinel_0_type, } }, } }), - .len = (try mod.intValue(Type.usize, name.len)).toIntern(), + .len = (try mod.intValue(Type.usize, tag_name_len)).toIntern(), } }); }; @@ -18191,7 +18242,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai block, src, type_info_ty.getNamespaceIndex(mod), - try ip.getOrPutString(gpa, "Enum"), + try ip.getOrPutString(gpa, "Enum", .no_embedded_nulls), )).?; try sema.ensureDeclAnalyzed(type_enum_ty_decl_index); const type_enum_ty_decl = mod.declPtr(type_enum_ty_decl_index); @@ -18223,7 +18274,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai block, src, type_info_ty.getNamespaceIndex(mod), - try ip.getOrPutString(gpa, "Union"), + try ip.getOrPutString(gpa, "Union", .no_embedded_nulls), )).?; try sema.ensureDeclAnalyzed(type_union_ty_decl_index); const type_union_ty_decl = mod.declPtr(type_union_ty_decl_index); @@ -18235,7 +18286,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai block, src, type_info_ty.getNamespaceIndex(mod), - try ip.getOrPutString(gpa, "UnionField"), + try ip.getOrPutString(gpa, "UnionField", .no_embedded_nulls), )).?; try sema.ensureDeclAnalyzed(union_field_ty_decl_index); const union_field_ty_decl = mod.declPtr(union_field_ty_decl_index); @@ -18250,18 +18301,18 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai const union_field_vals = try gpa.alloc(InternPool.Index, tag_type.names.len); defer gpa.free(union_field_vals); - for (union_field_vals, 0..) |*field_val, i| { - // TODO: write something like getCoercedInts to avoid needing to dupe - const name = try sema.arena.dupeZ(u8, ip.stringToSlice(tag_type.names.get(ip)[i])); + for (union_field_vals, 0..) |*field_val, field_index| { const name_val = v: { + const field_name = tag_type.names.get(ip)[field_index]; + const field_name_len = field_name.length(ip); const new_decl_ty = try mod.arrayType(.{ - .len = name.len, + .len = field_name_len, .sentinel = .zero_u8, .child = .u8_type, }); const new_decl_val = try mod.intern(.{ .aggregate = .{ .ty = new_decl_ty.toIntern(), - .storage = .{ .bytes = name }, + .storage = .{ .bytes = field_name.toString() }, } }); break :v try mod.intern(.{ .slice = .{ .ty = .slice_const_u8_sentinel_0_type, @@ -18272,16 +18323,16 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai .orig_ty = .slice_const_u8_sentinel_0_type, } }, } }), - .len = (try mod.intValue(Type.usize, name.len)).toIntern(), + .len = (try mod.intValue(Type.usize, field_name_len)).toIntern(), } }); }; const alignment = switch (layout) { - .auto, .@"extern" => try sema.unionFieldAlignment(union_obj, @intCast(i)), + .auto, .@"extern" => try sema.unionFieldAlignment(union_obj, @intCast(field_index)), .@"packed" => .none, }; - const field_ty = union_obj.field_types.get(ip)[i]; + const field_ty = union_obj.field_types.get(ip)[field_index]; const union_field_fields = .{ // name: [:0]const u8, name_val, @@ -18338,7 +18389,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai block, src, (try sema.getBuiltinType("Type")).getNamespaceIndex(mod), - try ip.getOrPutString(gpa, "ContainerLayout"), + try ip.getOrPutString(gpa, "ContainerLayout", .no_embedded_nulls), )).?; try sema.ensureDeclAnalyzed(decl_index); const decl = mod.declPtr(decl_index); @@ -18371,7 +18422,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai block, src, type_info_ty.getNamespaceIndex(mod), - try ip.getOrPutString(gpa, "Struct"), + try ip.getOrPutString(gpa, "Struct", .no_embedded_nulls), )).?; try sema.ensureDeclAnalyzed(type_struct_ty_decl_index); const type_struct_ty_decl = mod.declPtr(type_struct_ty_decl_index); @@ -18383,7 +18434,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai block, src, type_info_ty.getNamespaceIndex(mod), - try ip.getOrPutString(gpa, "StructField"), + try ip.getOrPutString(gpa, "StructField", .no_embedded_nulls), )).?; try sema.ensureDeclAnalyzed(struct_field_ty_decl_index); const struct_field_ty_decl = mod.declPtr(struct_field_ty_decl_index); @@ -18396,27 +18447,25 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai defer gpa.free(struct_field_vals); fv: { const struct_type = switch (ip.indexToKey(ty.toIntern())) { - .anon_struct_type => |tuple| { - struct_field_vals = try gpa.alloc(InternPool.Index, tuple.types.len); - for (struct_field_vals, 0..) |*struct_field_val, i| { - const anon_struct_type = ip.indexToKey(ty.toIntern()).anon_struct_type; - const field_ty = anon_struct_type.types.get(ip)[i]; - const field_val = anon_struct_type.values.get(ip)[i]; + .anon_struct_type => |anon_struct_type| { + struct_field_vals = try gpa.alloc(InternPool.Index, anon_struct_type.types.len); + for (struct_field_vals, 0..) |*struct_field_val, field_index| { + const field_ty = anon_struct_type.types.get(ip)[field_index]; + const field_val = anon_struct_type.values.get(ip)[field_index]; const name_val = v: { - // TODO: write something like getCoercedInts to avoid needing to dupe - const bytes = if (tuple.names.len != 0) - // https://github.com/ziglang/zig/issues/15709 - try sema.arena.dupeZ(u8, ip.stringToSlice(ip.indexToKey(ty.toIntern()).anon_struct_type.names.get(ip)[i])) + const field_name = if (anon_struct_type.names.len != 0) + anon_struct_type.names.get(ip)[field_index] else - try std.fmt.allocPrintZ(sema.arena, "{d}", .{i}); + try ip.getOrPutStringFmt(gpa, "{d}", .{field_index}, .no_embedded_nulls); + const field_name_len = field_name.length(ip); const new_decl_ty = try mod.arrayType(.{ - .len = bytes.len, + .len = field_name_len, .sentinel = .zero_u8, .child = .u8_type, }); const new_decl_val = try mod.intern(.{ .aggregate = .{ .ty = new_decl_ty.toIntern(), - .storage = .{ .bytes = bytes }, + .storage = .{ .bytes = field_name.toString() }, } }); break :v try mod.intern(.{ .slice = .{ .ty = .slice_const_u8_sentinel_0_type, @@ -18427,7 +18476,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai .orig_ty = .slice_const_u8_sentinel_0_type, } }, } }), - .len = (try mod.intValue(Type.usize, bytes.len)).toIntern(), + .len = (try mod.intValue(Type.usize, field_name_len)).toIntern(), } }); }; @@ -18462,24 +18511,24 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai try sema.resolveStructFieldInits(ty); - for (struct_field_vals, 0..) |*field_val, i| { - // TODO: write something like getCoercedInts to avoid needing to dupe - const name = if (struct_type.fieldName(ip, i).unwrap()) |name_nts| - try sema.arena.dupeZ(u8, ip.stringToSlice(name_nts)) + for (struct_field_vals, 0..) |*field_val, field_index| { + const field_name = if (struct_type.fieldName(ip, field_index).unwrap()) |field_name| + field_name else - try std.fmt.allocPrintZ(sema.arena, "{d}", .{i}); - const field_ty = Type.fromInterned(struct_type.field_types.get(ip)[i]); - const field_init = struct_type.fieldInit(ip, i); - const field_is_comptime = struct_type.fieldIsComptime(ip, i); + try ip.getOrPutStringFmt(gpa, "{d}", .{field_index}, .no_embedded_nulls); + const field_name_len = field_name.length(ip); + const field_ty = Type.fromInterned(struct_type.field_types.get(ip)[field_index]); + const field_init = struct_type.fieldInit(ip, field_index); + const field_is_comptime = struct_type.fieldIsComptime(ip, field_index); const name_val = v: { const new_decl_ty = try mod.arrayType(.{ - .len = name.len, + .len = field_name_len, .sentinel = .zero_u8, .child = .u8_type, }); const new_decl_val = try mod.intern(.{ .aggregate = .{ .ty = new_decl_ty.toIntern(), - .storage = .{ .bytes = name }, + .storage = .{ .bytes = field_name.toString() }, } }); break :v try mod.intern(.{ .slice = .{ .ty = .slice_const_u8_sentinel_0_type, @@ -18490,7 +18539,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai .orig_ty = .slice_const_u8_sentinel_0_type, } }, } }), - .len = (try mod.intValue(Type.usize, name.len)).toIntern(), + .len = (try mod.intValue(Type.usize, field_name_len)).toIntern(), } }); }; @@ -18499,7 +18548,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai const alignment = switch (struct_type.layout) { .@"packed" => .none, else => try sema.structFieldAlignment( - struct_type.fieldAlign(ip, i), + struct_type.fieldAlign(ip, field_index), field_ty, struct_type.layout, ), @@ -18569,7 +18618,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai block, src, (try sema.getBuiltinType("Type")).getNamespaceIndex(mod), - try ip.getOrPutString(gpa, "ContainerLayout"), + try ip.getOrPutString(gpa, "ContainerLayout", .no_embedded_nulls), )).?; try sema.ensureDeclAnalyzed(decl_index); const decl = mod.declPtr(decl_index); @@ -18605,7 +18654,7 @@ fn zirTypeInfo(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Ai block, src, type_info_ty.getNamespaceIndex(mod), - try ip.getOrPutString(gpa, "Opaque"), + try ip.getOrPutString(gpa, "Opaque", .no_embedded_nulls), )).?; try sema.ensureDeclAnalyzed(type_opaque_ty_decl_index); const type_opaque_ty_decl = mod.declPtr(type_opaque_ty_decl_index); @@ -18648,7 +18697,7 @@ fn typeInfoDecls( block, src, type_info_ty.getNamespaceIndex(mod), - try mod.intern_pool.getOrPutString(gpa, "Declaration"), + try mod.intern_pool.getOrPutString(gpa, "Declaration", .no_embedded_nulls), )).?; try sema.ensureDeclAnalyzed(declaration_ty_decl_index); const declaration_ty_decl = mod.declPtr(declaration_ty_decl_index); @@ -18722,16 +18771,15 @@ fn typeInfoNamespaceDecls( } if (decl.kind != .named) continue; const name_val = v: { - // TODO: write something like getCoercedInts to avoid needing to dupe - const name = try sema.arena.dupeZ(u8, ip.stringToSlice(decl.name)); + const decl_name_len = decl.name.length(ip); const new_decl_ty = try mod.arrayType(.{ - .len = name.len, + .len = decl_name_len, .sentinel = .zero_u8, .child = .u8_type, }); const new_decl_val = try mod.intern(.{ .aggregate = .{ .ty = new_decl_ty.toIntern(), - .storage = .{ .bytes = name }, + .storage = .{ .bytes = decl.name.toString() }, } }); break :v try mod.intern(.{ .slice = .{ .ty = .slice_const_u8_sentinel_0_type, @@ -18742,7 +18790,7 @@ fn typeInfoNamespaceDecls( .val = new_decl_val, } }, } }), - .len = (try mod.intValue(Type.usize, name.len)).toIntern(), + .len = (try mod.intValue(Type.usize, decl_name_len)).toIntern(), } }); }; @@ -19385,7 +19433,11 @@ fn zirRetErrValue( ) CompileError!void { const mod = sema.mod; const inst_data = sema.code.instructions.items(.data)[@intFromEnum(inst)].str_tok; - const err_name = try mod.intern_pool.getOrPutString(sema.gpa, inst_data.get(sema.code)); + const err_name = try mod.intern_pool.getOrPutString( + sema.gpa, + inst_data.get(sema.code), + .no_embedded_nulls, + ); _ = try mod.getErrorValue(err_name); const src = inst_data.src(); // Return the error code from the function. @@ -20072,7 +20124,11 @@ fn zirStructInit( const field_type_data = zir_datas[@intFromEnum(item.data.field_type)].pl_node; const field_src: LazySrcLoc = .{ .node_offset_initializer = field_type_data.src_node }; const field_type_extra = sema.code.extraData(Zir.Inst.FieldType, field_type_data.payload_index).data; - const field_name = try ip.getOrPutString(gpa, sema.code.nullTerminatedString(field_type_extra.name_start)); + const field_name = try ip.getOrPutString( + gpa, + sema.code.nullTerminatedString(field_type_extra.name_start), + .no_embedded_nulls, + ); const field_index = if (resolved_ty.isTuple(mod)) try sema.tupleFieldIndex(block, resolved_ty, field_name, field_src) else @@ -20109,7 +20165,11 @@ fn zirStructInit( const field_type_data = zir_datas[@intFromEnum(item.data.field_type)].pl_node; const field_src: LazySrcLoc = .{ .node_offset_initializer = field_type_data.src_node }; const field_type_extra = sema.code.extraData(Zir.Inst.FieldType, field_type_data.payload_index).data; - const field_name = try ip.getOrPutString(gpa, sema.code.nullTerminatedString(field_type_extra.name_start)); + const field_name = try ip.getOrPutString( + gpa, + sema.code.nullTerminatedString(field_type_extra.name_start), + .no_embedded_nulls, + ); const field_index = try sema.unionFieldIndex(block, resolved_ty, field_name, field_src); const tag_ty = resolved_ty.unionTagTypeHypothetical(mod); const tag_val = try mod.enumValueFieldIndex(tag_ty, field_index); @@ -20417,8 +20477,7 @@ fn structInitAnon( }, }; - const name_ip = try mod.intern_pool.getOrPutString(gpa, name); - field_name.* = name_ip; + field_name.* = try mod.intern_pool.getOrPutString(gpa, name, .no_embedded_nulls); const init = try sema.resolveInst(item.data.init); field_ty.* = sema.typeOf(init).toIntern(); @@ -20809,7 +20868,7 @@ fn zirStructInitFieldType(sema: *Sema, block: *Block, inst: Zir.Inst.Index) Comp }; const aggregate_ty = wrapped_aggregate_ty.optEuBaseType(mod); const zir_field_name = sema.code.nullTerminatedString(extra.name_start); - const field_name = try ip.getOrPutString(sema.gpa, zir_field_name); + const field_name = try ip.getOrPutString(sema.gpa, zir_field_name, .no_embedded_nulls); return sema.fieldType(block, aggregate_ty, field_name, field_name_src, ty_src); } @@ -20975,7 +21034,7 @@ fn zirErrorName(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!A if (try sema.resolveDefinedValue(block, operand_src, operand)) |val| { const err_name = sema.mod.intern_pool.indexToKey(val.toIntern()).err.name; - return sema.addStrLit(sema.mod.intern_pool.stringToSlice(err_name)); + return sema.addNullTerminatedStrLit(err_name); } // Similar to zirTagName, we have special AIR instruction for the error name in case an optimimzation pass @@ -21093,7 +21152,7 @@ fn zirTagName(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air .EnumLiteral => { const val = try sema.resolveConstDefinedValue(block, .unneeded, operand, undefined); const tag_name = ip.indexToKey(val.toIntern()).enum_literal; - return sema.addStrLit(ip.stringToSlice(tag_name)); + return sema.addNullTerminatedStrLit(tag_name); }, .Enum => operand_ty, .Union => operand_ty.unionTagType(mod) orelse @@ -21127,7 +21186,7 @@ fn zirTagName(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air }; // TODO: write something like getCoercedInts to avoid needing to dupe const field_name = enum_ty.enumFieldName(field_index, mod); - return sema.addStrLit(ip.stringToSlice(field_name)); + return sema.addNullTerminatedStrLit(field_name); } try sema.requireRuntimeBlock(block, src, operand_src); if (block.wantSafety() and sema.mod.backendSupportsFeature(.is_named_enum_value)) { @@ -21179,11 +21238,11 @@ fn zirReify( const struct_type = ip.loadStructType(ip.typeOf(union_val.val)); const signedness_val = try Value.fromInterned(union_val.val).fieldValue( mod, - struct_type.nameIndex(ip, try ip.getOrPutString(gpa, "signedness")).?, + struct_type.nameIndex(ip, try ip.getOrPutString(gpa, "signedness", .no_embedded_nulls)).?, ); const bits_val = try Value.fromInterned(union_val.val).fieldValue( mod, - struct_type.nameIndex(ip, try ip.getOrPutString(gpa, "bits")).?, + struct_type.nameIndex(ip, try ip.getOrPutString(gpa, "bits", .no_embedded_nulls)).?, ); const signedness = mod.toEnum(std.builtin.Signedness, signedness_val); @@ -21195,11 +21254,11 @@ fn zirReify( const struct_type = ip.loadStructType(ip.typeOf(union_val.val)); const len_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "len"), + try ip.getOrPutString(gpa, "len", .no_embedded_nulls), ).?); const child_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "child"), + try ip.getOrPutString(gpa, "child", .no_embedded_nulls), ).?); const len: u32 = @intCast(try len_val.toUnsignedIntAdvanced(sema)); @@ -21217,7 +21276,7 @@ fn zirReify( const struct_type = ip.loadStructType(ip.typeOf(union_val.val)); const bits_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "bits"), + try ip.getOrPutString(gpa, "bits", .no_embedded_nulls), ).?); const bits: u16 = @intCast(try bits_val.toUnsignedIntAdvanced(sema)); @@ -21235,35 +21294,35 @@ fn zirReify( const struct_type = ip.loadStructType(ip.typeOf(union_val.val)); const size_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "size"), + try ip.getOrPutString(gpa, "size", .no_embedded_nulls), ).?); const is_const_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "is_const"), + try ip.getOrPutString(gpa, "is_const", .no_embedded_nulls), ).?); const is_volatile_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "is_volatile"), + try ip.getOrPutString(gpa, "is_volatile", .no_embedded_nulls), ).?); const alignment_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "alignment"), + try ip.getOrPutString(gpa, "alignment", .no_embedded_nulls), ).?); const address_space_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "address_space"), + try ip.getOrPutString(gpa, "address_space", .no_embedded_nulls), ).?); const child_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "child"), + try ip.getOrPutString(gpa, "child", .no_embedded_nulls), ).?); const is_allowzero_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "is_allowzero"), + try ip.getOrPutString(gpa, "is_allowzero", .no_embedded_nulls), ).?); const sentinel_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "sentinel"), + try ip.getOrPutString(gpa, "sentinel", .no_embedded_nulls), ).?); if (!try sema.intFitsInType(alignment_val, Type.u32, null)) { @@ -21341,15 +21400,15 @@ fn zirReify( const struct_type = ip.loadStructType(ip.typeOf(union_val.val)); const len_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "len"), + try ip.getOrPutString(gpa, "len", .no_embedded_nulls), ).?); const child_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "child"), + try ip.getOrPutString(gpa, "child", .no_embedded_nulls), ).?); const sentinel_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "sentinel"), + try ip.getOrPutString(gpa, "sentinel", .no_embedded_nulls), ).?); const len = try len_val.toUnsignedIntAdvanced(sema); @@ -21370,7 +21429,7 @@ fn zirReify( const struct_type = ip.loadStructType(ip.typeOf(union_val.val)); const child_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "child"), + try ip.getOrPutString(gpa, "child", .no_embedded_nulls), ).?); const child_ty = child_val.toType(); @@ -21382,11 +21441,11 @@ fn zirReify( const struct_type = ip.loadStructType(ip.typeOf(union_val.val)); const error_set_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "error_set"), + try ip.getOrPutString(gpa, "error_set", .no_embedded_nulls), ).?); const payload_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "payload"), + try ip.getOrPutString(gpa, "payload", .no_embedded_nulls), ).?); const error_set_ty = error_set_val.toType(); @@ -21415,7 +21474,7 @@ fn zirReify( const elem_struct_type = ip.loadStructType(ip.typeOf(elem_val.toIntern())); const name_val = try elem_val.fieldValue(mod, elem_struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "name"), + try ip.getOrPutString(gpa, "name", .no_embedded_nulls), ).?); const name = try sema.sliceToIpString(block, src, name_val, .{ @@ -21437,23 +21496,23 @@ fn zirReify( const struct_type = ip.loadStructType(ip.typeOf(union_val.val)); const layout_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "layout"), + try ip.getOrPutString(gpa, "layout", .no_embedded_nulls), ).?); const backing_integer_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "backing_integer"), + try ip.getOrPutString(gpa, "backing_integer", .no_embedded_nulls), ).?); const fields_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "fields"), + try ip.getOrPutString(gpa, "fields", .no_embedded_nulls), ).?); const decls_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "decls"), + try ip.getOrPutString(gpa, "decls", .no_embedded_nulls), ).?); const is_tuple_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "is_tuple"), + try ip.getOrPutString(gpa, "is_tuple", .no_embedded_nulls), ).?); const layout = mod.toEnum(std.builtin.Type.ContainerLayout, layout_val); @@ -21477,19 +21536,19 @@ fn zirReify( const struct_type = ip.loadStructType(ip.typeOf(union_val.val)); const tag_type_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "tag_type"), + try ip.getOrPutString(gpa, "tag_type", .no_embedded_nulls), ).?); const fields_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "fields"), + try ip.getOrPutString(gpa, "fields", .no_embedded_nulls), ).?); const decls_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "decls"), + try ip.getOrPutString(gpa, "decls", .no_embedded_nulls), ).?); const is_exhaustive_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "is_exhaustive"), + try ip.getOrPutString(gpa, "is_exhaustive", .no_embedded_nulls), ).?); if (try decls_val.sliceLen(sema) > 0) { @@ -21506,7 +21565,7 @@ fn zirReify( const struct_type = ip.loadStructType(ip.typeOf(union_val.val)); const decls_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "decls"), + try ip.getOrPutString(gpa, "decls", .no_embedded_nulls), ).?); // Decls @@ -21544,19 +21603,19 @@ fn zirReify( const struct_type = ip.loadStructType(ip.typeOf(union_val.val)); const layout_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "layout"), + try ip.getOrPutString(gpa, "layout", .no_embedded_nulls), ).?); const tag_type_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "tag_type"), + try ip.getOrPutString(gpa, "tag_type", .no_embedded_nulls), ).?); const fields_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "fields"), + try ip.getOrPutString(gpa, "fields", .no_embedded_nulls), ).?); const decls_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "decls"), + try ip.getOrPutString(gpa, "decls", .no_embedded_nulls), ).?); if (try decls_val.sliceLen(sema) > 0) { @@ -21574,23 +21633,23 @@ fn zirReify( const struct_type = ip.loadStructType(ip.typeOf(union_val.val)); const calling_convention_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "calling_convention"), + try ip.getOrPutString(gpa, "calling_convention", .no_embedded_nulls), ).?); const is_generic_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "is_generic"), + try ip.getOrPutString(gpa, "is_generic", .no_embedded_nulls), ).?); const is_var_args_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "is_var_args"), + try ip.getOrPutString(gpa, "is_var_args", .no_embedded_nulls), ).?); const return_type_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "return_type"), + try ip.getOrPutString(gpa, "return_type", .no_embedded_nulls), ).?); const params_slice_val = try Value.fromInterned(union_val.val).fieldValue(mod, struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "params"), + try ip.getOrPutString(gpa, "params", .no_embedded_nulls), ).?); const is_generic = is_generic_val.toBool(); @@ -21620,15 +21679,15 @@ fn zirReify( const elem_struct_type = ip.loadStructType(ip.typeOf(elem_val.toIntern())); const param_is_generic_val = try elem_val.fieldValue(mod, elem_struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "is_generic"), + try ip.getOrPutString(gpa, "is_generic", .no_embedded_nulls), ).?); const param_is_noalias_val = try elem_val.fieldValue(mod, elem_struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "is_noalias"), + try ip.getOrPutString(gpa, "is_noalias", .no_embedded_nulls), ).?); const opt_param_type_val = try elem_val.fieldValue(mod, elem_struct_type.nameIndex( ip, - try ip.getOrPutString(gpa, "type"), + try ip.getOrPutString(gpa, "type", .no_embedded_nulls), ).?); if (param_is_generic_val.toBool()) { @@ -22366,13 +22425,14 @@ fn zirCVaStart(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstData) fn zirTypeName(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.Inst.Ref { const mod = sema.mod; + const ip = &mod.intern_pool; + const inst_data = sema.code.instructions.items(.data)[@intFromEnum(inst)].un_node; const ty_src: LazySrcLoc = .{ .node_offset_builtin_call_arg0 = inst_data.src_node }; const ty = try sema.resolveType(block, ty_src, inst_data.operand); - var bytes = std.ArrayList(u8).init(sema.arena); - try ty.print(bytes.writer(), mod); - return addStrLitNoAlias(sema, bytes.items); + const type_name = try ip.getOrPutStringFmt(sema.gpa, "{}", .{ty.fmt(mod)}, .no_embedded_nulls); + return sema.addNullTerminatedStrLit(type_name); } fn zirFrameType(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air.Inst.Ref { @@ -23507,7 +23567,7 @@ fn bitOffsetOf(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!u6 } const field_index = if (ty.isTuple(mod)) blk: { - if (ip.stringEqlSlice(field_name, "len")) { + if (field_name.eqlSlice("len", ip)) { return sema.fail(block, src, "no offset available for 'len' field of tuple", .{}); } break :blk try sema.tupleFieldIndex(block, ty, field_name, rhs_src); @@ -23977,18 +24037,18 @@ fn resolveExportOptions( const section_src = sema.maybeOptionsSrc(block, src, "section"); const visibility_src = sema.maybeOptionsSrc(block, src, "visibility"); - const name_operand = try sema.fieldVal(block, src, options, try ip.getOrPutString(gpa, "name"), name_src); + const name_operand = try sema.fieldVal(block, src, options, try ip.getOrPutString(gpa, "name", .no_embedded_nulls), name_src); const name = try sema.toConstString(block, name_src, name_operand, .{ .needed_comptime_reason = "name of exported value must be comptime-known", }); - const linkage_operand = try sema.fieldVal(block, src, options, try ip.getOrPutString(gpa, "linkage"), linkage_src); + const linkage_operand = try sema.fieldVal(block, src, options, try ip.getOrPutString(gpa, "linkage", .no_embedded_nulls), linkage_src); const linkage_val = try sema.resolveConstDefinedValue(block, linkage_src, linkage_operand, .{ .needed_comptime_reason = "linkage of exported value must be comptime-known", }); const linkage = mod.toEnum(std.builtin.GlobalLinkage, linkage_val); - const section_operand = try sema.fieldVal(block, src, options, try ip.getOrPutString(gpa, "section"), section_src); + const section_operand = try sema.fieldVal(block, src, options, try ip.getOrPutString(gpa, "section", .no_embedded_nulls), section_src); const section_opt_val = try sema.resolveConstDefinedValue(block, section_src, section_operand, .{ .needed_comptime_reason = "linksection of exported value must be comptime-known", }); @@ -23999,7 +24059,7 @@ fn resolveExportOptions( else null; - const visibility_operand = try sema.fieldVal(block, src, options, try ip.getOrPutString(gpa, "visibility"), visibility_src); + const visibility_operand = try sema.fieldVal(block, src, options, try ip.getOrPutString(gpa, "visibility", .no_embedded_nulls), visibility_src); const visibility_val = try sema.resolveConstDefinedValue(block, visibility_src, visibility_operand, .{ .needed_comptime_reason = "visibility of exported value must be comptime-known", }); @@ -24016,9 +24076,9 @@ fn resolveExportOptions( } return .{ - .name = try ip.getOrPutString(gpa, name), + .name = try ip.getOrPutString(gpa, name, .no_embedded_nulls), .linkage = linkage, - .section = try ip.getOrPutStringOpt(gpa, section), + .section = try ip.getOrPutStringOpt(gpa, section, .no_embedded_nulls), .visibility = visibility, }; } @@ -24896,7 +24956,7 @@ fn zirFieldParentPtr(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.Ins const field_index = switch (parent_ty.zigTypeTag(mod)) { .Struct => blk: { if (parent_ty.isTuple(mod)) { - if (ip.stringEqlSlice(field_name, "len")) { + if (field_name.eqlSlice("len", ip)) { return sema.fail(block, inst_src, "cannot get @fieldParentPtr of 'len' field of tuple", .{}); } break :blk try sema.tupleFieldIndex(block, parent_ty, field_name, field_name_src); @@ -25578,7 +25638,7 @@ fn zirMemset(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!void const runtime_src = rs: { const ptr_val = try sema.resolveDefinedValue(block, dest_src, dest_ptr) orelse break :rs dest_src; - const len_air_ref = try sema.fieldVal(block, src, dest_ptr, try ip.getOrPutString(gpa, "len"), dest_src); + const len_air_ref = try sema.fieldVal(block, src, dest_ptr, try ip.getOrPutString(gpa, "len", .no_embedded_nulls), dest_src); const len_val = (try sema.resolveDefinedValue(block, dest_src, len_air_ref)) orelse break :rs dest_src; const len_u64 = (try len_val.getUnsignedIntAdvanced(mod, sema)).?; const len = try sema.usizeCast(block, dest_src, len_u64); @@ -25708,7 +25768,7 @@ fn zirVarExtended( .ty = var_ty.toIntern(), .init = init_val, .decl = sema.owner_decl_index, - .lib_name = try mod.intern_pool.getOrPutStringOpt(sema.gpa, lib_name), + .lib_name = try mod.intern_pool.getOrPutStringOpt(sema.gpa, lib_name, .no_embedded_nulls), .is_extern = small.is_extern, .is_const = small.is_const, .is_threadlocal = small.is_threadlocal, @@ -26076,17 +26136,17 @@ fn resolvePrefetchOptions( const locality_src = sema.maybeOptionsSrc(block, src, "locality"); const cache_src = sema.maybeOptionsSrc(block, src, "cache"); - const rw = try sema.fieldVal(block, src, options, try ip.getOrPutString(gpa, "rw"), rw_src); + const rw = try sema.fieldVal(block, src, options, try ip.getOrPutString(gpa, "rw", .no_embedded_nulls), rw_src); const rw_val = try sema.resolveConstDefinedValue(block, rw_src, rw, .{ .needed_comptime_reason = "prefetch read/write must be comptime-known", }); - const locality = try sema.fieldVal(block, src, options, try ip.getOrPutString(gpa, "locality"), locality_src); + const locality = try sema.fieldVal(block, src, options, try ip.getOrPutString(gpa, "locality", .no_embedded_nulls), locality_src); const locality_val = try sema.resolveConstDefinedValue(block, locality_src, locality, .{ .needed_comptime_reason = "prefetch locality must be comptime-known", }); - const cache = try sema.fieldVal(block, src, options, try ip.getOrPutString(gpa, "cache"), cache_src); + const cache = try sema.fieldVal(block, src, options, try ip.getOrPutString(gpa, "cache", .no_embedded_nulls), cache_src); const cache_val = try sema.resolveConstDefinedValue(block, cache_src, cache, .{ .needed_comptime_reason = "prefetch cache must be comptime-known", }); @@ -26155,23 +26215,23 @@ fn resolveExternOptions( const linkage_src = sema.maybeOptionsSrc(block, src, "linkage"); const thread_local_src = sema.maybeOptionsSrc(block, src, "thread_local"); - const name_ref = try sema.fieldVal(block, src, options, try ip.getOrPutString(gpa, "name"), name_src); + const name_ref = try sema.fieldVal(block, src, options, try ip.getOrPutString(gpa, "name", .no_embedded_nulls), name_src); const name = try sema.toConstString(block, name_src, name_ref, .{ .needed_comptime_reason = "name of the extern symbol must be comptime-known", }); - const library_name_inst = try sema.fieldVal(block, src, options, try ip.getOrPutString(gpa, "library_name"), library_src); + const library_name_inst = try sema.fieldVal(block, src, options, try ip.getOrPutString(gpa, "library_name", .no_embedded_nulls), library_src); const library_name_val = try sema.resolveConstDefinedValue(block, library_src, library_name_inst, .{ .needed_comptime_reason = "library in which extern symbol is must be comptime-known", }); - const linkage_ref = try sema.fieldVal(block, src, options, try ip.getOrPutString(gpa, "linkage"), linkage_src); + const linkage_ref = try sema.fieldVal(block, src, options, try ip.getOrPutString(gpa, "linkage", .no_embedded_nulls), linkage_src); const linkage_val = try sema.resolveConstDefinedValue(block, linkage_src, linkage_ref, .{ .needed_comptime_reason = "linkage of the extern symbol must be comptime-known", }); const linkage = mod.toEnum(std.builtin.GlobalLinkage, linkage_val); - const is_thread_local = try sema.fieldVal(block, src, options, try ip.getOrPutString(gpa, "is_thread_local"), thread_local_src); + const is_thread_local = try sema.fieldVal(block, src, options, try ip.getOrPutString(gpa, "is_thread_local", .no_embedded_nulls), thread_local_src); const is_thread_local_val = try sema.resolveConstDefinedValue(block, thread_local_src, is_thread_local, .{ .needed_comptime_reason = "threadlocality of the extern symbol must be comptime-known", }); @@ -26196,8 +26256,8 @@ fn resolveExternOptions( } return .{ - .name = try ip.getOrPutString(gpa, name), - .library_name = try ip.getOrPutStringOpt(gpa, library_name), + .name = try ip.getOrPutString(gpa, name, .no_embedded_nulls), + .library_name = try ip.getOrPutStringOpt(gpa, library_name, .no_embedded_nulls), .linkage = linkage, .is_thread_local = is_thread_local_val.toBool(), }; @@ -26809,7 +26869,7 @@ fn preparePanicId(sema: *Sema, block: *Block, panic_id: Module.PanicId) !InternP block, .unneeded, panic_messages_ty.getNamespaceIndex(mod), - try mod.intern_pool.getOrPutString(gpa, @tagName(panic_id)), + try mod.intern_pool.getOrPutString(gpa, @tagName(panic_id), .no_embedded_nulls), ) catch |err| switch (err) { error.AnalysisFail, error.NeededSourceLocation => @panic("std.builtin.panic_messages is corrupt"), error.GenericPoison, error.ComptimeReturn, error.ComptimeBreak => unreachable, @@ -27129,9 +27189,9 @@ fn fieldVal( switch (inner_ty.zigTypeTag(mod)) { .Array => { - if (ip.stringEqlSlice(field_name, "len")) { + if (field_name.eqlSlice("len", ip)) { return Air.internedToRef((try mod.intValue(Type.usize, inner_ty.arrayLen(mod))).toIntern()); - } else if (ip.stringEqlSlice(field_name, "ptr") and is_pointer_to) { + } else if (field_name.eqlSlice("ptr", ip) and is_pointer_to) { const ptr_info = object_ty.ptrInfo(mod); const result_ty = try sema.ptrType(.{ .child = Type.fromInterned(ptr_info.child).childType(mod).toIntern(), @@ -27160,13 +27220,13 @@ fn fieldVal( .Pointer => { const ptr_info = inner_ty.ptrInfo(mod); if (ptr_info.flags.size == .Slice) { - if (ip.stringEqlSlice(field_name, "ptr")) { + if (field_name.eqlSlice("ptr", ip)) { const slice = if (is_pointer_to) try sema.analyzeLoad(block, src, object, object_src) else object; return sema.analyzeSlicePtr(block, object_src, slice, inner_ty); - } else if (ip.stringEqlSlice(field_name, "len")) { + } else if (field_name.eqlSlice("len", ip)) { const slice = if (is_pointer_to) try sema.analyzeLoad(block, src, object, object_src) else @@ -27319,10 +27379,10 @@ fn fieldPtr( switch (inner_ty.zigTypeTag(mod)) { .Array => { - if (ip.stringEqlSlice(field_name, "len")) { + if (field_name.eqlSlice("len", ip)) { const int_val = try mod.intValue(Type.usize, inner_ty.arrayLen(mod)); return anonDeclRef(sema, int_val.toIntern()); - } else if (ip.stringEqlSlice(field_name, "ptr") and is_pointer_to) { + } else if (field_name.eqlSlice("ptr", ip) and is_pointer_to) { const ptr_info = object_ty.ptrInfo(mod); const new_ptr_ty = try sema.ptrType(.{ .child = Type.fromInterned(ptr_info.child).childType(mod).toIntern(), @@ -27370,7 +27430,7 @@ fn fieldPtr( const attr_ptr_ty = if (is_pointer_to) object_ty else object_ptr_ty; - if (ip.stringEqlSlice(field_name, "ptr")) { + if (field_name.eqlSlice("ptr", ip)) { const slice_ptr_ty = inner_ty.slicePtrFieldType(mod); const result_ty = try sema.ptrType(.{ @@ -27396,7 +27456,7 @@ fn fieldPtr( const field_ptr = try block.addTyOp(.ptr_slice_ptr_ptr, result_ty, inner_ptr); try sema.checkKnownAllocPtr(block, inner_ptr, field_ptr); return field_ptr; - } else if (ip.stringEqlSlice(field_name, "len")) { + } else if (field_name.eqlSlice("len", ip)) { const result_ty = try sema.ptrType(.{ .child = .usize_type, .flags = .{ @@ -27584,7 +27644,7 @@ fn fieldCallBind( return sema.finishFieldCallBind(block, src, ptr_ty, field_ty, field_index, object_ptr); } else if (concrete_ty.isTuple(mod)) { - if (ip.stringEqlSlice(field_name, "len")) { + if (field_name.eqlSlice("len", ip)) { return .{ .direct = try mod.intRef(Type.usize, concrete_ty.structFieldCount(mod)) }; } if (field_name.toUnsigned(ip)) |field_index| { @@ -27808,7 +27868,7 @@ fn structFieldPtr( try sema.resolveStructLayout(struct_ty); if (struct_ty.isTuple(mod)) { - if (ip.stringEqlSlice(field_name, "len")) { + if (field_name.eqlSlice("len", ip)) { const len_inst = try mod.intRef(Type.usize, struct_ty.structFieldCount(mod)); return sema.analyzeRef(block, src, len_inst); } @@ -28023,7 +28083,7 @@ fn tupleFieldVal( tuple_ty: Type, ) CompileError!Air.Inst.Ref { const mod = sema.mod; - if (mod.intern_pool.stringEqlSlice(field_name, "len")) { + if (field_name.eqlSlice("len", &mod.intern_pool)) { return mod.intRef(Type.usize, tuple_ty.structFieldCount(mod)); } const field_index = try sema.tupleFieldIndex(block, tuple_ty, field_name, field_name_src); @@ -28039,16 +28099,17 @@ fn tupleFieldIndex( field_name_src: LazySrcLoc, ) CompileError!u32 { const mod = sema.mod; - assert(!mod.intern_pool.stringEqlSlice(field_name, "len")); - if (field_name.toUnsigned(&mod.intern_pool)) |field_index| { + const ip = &mod.intern_pool; + assert(!field_name.eqlSlice("len", ip)); + if (field_name.toUnsigned(ip)) |field_index| { if (field_index < tuple_ty.structFieldCount(mod)) return field_index; return sema.fail(block, field_name_src, "index '{}' out of bounds of tuple '{}'", .{ - field_name.fmt(&mod.intern_pool), tuple_ty.fmt(mod), + field_name.fmt(ip), tuple_ty.fmt(mod), }); } return sema.fail(block, field_name_src, "no field named '{}' in tuple '{}'", .{ - field_name.fmt(&mod.intern_pool), tuple_ty.fmt(mod), + field_name.fmt(ip), tuple_ty.fmt(mod), }); } @@ -28076,7 +28137,7 @@ fn tupleFieldValByIndex( return switch (mod.intern_pool.indexToKey(tuple_val.toIntern())) { .undef => mod.undefRef(field_ty), .aggregate => |aggregate| Air.internedToRef(switch (aggregate.storage) { - .bytes => |bytes| try mod.intValue(Type.u8, bytes[0]), + .bytes => |bytes| try mod.intValue(Type.u8, bytes.at(field_index, &mod.intern_pool)), .elems => |elems| Value.fromInterned(elems[field_index]), .repeated_elem => |elem| Value.fromInterned(elem), }.toIntern()), @@ -32266,38 +32327,36 @@ fn coerceTupleToStruct( .struct_type => ip.loadStructType(inst_ty.toIntern()).field_types.len, else => unreachable, }; - for (0..field_count) |field_index_usize| { - const field_i: u32 = @intCast(field_index_usize); + for (0..field_count) |tuple_field_index| { const field_src = inst_src; // TODO better source location - // https://github.com/ziglang/zig/issues/15709 const field_name: InternPool.NullTerminatedString = switch (ip.indexToKey(inst_ty.toIntern())) { .anon_struct_type => |anon_struct_type| if (anon_struct_type.names.len > 0) - anon_struct_type.names.get(ip)[field_i] + anon_struct_type.names.get(ip)[tuple_field_index] else - try ip.getOrPutStringFmt(sema.gpa, "{d}", .{field_i}), - .struct_type => ip.loadStructType(inst_ty.toIntern()).field_names.get(ip)[field_i], + try ip.getOrPutStringFmt(sema.gpa, "{d}", .{tuple_field_index}, .no_embedded_nulls), + .struct_type => ip.loadStructType(inst_ty.toIntern()).field_names.get(ip)[tuple_field_index], else => unreachable, }; - const field_index = try sema.structFieldIndex(block, struct_ty, field_name, field_src); - const field_ty = Type.fromInterned(struct_type.field_types.get(ip)[field_index]); - const elem_ref = try sema.tupleField(block, inst_src, inst, field_src, field_i); - const coerced = try sema.coerce(block, field_ty, elem_ref, field_src); - field_refs[field_index] = coerced; - if (struct_type.fieldIsComptime(ip, field_index)) { + const struct_field_index = try sema.structFieldIndex(block, struct_ty, field_name, field_src); + const struct_field_ty = Type.fromInterned(struct_type.field_types.get(ip)[struct_field_index]); + const elem_ref = try sema.tupleField(block, inst_src, inst, field_src, @intCast(tuple_field_index)); + const coerced = try sema.coerce(block, struct_field_ty, elem_ref, field_src); + field_refs[struct_field_index] = coerced; + if (struct_type.fieldIsComptime(ip, struct_field_index)) { const init_val = (try sema.resolveValue(coerced)) orelse { return sema.failWithNeededComptime(block, field_src, .{ .needed_comptime_reason = "value stored in comptime field must be comptime-known", }); }; - const field_init = Value.fromInterned(struct_type.field_inits.get(ip)[field_index]); - if (!init_val.eql(field_init, field_ty, sema.mod)) { - return sema.failWithInvalidComptimeFieldStore(block, field_src, inst_ty, field_i); + const field_init = Value.fromInterned(struct_type.field_inits.get(ip)[struct_field_index]); + if (!init_val.eql(field_init, struct_field_ty, sema.mod)) { + return sema.failWithInvalidComptimeFieldStore(block, field_src, inst_ty, tuple_field_index); } } if (runtime_src == null) { if (try sema.resolveValue(coerced)) |field_val| { - field_vals[field_index] = field_val.toIntern(); + field_vals[struct_field_index] = field_val.toIntern(); } else { runtime_src = field_src; } @@ -32382,24 +32441,23 @@ fn coerceTupleToTuple( for (0..dest_field_count) |field_index_usize| { const field_i: u32 = @intCast(field_index_usize); const field_src = inst_src; // TODO better source location - // https://github.com/ziglang/zig/issues/15709 const field_name: InternPool.NullTerminatedString = switch (ip.indexToKey(inst_ty.toIntern())) { .anon_struct_type => |anon_struct_type| if (anon_struct_type.names.len > 0) anon_struct_type.names.get(ip)[field_i] else - try ip.getOrPutStringFmt(sema.gpa, "{d}", .{field_i}), + try ip.getOrPutStringFmt(sema.gpa, "{d}", .{field_i}, .no_embedded_nulls), .struct_type => s: { const struct_type = ip.loadStructType(inst_ty.toIntern()); if (struct_type.field_names.len > 0) { break :s struct_type.field_names.get(ip)[field_i]; } else { - break :s try ip.getOrPutStringFmt(sema.gpa, "{d}", .{field_i}); + break :s try ip.getOrPutStringFmt(sema.gpa, "{d}", .{field_i}, .no_embedded_nulls); } }, else => unreachable, }; - if (ip.stringEqlSlice(field_name, "len")) + if (field_name.eqlSlice("len", ip)) return sema.fail(block, field_src, "cannot assign to 'len' field of tuple", .{}); const field_ty = switch (ip.indexToKey(tuple_ty.toIntern())) { @@ -34196,7 +34254,7 @@ const PeerResolveResult = union(enum) { /// There was an error when resolving the type of a struct or tuple field. field_error: struct { /// The name of the field which caused the failure. - field_name: []const u8, + field_name: InternPool.NullTerminatedString, /// The type of this field in each peer. field_types: []Type, /// The error from resolving the field type. Guaranteed not to be `success`. @@ -34237,8 +34295,8 @@ const PeerResolveResult = union(enum) { }; }, .field_error => |field_error| { - const fmt = "struct field '{s}' has conflicting types"; - const args = .{field_error.field_name}; + const fmt = "struct field '{}' has conflicting types"; + const args = .{field_error.field_name.fmt(&mod.intern_pool)}; if (opt_msg) |msg| { try sema.errNote(block, src, msg, fmt, args); } else { @@ -35321,7 +35379,7 @@ fn resolvePeerTypesInner( const sub_peer_tys = try sema.arena.alloc(?Type, peer_tys.len); const sub_peer_vals = try sema.arena.alloc(?Value, peer_vals.len); - for (field_types, field_vals, 0..) |*field_ty, *field_val, field_idx| { + for (field_types, field_vals, 0..) |*field_ty, *field_val, field_index| { // Fill buffers with types and values of the field for (peer_tys, peer_vals, sub_peer_tys, sub_peer_vals) |opt_ty, opt_val, *peer_field_ty, *peer_field_val| { const ty = opt_ty orelse { @@ -35329,8 +35387,8 @@ fn resolvePeerTypesInner( peer_field_val.* = null; continue; }; - peer_field_ty.* = ty.structFieldType(field_idx, mod); - peer_field_val.* = if (opt_val) |val| try val.fieldValue(mod, field_idx) else null; + peer_field_ty.* = ty.structFieldType(field_index, mod); + peer_field_val.* = if (opt_val) |val| try val.fieldValue(mod, field_index) else null; } // Resolve field type recursively @@ -35339,9 +35397,10 @@ fn resolvePeerTypesInner( else => |result| { const result_buf = try sema.arena.create(PeerResolveResult); result_buf.* = result; - const field_name = if (is_tuple) name: { - break :name try std.fmt.allocPrint(sema.arena, "{d}", .{field_idx}); - } else try sema.arena.dupe(u8, ip.stringToSlice(field_names[field_idx])); + const field_name = if (is_tuple) + try ip.getOrPutStringFmt(sema.gpa, "{d}", .{field_index}, .no_embedded_nulls) + else + field_names[field_index]; // The error info needs the field types, but we can't reuse sub_peer_tys // since the recursive call may have clobbered it. @@ -35350,7 +35409,7 @@ fn resolvePeerTypesInner( // Already-resolved types won't be referenced by the error so it's fine // to leave them undefined. const ty = opt_ty orelse continue; - peer_field_ty.* = ty.structFieldType(field_idx, mod); + peer_field_ty.* = ty.structFieldType(field_index, mod); } return .{ .field_error = .{ @@ -35369,7 +35428,7 @@ fn resolvePeerTypesInner( const struct_ty = opt_ty orelse continue; try sema.resolveStructFieldInits(struct_ty); - const uncoerced_field_val = try struct_ty.structFieldValueComptime(mod, field_idx) orelse { + const uncoerced_field_val = try struct_ty.structFieldValueComptime(mod, field_index) orelse { comptime_val = null; break; }; @@ -36811,7 +36870,7 @@ fn semaStructFields( // This string needs to outlive the ZIR code. if (opt_field_name_zir) |field_name_zir| { - const field_name = try ip.getOrPutString(gpa, field_name_zir); + const field_name = try ip.getOrPutString(gpa, field_name_zir, .no_embedded_nulls); assert(struct_type.addFieldName(ip, field_name) == null); } @@ -37342,7 +37401,7 @@ fn semaUnionFields(mod: *Module, arena: Allocator, union_type: InternPool.Loaded } // This string needs to outlive the ZIR code. - const field_name = try ip.getOrPutString(gpa, field_name_zir); + const field_name = try ip.getOrPutString(gpa, field_name_zir, .no_embedded_nulls); if (enum_field_names.len != 0) { enum_field_names[field_i] = field_name; } @@ -37528,7 +37587,12 @@ fn generateUnionTagTypeNumbered( const new_decl_index = try mod.allocateNewDecl(block.namespace, src_decl.src_node); errdefer mod.destroyDecl(new_decl_index); const fqn = try union_owner_decl.fullyQualifiedName(mod); - const name = try ip.getOrPutStringFmt(gpa, "@typeInfo({}).Union.tag_type.?", .{fqn.fmt(ip)}); + const name = try ip.getOrPutStringFmt( + gpa, + "@typeInfo({}).Union.tag_type.?", + .{fqn.fmt(ip)}, + .no_embedded_nulls, + ); try mod.initNewAnonDecl( new_decl_index, src_decl.src_line, @@ -37574,7 +37638,12 @@ fn generateUnionTagTypeSimple( const src_decl = mod.declPtr(block.src_decl); const new_decl_index = try mod.allocateNewDecl(block.namespace, src_decl.src_node); errdefer mod.destroyDecl(new_decl_index); - const name = try ip.getOrPutStringFmt(gpa, "@typeInfo({}).Union.tag_type.?", .{fqn.fmt(ip)}); + const name = try ip.getOrPutStringFmt( + gpa, + "@typeInfo({}).Union.tag_type.?", + .{fqn.fmt(ip)}, + .no_embedded_nulls, + ); try mod.initNewAnonDecl( new_decl_index, src_decl.src_line, @@ -37638,7 +37707,7 @@ fn getBuiltinDecl(sema: *Sema, block: *Block, name: []const u8) CompileError!Int block, src, mod.declPtr(std_file.root_decl.unwrap().?).src_namespace.toOptional(), - try ip.getOrPutString(gpa, "builtin"), + try ip.getOrPutString(gpa, "builtin", .no_embedded_nulls), )) orelse @panic("lib/std.zig is corrupt and missing 'builtin'"); const builtin_inst = try sema.analyzeLoad(block, src, opt_builtin_inst, src); const builtin_ty = sema.analyzeAsType(block, src, builtin_inst) catch |err| switch (err) { @@ -37649,7 +37718,7 @@ fn getBuiltinDecl(sema: *Sema, block: *Block, name: []const u8) CompileError!Int block, src, builtin_ty.getNamespaceIndex(mod), - try ip.getOrPutString(gpa, name), + try ip.getOrPutString(gpa, name, .no_embedded_nulls), )) orelse std.debug.panic("lib/std/builtin.zig is corrupt and missing '{s}'", .{name}); return decl_index; } @@ -38820,7 +38889,7 @@ fn intFitsInType( .aggregate => |aggregate| { assert(ty.zigTypeTag(mod) == .Vector); return switch (aggregate.storage) { - .bytes => |bytes| for (bytes, 0..) |byte, i| { + .bytes => |bytes| for (bytes.toSlice(ty.vectorLen(mod), &mod.intern_pool), 0..) |byte, i| { if (byte == 0) continue; const actual_needed_bits = std.math.log2(byte) + 1 + @intFromBool(info.signedness == .signed); if (info.bits >= actual_needed_bits) continue; diff --git a/src/Value.zig b/src/Value.zig index 7a9775e198..0f8dc5f7dc 100644 --- a/src/Value.zig +++ b/src/Value.zig @@ -52,30 +52,31 @@ pub fn toIpString(val: Value, ty: Type, mod: *Module) !InternPool.NullTerminated assert(ty.zigTypeTag(mod) == .Array); assert(ty.childType(mod).toIntern() == .u8_type); const ip = &mod.intern_pool; - return switch (mod.intern_pool.indexToKey(val.toIntern()).aggregate.storage) { - .bytes => |bytes| try ip.getOrPutString(mod.gpa, bytes), - .elems => try arrayToIpString(val, ty.arrayLen(mod), mod), + switch (mod.intern_pool.indexToKey(val.toIntern()).aggregate.storage) { + .bytes => |bytes| return bytes.toNullTerminatedString(ty.arrayLen(mod), ip), + .elems => return arrayToIpString(val, ty.arrayLen(mod), mod), .repeated_elem => |elem| { - const byte = @as(u8, @intCast(Value.fromInterned(elem).toUnsignedInt(mod))); - const len = @as(usize, @intCast(ty.arrayLen(mod))); + const byte: u8 = @intCast(Value.fromInterned(elem).toUnsignedInt(mod)); + const len: usize = @intCast(ty.arrayLen(mod)); try ip.string_bytes.appendNTimes(mod.gpa, byte, len); - return ip.getOrPutTrailingString(mod.gpa, len); + return ip.getOrPutTrailingString(mod.gpa, len, .no_embedded_nulls); }, - }; + } } /// Asserts that the value is representable as an array of bytes. /// Copies the value into a freshly allocated slice of memory, which is owned by the caller. pub fn toAllocatedBytes(val: Value, ty: Type, allocator: Allocator, mod: *Module) ![]u8 { - return switch (mod.intern_pool.indexToKey(val.toIntern())) { - .enum_literal => |enum_literal| allocator.dupe(u8, mod.intern_pool.stringToSlice(enum_literal)), + const ip = &mod.intern_pool; + return switch (ip.indexToKey(val.toIntern())) { + .enum_literal => |enum_literal| allocator.dupe(u8, enum_literal.toSlice(ip)), .slice => |slice| try arrayToAllocatedBytes(val, Value.fromInterned(slice.len).toUnsignedInt(mod), allocator, mod), .aggregate => |aggregate| switch (aggregate.storage) { - .bytes => |bytes| try allocator.dupe(u8, bytes), + .bytes => |bytes| try allocator.dupe(u8, bytes.toSlice(ty.arrayLenIncludingSentinel(mod), ip)), .elems => try arrayToAllocatedBytes(val, ty.arrayLen(mod), allocator, mod), .repeated_elem => |elem| { - const byte = @as(u8, @intCast(Value.fromInterned(elem).toUnsignedInt(mod))); - const result = try allocator.alloc(u8, @as(usize, @intCast(ty.arrayLen(mod)))); + const byte: u8 = @intCast(Value.fromInterned(elem).toUnsignedInt(mod)); + const result = try allocator.alloc(u8, @intCast(ty.arrayLen(mod))); @memset(result, byte); return result; }, @@ -85,10 +86,10 @@ pub fn toAllocatedBytes(val: Value, ty: Type, allocator: Allocator, mod: *Module } fn arrayToAllocatedBytes(val: Value, len: u64, allocator: Allocator, mod: *Module) ![]u8 { - const result = try allocator.alloc(u8, @as(usize, @intCast(len))); + const result = try allocator.alloc(u8, @intCast(len)); for (result, 0..) |*elem, i| { const elem_val = try val.elemValue(mod, i); - elem.* = @as(u8, @intCast(elem_val.toUnsignedInt(mod))); + elem.* = @intCast(elem_val.toUnsignedInt(mod)); } return result; } @@ -96,7 +97,7 @@ fn arrayToAllocatedBytes(val: Value, len: u64, allocator: Allocator, mod: *Modul fn arrayToIpString(val: Value, len_u64: u64, mod: *Module) !InternPool.NullTerminatedString { const gpa = mod.gpa; const ip = &mod.intern_pool; - const len = @as(usize, @intCast(len_u64)); + const len: usize = @intCast(len_u64); try ip.string_bytes.ensureUnusedCapacity(gpa, len); for (0..len) |i| { // I don't think elemValue has the possibility to affect ip.string_bytes. Let's @@ -104,10 +105,10 @@ fn arrayToIpString(val: Value, len_u64: u64, mod: *Module) !InternPool.NullTermi const prev = ip.string_bytes.items.len; const elem_val = try val.elemValue(mod, i); assert(ip.string_bytes.items.len == prev); - const byte = @as(u8, @intCast(elem_val.toUnsignedInt(mod))); + const byte: u8 = @intCast(elem_val.toUnsignedInt(mod)); ip.string_bytes.appendAssumeCapacity(byte); } - return ip.getOrPutTrailingString(gpa, len); + return ip.getOrPutTrailingString(gpa, len, .no_embedded_nulls); } pub fn fromInterned(i: InternPool.Index) Value { @@ -256,7 +257,7 @@ pub fn getUnsignedIntAdvanced(val: Value, mod: *Module, opt_sema: ?*Sema) !?u64 const base_addr = (try Value.fromInterned(field.base).getUnsignedIntAdvanced(mod, opt_sema)) orelse return null; const struct_ty = Value.fromInterned(field.base).typeOf(mod).childType(mod); if (opt_sema) |sema| try sema.resolveTypeLayout(struct_ty); - return base_addr + struct_ty.structFieldOffset(@as(usize, @intCast(field.index)), mod); + return base_addr + struct_ty.structFieldOffset(@intCast(field.index), mod); }, else => null, }, @@ -351,17 +352,17 @@ pub fn writeToMemory(val: Value, ty: Type, mod: *Module, buffer: []u8) error{ bigint.writeTwosComplement(buffer[0..byte_count], endian); }, .Float => switch (ty.floatBits(target)) { - 16 => std.mem.writeInt(u16, buffer[0..2], @as(u16, @bitCast(val.toFloat(f16, mod))), endian), - 32 => std.mem.writeInt(u32, buffer[0..4], @as(u32, @bitCast(val.toFloat(f32, mod))), endian), - 64 => std.mem.writeInt(u64, buffer[0..8], @as(u64, @bitCast(val.toFloat(f64, mod))), endian), - 80 => std.mem.writeInt(u80, buffer[0..10], @as(u80, @bitCast(val.toFloat(f80, mod))), endian), - 128 => std.mem.writeInt(u128, buffer[0..16], @as(u128, @bitCast(val.toFloat(f128, mod))), endian), + 16 => std.mem.writeInt(u16, buffer[0..2], @bitCast(val.toFloat(f16, mod)), endian), + 32 => std.mem.writeInt(u32, buffer[0..4], @bitCast(val.toFloat(f32, mod)), endian), + 64 => std.mem.writeInt(u64, buffer[0..8], @bitCast(val.toFloat(f64, mod)), endian), + 80 => std.mem.writeInt(u80, buffer[0..10], @bitCast(val.toFloat(f80, mod)), endian), + 128 => std.mem.writeInt(u128, buffer[0..16], @bitCast(val.toFloat(f128, mod)), endian), else => unreachable, }, .Array => { const len = ty.arrayLen(mod); const elem_ty = ty.childType(mod); - const elem_size = @as(usize, @intCast(elem_ty.abiSize(mod))); + const elem_size: usize = @intCast(elem_ty.abiSize(mod)); var elem_i: usize = 0; var buf_off: usize = 0; while (elem_i < len) : (elem_i += 1) { @@ -380,17 +381,17 @@ pub fn writeToMemory(val: Value, ty: Type, mod: *Module, buffer: []u8) error{ const struct_type = mod.typeToStruct(ty) orelse return error.IllDefinedMemoryLayout; switch (struct_type.layout) { .auto => return error.IllDefinedMemoryLayout, - .@"extern" => for (0..struct_type.field_types.len) |i| { - const off: usize = @intCast(ty.structFieldOffset(i, mod)); + .@"extern" => for (0..struct_type.field_types.len) |field_index| { + const off: usize = @intCast(ty.structFieldOffset(field_index, mod)); const field_val = Value.fromInterned(switch (ip.indexToKey(val.toIntern()).aggregate.storage) { .bytes => |bytes| { - buffer[off] = bytes[i]; + buffer[off] = bytes.at(field_index, ip); continue; }, - .elems => |elems| elems[i], + .elems => |elems| elems[field_index], .repeated_elem => |elem| elem, }); - const field_ty = Type.fromInterned(struct_type.field_types.get(ip)[i]); + const field_ty = Type.fromInterned(struct_type.field_types.get(ip)[field_index]); try writeToMemory(field_val, field_ty, mod, buffer[off..]); }, .@"packed" => { @@ -423,7 +424,7 @@ pub fn writeToMemory(val: Value, ty: Type, mod: *Module, buffer: []u8) error{ const field_index = mod.unionTagFieldIndex(union_obj, union_tag).?; const field_type = Type.fromInterned(union_obj.field_types.get(&mod.intern_pool)[field_index]); const field_val = try val.fieldValue(mod, field_index); - const byte_count = @as(usize, @intCast(field_type.abiSize(mod))); + const byte_count: usize = @intCast(field_type.abiSize(mod)); return writeToMemory(field_val, field_type, mod, buffer[0..byte_count]); } else { const backing_ty = try ty.unionBackingType(mod); @@ -471,7 +472,7 @@ pub fn writeToPackedMemory( const target = mod.getTarget(); const endian = target.cpu.arch.endian(); if (val.isUndef(mod)) { - const bit_size = @as(usize, @intCast(ty.bitSize(mod))); + const bit_size: usize = @intCast(ty.bitSize(mod)); std.mem.writeVarPackedInt(buffer, bit_offset, bit_size, @as(u1, 0), endian); return; } @@ -507,17 +508,17 @@ pub fn writeToPackedMemory( } }, .Float => switch (ty.floatBits(target)) { - 16 => std.mem.writePackedInt(u16, buffer, bit_offset, @as(u16, @bitCast(val.toFloat(f16, mod))), endian), - 32 => std.mem.writePackedInt(u32, buffer, bit_offset, @as(u32, @bitCast(val.toFloat(f32, mod))), endian), - 64 => std.mem.writePackedInt(u64, buffer, bit_offset, @as(u64, @bitCast(val.toFloat(f64, mod))), endian), - 80 => std.mem.writePackedInt(u80, buffer, bit_offset, @as(u80, @bitCast(val.toFloat(f80, mod))), endian), - 128 => std.mem.writePackedInt(u128, buffer, bit_offset, @as(u128, @bitCast(val.toFloat(f128, mod))), endian), + 16 => std.mem.writePackedInt(u16, buffer, bit_offset, @bitCast(val.toFloat(f16, mod)), endian), + 32 => std.mem.writePackedInt(u32, buffer, bit_offset, @bitCast(val.toFloat(f32, mod)), endian), + 64 => std.mem.writePackedInt(u64, buffer, bit_offset, @bitCast(val.toFloat(f64, mod)), endian), + 80 => std.mem.writePackedInt(u80, buffer, bit_offset, @bitCast(val.toFloat(f80, mod)), endian), + 128 => std.mem.writePackedInt(u128, buffer, bit_offset, @bitCast(val.toFloat(f128, mod)), endian), else => unreachable, }, .Vector => { const elem_ty = ty.childType(mod); - const elem_bit_size = @as(u16, @intCast(elem_ty.bitSize(mod))); - const len = @as(usize, @intCast(ty.arrayLen(mod))); + const elem_bit_size: u16 = @intCast(elem_ty.bitSize(mod)); + const len: usize = @intCast(ty.arrayLen(mod)); var bits: u16 = 0; var elem_i: usize = 0; @@ -644,22 +645,22 @@ pub fn readFromMemory( .Float => return Value.fromInterned((try mod.intern(.{ .float = .{ .ty = ty.toIntern(), .storage = switch (ty.floatBits(target)) { - 16 => .{ .f16 = @as(f16, @bitCast(std.mem.readInt(u16, buffer[0..2], endian))) }, - 32 => .{ .f32 = @as(f32, @bitCast(std.mem.readInt(u32, buffer[0..4], endian))) }, - 64 => .{ .f64 = @as(f64, @bitCast(std.mem.readInt(u64, buffer[0..8], endian))) }, - 80 => .{ .f80 = @as(f80, @bitCast(std.mem.readInt(u80, buffer[0..10], endian))) }, - 128 => .{ .f128 = @as(f128, @bitCast(std.mem.readInt(u128, buffer[0..16], endian))) }, + 16 => .{ .f16 = @bitCast(std.mem.readInt(u16, buffer[0..2], endian)) }, + 32 => .{ .f32 = @bitCast(std.mem.readInt(u32, buffer[0..4], endian)) }, + 64 => .{ .f64 = @bitCast(std.mem.readInt(u64, buffer[0..8], endian)) }, + 80 => .{ .f80 = @bitCast(std.mem.readInt(u80, buffer[0..10], endian)) }, + 128 => .{ .f128 = @bitCast(std.mem.readInt(u128, buffer[0..16], endian)) }, else => unreachable, }, } }))), .Array => { const elem_ty = ty.childType(mod); const elem_size = elem_ty.abiSize(mod); - const elems = try arena.alloc(InternPool.Index, @as(usize, @intCast(ty.arrayLen(mod)))); + const elems = try arena.alloc(InternPool.Index, @intCast(ty.arrayLen(mod))); var offset: usize = 0; for (elems) |*elem| { elem.* = (try readFromMemory(elem_ty, mod, buffer[offset..], arena)).toIntern(); - offset += @as(usize, @intCast(elem_size)); + offset += @intCast(elem_size); } return Value.fromInterned((try mod.intern(.{ .aggregate = .{ .ty = ty.toIntern(), @@ -795,7 +796,7 @@ pub fn readFromPackedMemory( }; // Slow path, we have to construct a big-int - const abi_size = @as(usize, @intCast(ty.abiSize(mod))); + const abi_size: usize = @intCast(ty.abiSize(mod)); const Limb = std.math.big.Limb; const limb_count = (abi_size + @sizeOf(Limb) - 1) / @sizeOf(Limb); const limbs_buffer = try arena.alloc(Limb, limb_count); @@ -812,20 +813,20 @@ pub fn readFromPackedMemory( .Float => return Value.fromInterned((try mod.intern(.{ .float = .{ .ty = ty.toIntern(), .storage = switch (ty.floatBits(target)) { - 16 => .{ .f16 = @as(f16, @bitCast(std.mem.readPackedInt(u16, buffer, bit_offset, endian))) }, - 32 => .{ .f32 = @as(f32, @bitCast(std.mem.readPackedInt(u32, buffer, bit_offset, endian))) }, - 64 => .{ .f64 = @as(f64, @bitCast(std.mem.readPackedInt(u64, buffer, bit_offset, endian))) }, - 80 => .{ .f80 = @as(f80, @bitCast(std.mem.readPackedInt(u80, buffer, bit_offset, endian))) }, - 128 => .{ .f128 = @as(f128, @bitCast(std.mem.readPackedInt(u128, buffer, bit_offset, endian))) }, + 16 => .{ .f16 = @bitCast(std.mem.readPackedInt(u16, buffer, bit_offset, endian)) }, + 32 => .{ .f32 = @bitCast(std.mem.readPackedInt(u32, buffer, bit_offset, endian)) }, + 64 => .{ .f64 = @bitCast(std.mem.readPackedInt(u64, buffer, bit_offset, endian)) }, + 80 => .{ .f80 = @bitCast(std.mem.readPackedInt(u80, buffer, bit_offset, endian)) }, + 128 => .{ .f128 = @bitCast(std.mem.readPackedInt(u128, buffer, bit_offset, endian)) }, else => unreachable, }, } }))), .Vector => { const elem_ty = ty.childType(mod); - const elems = try arena.alloc(InternPool.Index, @as(usize, @intCast(ty.arrayLen(mod)))); + const elems = try arena.alloc(InternPool.Index, @intCast(ty.arrayLen(mod))); var bits: u16 = 0; - const elem_bit_size = @as(u16, @intCast(elem_ty.bitSize(mod))); + const elem_bit_size: u16 = @intCast(elem_ty.bitSize(mod)); for (elems, 0..) |_, i| { // On big-endian systems, LLVM reverses the element order of vectors by default const tgt_elem_i = if (endian == .big) elems.len - i - 1 else i; @@ -909,7 +910,7 @@ fn bigIntToFloat(limbs: []const std.math.big.Limb, positive: bool) f128 { var i: usize = limbs.len; while (i != 0) { i -= 1; - const limb: f128 = @as(f128, @floatFromInt(limbs[i])); + const limb: f128 = @floatFromInt(limbs[i]); result = @mulAdd(f128, base, result, limb); } if (positive) { @@ -934,7 +935,7 @@ pub fn ctz(val: Value, ty: Type, mod: *Module) u64 { pub fn popCount(val: Value, ty: Type, mod: *Module) u64 { var bigint_buf: BigIntSpace = undefined; const bigint = val.toBigInt(&bigint_buf, mod); - return @as(u64, @intCast(bigint.popCount(ty.intInfo(mod).bits))); + return @intCast(bigint.popCount(ty.intInfo(mod).bits)); } pub fn bitReverse(val: Value, ty: Type, mod: *Module, arena: Allocator) !Value { @@ -1191,7 +1192,7 @@ pub fn compareAllWithZeroAdvancedExtra( inline else => |x| if (std.math.isNan(x)) return op == .neq, }, .aggregate => |aggregate| return switch (aggregate.storage) { - .bytes => |bytes| for (bytes) |byte| { + .bytes => |bytes| for (bytes.toSlice(lhs.typeOf(mod).arrayLenIncludingSentinel(mod), &mod.intern_pool)) |byte| { if (!std.math.order(byte, 0).compare(op)) break false; } else true, .elems => |elems| for (elems) |elem| { @@ -1279,7 +1280,7 @@ pub fn elemValue(val: Value, zcu: *Zcu, index: usize) Allocator.Error!Value { if (index < len) return Value.fromInterned(switch (aggregate.storage) { .bytes => |bytes| try zcu.intern(.{ .int = .{ .ty = .u8_type, - .storage = .{ .u64 = bytes[index] }, + .storage = .{ .u64 = bytes.at(index, ip) }, } }), .elems => |elems| elems[index], .repeated_elem => |elem| elem, @@ -1318,28 +1319,37 @@ pub fn sliceArray( start: usize, end: usize, ) error{OutOfMemory}!Value { - // TODO: write something like getCoercedInts to avoid needing to dupe const mod = sema.mod; - const aggregate = mod.intern_pool.indexToKey(val.toIntern()).aggregate; - return Value.fromInterned(try mod.intern(.{ .aggregate = .{ - .ty = switch (mod.intern_pool.indexToKey(mod.intern_pool.typeOf(val.toIntern()))) { - .array_type => |array_type| try mod.arrayType(.{ - .len = @as(u32, @intCast(end - start)), - .child = array_type.child, - .sentinel = if (end == array_type.len) array_type.sentinel else .none, - }), - .vector_type => |vector_type| try mod.vectorType(.{ - .len = @as(u32, @intCast(end - start)), - .child = vector_type.child, - }), - else => unreachable, - }.toIntern(), - .storage = switch (aggregate.storage) { - .bytes => .{ .bytes = try sema.arena.dupe(u8, mod.intern_pool.indexToKey(val.toIntern()).aggregate.storage.bytes[start..end]) }, - .elems => .{ .elems = try sema.arena.dupe(InternPool.Index, mod.intern_pool.indexToKey(val.toIntern()).aggregate.storage.elems[start..end]) }, - .repeated_elem => |elem| .{ .repeated_elem = elem }, + const ip = &mod.intern_pool; + return Value.fromInterned(try mod.intern(.{ + .aggregate = .{ + .ty = switch (mod.intern_pool.indexToKey(mod.intern_pool.typeOf(val.toIntern()))) { + .array_type => |array_type| try mod.arrayType(.{ + .len = @intCast(end - start), + .child = array_type.child, + .sentinel = if (end == array_type.len) array_type.sentinel else .none, + }), + .vector_type => |vector_type| try mod.vectorType(.{ + .len = @intCast(end - start), + .child = vector_type.child, + }), + else => unreachable, + }.toIntern(), + .storage = switch (ip.indexToKey(val.toIntern()).aggregate.storage) { + .bytes => |bytes| storage: { + try ip.string_bytes.ensureUnusedCapacity(sema.gpa, end - start + 1); + break :storage .{ .bytes = try ip.getOrPutString( + sema.gpa, + bytes.toSlice(end, ip)[start..], + .maybe_embedded_nulls, + ) }; + }, + // TODO: write something like getCoercedInts to avoid needing to dupe + .elems => |elems| .{ .elems = try sema.arena.dupe(InternPool.Index, elems[start..end]) }, + .repeated_elem => |elem| .{ .repeated_elem = elem }, + }, }, - } })); + })); } pub fn fieldValue(val: Value, mod: *Module, index: usize) !Value { @@ -1350,7 +1360,7 @@ pub fn fieldValue(val: Value, mod: *Module, index: usize) !Value { .aggregate => |aggregate| Value.fromInterned(switch (aggregate.storage) { .bytes => |bytes| try mod.intern(.{ .int = .{ .ty = .u8_type, - .storage = .{ .u64 = bytes[index] }, + .storage = .{ .u64 = bytes.at(index, &mod.intern_pool) }, } }), .elems => |elems| elems[index], .repeated_elem => |elem| elem, @@ -1461,7 +1471,7 @@ pub fn getErrorName(val: Value, mod: *const Module) InternPool.OptionalNullTermi pub fn getErrorInt(val: Value, mod: *const Module) Module.ErrorInt { return if (getErrorName(val, mod).unwrap()) |err_name| - @as(Module.ErrorInt, @intCast(mod.global_error_set.getIndex(err_name).?)) + @intCast(mod.global_error_set.getIndex(err_name).?) else 0; } @@ -2413,14 +2423,14 @@ pub fn intTruncBitsAsValue( for (result_data, 0..) |*scalar, i| { const elem_val = try val.elemValue(mod, i); const bits_elem = try bits.elemValue(mod, i); - scalar.* = (try intTruncScalar(elem_val, scalar_ty, allocator, signedness, @as(u16, @intCast(bits_elem.toUnsignedInt(mod))), mod)).toIntern(); + scalar.* = (try intTruncScalar(elem_val, scalar_ty, allocator, signedness, @intCast(bits_elem.toUnsignedInt(mod)), mod)).toIntern(); } return Value.fromInterned((try mod.intern(.{ .aggregate = .{ .ty = ty.toIntern(), .storage = .{ .elems = result_data }, } }))); } - return intTruncScalar(val, ty, allocator, signedness, @as(u16, @intCast(bits.toUnsignedInt(mod))), mod); + return intTruncScalar(val, ty, allocator, signedness, @intCast(bits.toUnsignedInt(mod)), mod); } pub fn intTruncScalar( @@ -2468,7 +2478,7 @@ pub fn shlScalar(lhs: Value, rhs: Value, ty: Type, allocator: Allocator, mod: *M // resorting to BigInt first. var lhs_space: Value.BigIntSpace = undefined; const lhs_bigint = lhs.toBigInt(&lhs_space, mod); - const shift = @as(usize, @intCast(rhs.toUnsignedInt(mod))); + const shift: usize = @intCast(rhs.toUnsignedInt(mod)); const limbs = try allocator.alloc( std.math.big.Limb, lhs_bigint.limbs.len + (shift / (@sizeOf(std.math.big.Limb) * 8)) + 1, @@ -2530,7 +2540,7 @@ pub fn shlWithOverflowScalar( const info = ty.intInfo(mod); var lhs_space: Value.BigIntSpace = undefined; const lhs_bigint = lhs.toBigInt(&lhs_space, mod); - const shift = @as(usize, @intCast(rhs.toUnsignedInt(mod))); + const shift: usize = @intCast(rhs.toUnsignedInt(mod)); const limbs = try allocator.alloc( std.math.big.Limb, lhs_bigint.limbs.len + (shift / (@sizeOf(std.math.big.Limb) * 8)) + 1, @@ -2587,7 +2597,7 @@ pub fn shlSatScalar( var lhs_space: Value.BigIntSpace = undefined; const lhs_bigint = lhs.toBigInt(&lhs_space, mod); - const shift = @as(usize, @intCast(rhs.toUnsignedInt(mod))); + const shift: usize = @intCast(rhs.toUnsignedInt(mod)); const limbs = try arena.alloc( std.math.big.Limb, std.math.big.int.calcTwosCompLimbCount(info.bits) + 1, @@ -2659,7 +2669,7 @@ pub fn shrScalar(lhs: Value, rhs: Value, ty: Type, allocator: Allocator, mod: *M // resorting to BigInt first. var lhs_space: Value.BigIntSpace = undefined; const lhs_bigint = lhs.toBigInt(&lhs_space, mod); - const shift = @as(usize, @intCast(rhs.toUnsignedInt(mod))); + const shift: usize = @intCast(rhs.toUnsignedInt(mod)); const result_limbs = lhs_bigint.limbs.len -| (shift / (@sizeOf(std.math.big.Limb) * 8)); if (result_limbs == 0) { diff --git a/src/arch/aarch64/CodeGen.zig b/src/arch/aarch64/CodeGen.zig index b9f8259c05..ddde72345e 100644 --- a/src/arch/aarch64/CodeGen.zig +++ b/src/arch/aarch64/CodeGen.zig @@ -4345,8 +4345,8 @@ fn airCall(self: *Self, inst: Air.Inst.Index, modifier: std.builtin.CallModifier .data = .{ .reg = .x30 }, }); } else if (func_value.getExternFunc(mod)) |extern_func| { - const decl_name = mod.intern_pool.stringToSlice(mod.declPtr(extern_func.decl).name); - const lib_name = mod.intern_pool.stringToSliceUnwrap(extern_func.lib_name); + const decl_name = mod.declPtr(extern_func.decl).name.toSlice(&mod.intern_pool); + const lib_name = extern_func.lib_name.toSlice(&mod.intern_pool); if (self.bin_file.cast(link.File.MachO)) |macho_file| { _ = macho_file; @panic("TODO airCall"); diff --git a/src/arch/wasm/CodeGen.zig b/src/arch/wasm/CodeGen.zig index 022f2f9bee..83159ec80e 100644 --- a/src/arch/wasm/CodeGen.zig +++ b/src/arch/wasm/CodeGen.zig @@ -2199,9 +2199,9 @@ fn airCall(func: *CodeGen, inst: Air.Inst.Index, modifier: std.builtin.CallModif const atom = func.bin_file.getAtomPtr(atom_index); const type_index = try func.bin_file.storeDeclType(extern_func.decl, func_type); try func.bin_file.addOrUpdateImport( - mod.intern_pool.stringToSlice(ext_decl.name), + ext_decl.name.toSlice(&mod.intern_pool), atom.sym_index, - mod.intern_pool.stringToSliceUnwrap(ext_decl.getOwnedExternFunc(mod).?.lib_name), + ext_decl.getOwnedExternFunc(mod).?.lib_name.toSlice(&mod.intern_pool), type_index, ); break :blk extern_func.decl; @@ -7236,8 +7236,8 @@ fn getTagNameFunction(func: *CodeGen, enum_ty: Type) InnerError!u32 { defer arena_allocator.deinit(); const arena = arena_allocator.allocator(); - const fqn = ip.stringToSlice(try mod.declPtr(enum_decl_index).fullyQualifiedName(mod)); - const func_name = try std.fmt.allocPrintZ(arena, "__zig_tag_name_{s}", .{fqn}); + const fqn = try mod.declPtr(enum_decl_index).fullyQualifiedName(mod); + const func_name = try std.fmt.allocPrintZ(arena, "__zig_tag_name_{}", .{fqn.fmt(ip)}); // check if we already generated code for this. if (func.bin_file.findGlobalSymbol(func_name)) |loc| { @@ -7268,17 +7268,18 @@ fn getTagNameFunction(func: *CodeGen, enum_ty: Type) InnerError!u32 { // generate an if-else chain for each tag value as well as constant. const tag_names = enum_ty.enumFields(mod); for (0..tag_names.len) |tag_index| { - const tag_name = ip.stringToSlice(tag_names.get(ip)[tag_index]); + const tag_name = tag_names.get(ip)[tag_index]; + const tag_name_len = tag_name.length(ip); // for each tag name, create an unnamed const, // and then get a pointer to its value. const name_ty = try mod.arrayType(.{ - .len = tag_name.len, + .len = tag_name_len, .child = .u8_type, .sentinel = .zero_u8, }); const name_val = try mod.intern(.{ .aggregate = .{ .ty = name_ty.toIntern(), - .storage = .{ .bytes = tag_name }, + .storage = .{ .bytes = tag_name.toString() }, } }); const tag_sym_index = try func.bin_file.lowerUnnamedConst( Value.fromInterned(name_val), @@ -7338,7 +7339,7 @@ fn getTagNameFunction(func: *CodeGen, enum_ty: Type) InnerError!u32 { // store length try writer.writeByte(std.wasm.opcode(.i32_const)); - try leb.writeULEB128(writer, @as(u32, @intCast(tag_name.len))); + try leb.writeULEB128(writer, @as(u32, @intCast(tag_name_len))); try writer.writeByte(std.wasm.opcode(.i32_store)); try leb.writeULEB128(writer, encoded_alignment); try leb.writeULEB128(writer, @as(u32, 4)); @@ -7359,7 +7360,7 @@ fn getTagNameFunction(func: *CodeGen, enum_ty: Type) InnerError!u32 { // store length try writer.writeByte(std.wasm.opcode(.i64_const)); - try leb.writeULEB128(writer, @as(u64, @intCast(tag_name.len))); + try leb.writeULEB128(writer, @as(u64, @intCast(tag_name_len))); try writer.writeByte(std.wasm.opcode(.i64_store)); try leb.writeULEB128(writer, encoded_alignment); try leb.writeULEB128(writer, @as(u32, 8)); diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig index 7a90eacf54..c165baf7e8 100644 --- a/src/arch/x86_64/CodeGen.zig +++ b/src/arch/x86_64/CodeGen.zig @@ -2247,7 +2247,7 @@ fn genLazy(self: *Self, lazy_sym: link.File.LazySymbol) InnerError!void { var data_off: i32 = 0; const tag_names = enum_ty.enumFields(mod); for (exitlude_jump_relocs, 0..) |*exitlude_jump_reloc, tag_index| { - const tag_name_len = ip.stringToSlice(tag_names.get(ip)[tag_index]).len; + const tag_name_len = tag_names.get(ip)[tag_index].length(ip); const tag_val = try mod.enumValueFieldIndex(enum_ty, @intCast(tag_index)); const tag_mcv = try self.genTypedValue(tag_val); try self.genBinOpMir(.{ ._, .cmp }, enum_ty, enum_mcv, tag_mcv); @@ -12314,8 +12314,8 @@ fn genCall(self: *Self, info: union(enum) { }, .extern_func => |extern_func| { const owner_decl = mod.declPtr(extern_func.decl); - const lib_name = mod.intern_pool.stringToSliceUnwrap(extern_func.lib_name); - const decl_name = mod.intern_pool.stringToSlice(owner_decl.name); + const lib_name = extern_func.lib_name.toSlice(&mod.intern_pool); + const decl_name = owner_decl.name.toSlice(&mod.intern_pool); try self.genExternSymbolRef(.call, lib_name, decl_name); }, else => return self.fail("TODO implement calling bitcasted functions", .{}), diff --git a/src/codegen.zig b/src/codegen.zig index 76be8be974..b45777564a 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -97,7 +97,7 @@ fn writeFloat(comptime F: type, f: F, target: Target, endian: std.builtin.Endian _ = target; const bits = @typeInfo(F).Float.bits; const Int = @Type(.{ .Int = .{ .signedness = .unsigned, .bits = bits } }); - const int = @as(Int, @bitCast(f)); + const int: Int = @bitCast(f); mem.writeInt(Int, code[0..@divExact(bits, 8)], int, endian); } @@ -136,24 +136,24 @@ pub fn generateLazySymbol( if (lazy_sym.ty.isAnyError(zcu)) { alignment.* = .@"4"; const err_names = zcu.global_error_set.keys(); - mem.writeInt(u32, try code.addManyAsArray(4), @as(u32, @intCast(err_names.len)), endian); + mem.writeInt(u32, try code.addManyAsArray(4), @intCast(err_names.len), endian); var offset = code.items.len; try code.resize((1 + err_names.len + 1) * 4); for (err_names) |err_name_nts| { - const err_name = zcu.intern_pool.stringToSlice(err_name_nts); - mem.writeInt(u32, code.items[offset..][0..4], @as(u32, @intCast(code.items.len)), endian); + const err_name = err_name_nts.toSlice(ip); + mem.writeInt(u32, code.items[offset..][0..4], @intCast(code.items.len), endian); offset += 4; try code.ensureUnusedCapacity(err_name.len + 1); code.appendSliceAssumeCapacity(err_name); code.appendAssumeCapacity(0); } - mem.writeInt(u32, code.items[offset..][0..4], @as(u32, @intCast(code.items.len)), endian); + mem.writeInt(u32, code.items[offset..][0..4], @intCast(code.items.len), endian); return Result.ok; } else if (lazy_sym.ty.zigTypeTag(zcu) == .Enum) { alignment.* = .@"1"; const tag_names = lazy_sym.ty.enumFields(zcu); for (0..tag_names.len) |tag_index| { - const tag_name = zcu.intern_pool.stringToSlice(tag_names.get(ip)[tag_index]); + const tag_name = tag_names.get(ip)[tag_index].toSlice(ip); try code.ensureUnusedCapacity(tag_name.len + 1); code.appendSliceAssumeCapacity(tag_name); code.appendAssumeCapacity(0); @@ -241,13 +241,13 @@ pub fn generateSymbol( }, .err => |err| { const int = try mod.getErrorValue(err.name); - try code.writer().writeInt(u16, @as(u16, @intCast(int)), endian); + try code.writer().writeInt(u16, @intCast(int), endian); }, .error_union => |error_union| { const payload_ty = ty.errorUnionPayload(mod); - const err_val = switch (error_union.val) { - .err_name => |err_name| @as(u16, @intCast(try mod.getErrorValue(err_name))), - .payload => @as(u16, 0), + const err_val: u16 = switch (error_union.val) { + .err_name => |err_name| @intCast(try mod.getErrorValue(err_name)), + .payload => 0, }; if (!payload_ty.hasRuntimeBitsIgnoreComptime(mod)) { @@ -357,15 +357,13 @@ pub fn generateSymbol( }, .aggregate => |aggregate| switch (ip.indexToKey(ty.toIntern())) { .array_type => |array_type| switch (aggregate.storage) { - .bytes => |bytes| try code.appendSlice(bytes), + .bytes => |bytes| try code.appendSlice(bytes.toSlice(array_type.lenIncludingSentinel(), ip)), .elems, .repeated_elem => { var index: u64 = 0; - const len_including_sentinel = - array_type.len + @intFromBool(array_type.sentinel != .none); - while (index < len_including_sentinel) : (index += 1) { + while (index < array_type.lenIncludingSentinel()) : (index += 1) { switch (try generateSymbol(bin_file, src_loc, Value.fromInterned(switch (aggregate.storage) { .bytes => unreachable, - .elems => |elems| elems[@as(usize, @intCast(index))], + .elems => |elems| elems[@intCast(index)], .repeated_elem => |elem| if (index < array_type.len) elem else @@ -399,7 +397,7 @@ pub fn generateSymbol( }) { .bool_true => true, .bool_false => false, - else => |elem| switch (mod.intern_pool.indexToKey(elem)) { + else => |elem| switch (ip.indexToKey(elem)) { .undef => continue, .int => |int| switch (int.storage) { .u64 => |x| switch (x) { @@ -420,7 +418,7 @@ pub fn generateSymbol( } } else { switch (aggregate.storage) { - .bytes => |bytes| try code.appendSlice(bytes), + .bytes => |bytes| try code.appendSlice(bytes.toSlice(vector_type.len, ip)), .elems, .repeated_elem => { var index: u64 = 0; while (index < vector_type.len) : (index += 1) { @@ -457,7 +455,7 @@ pub fn generateSymbol( const field_val = switch (aggregate.storage) { .bytes => |bytes| try ip.get(mod.gpa, .{ .int = .{ .ty = field_ty, - .storage = .{ .u64 = bytes[index] }, + .storage = .{ .u64 = bytes.at(index, ip) }, } }), .elems => |elems| elems[index], .repeated_elem => |elem| elem, @@ -493,7 +491,7 @@ pub fn generateSymbol( const field_val = switch (aggregate.storage) { .bytes => |bytes| try ip.get(mod.gpa, .{ .int = .{ .ty = field_ty, - .storage = .{ .u64 = bytes[index] }, + .storage = .{ .u64 = bytes.at(index, ip) }, } }), .elems => |elems| elems[index], .repeated_elem => |elem| elem, @@ -513,7 +511,7 @@ pub fn generateSymbol( } else { Value.fromInterned(field_val).writeToPackedMemory(Type.fromInterned(field_ty), mod, code.items[current_pos..], bits) catch unreachable; } - bits += @as(u16, @intCast(Type.fromInterned(field_ty).bitSize(mod))); + bits += @intCast(Type.fromInterned(field_ty).bitSize(mod)); } }, .auto, .@"extern" => { @@ -529,7 +527,7 @@ pub fn generateSymbol( const field_val = switch (ip.indexToKey(val.toIntern()).aggregate.storage) { .bytes => |bytes| try ip.get(mod.gpa, .{ .int = .{ .ty = field_ty, - .storage = .{ .u64 = bytes[field_index] }, + .storage = .{ .u64 = bytes.at(field_index, ip) }, } }), .elems => |elems| elems[field_index], .repeated_elem => |elem| elem, @@ -625,7 +623,8 @@ fn lowerParentPtr( reloc_info: RelocInfo, ) CodeGenError!Result { const mod = bin_file.comp.module.?; - const ptr = mod.intern_pool.indexToKey(parent_ptr).ptr; + const ip = &mod.intern_pool; + const ptr = ip.indexToKey(parent_ptr).ptr; return switch (ptr.addr) { .decl => |decl| try lowerDeclRef(bin_file, src_loc, decl, code, debug_output, reloc_info), .anon_decl => |ad| try lowerAnonDeclRef(bin_file, src_loc, ad, code, debug_output, reloc_info), @@ -636,10 +635,10 @@ fn lowerParentPtr( eu_payload, code, debug_output, - reloc_info.offset(@as(u32, @intCast(errUnionPayloadOffset( - Type.fromInterned(mod.intern_pool.typeOf(eu_payload)), + reloc_info.offset(@intCast(errUnionPayloadOffset( + Type.fromInterned(ip.typeOf(eu_payload)), mod, - )))), + ))), ), .opt_payload => |opt_payload| try lowerParentPtr( bin_file, @@ -655,19 +654,19 @@ fn lowerParentPtr( elem.base, code, debug_output, - reloc_info.offset(@as(u32, @intCast(elem.index * - Type.fromInterned(mod.intern_pool.typeOf(elem.base)).elemType2(mod).abiSize(mod)))), + reloc_info.offset(@intCast(elem.index * + Type.fromInterned(ip.typeOf(elem.base)).elemType2(mod).abiSize(mod))), ), .field => |field| { - const base_ptr_ty = mod.intern_pool.typeOf(field.base); - const base_ty = mod.intern_pool.indexToKey(base_ptr_ty).ptr_type.child; + const base_ptr_ty = ip.typeOf(field.base); + const base_ty = ip.indexToKey(base_ptr_ty).ptr_type.child; return lowerParentPtr( bin_file, src_loc, field.base, code, debug_output, - reloc_info.offset(switch (mod.intern_pool.indexToKey(base_ty)) { + reloc_info.offset(switch (ip.indexToKey(base_ty)) { .ptr_type => |ptr_type| switch (ptr_type.flags.size) { .One, .Many, .C => unreachable, .Slice => switch (field.index) { @@ -723,11 +722,12 @@ fn lowerAnonDeclRef( ) CodeGenError!Result { _ = debug_output; const zcu = lf.comp.module.?; + const ip = &zcu.intern_pool; const target = lf.comp.root_mod.resolved_target.result; const ptr_width_bytes = @divExact(target.ptrBitWidth(), 8); const decl_val = anon_decl.val; - const decl_ty = Type.fromInterned(zcu.intern_pool.typeOf(decl_val)); + const decl_ty = Type.fromInterned(ip.typeOf(decl_val)); log.debug("lowerAnonDecl: ty = {}", .{decl_ty.fmt(zcu)}); const is_fn_body = decl_ty.zigTypeTag(zcu) == .Fn; if (!is_fn_body and !decl_ty.hasRuntimeBits(zcu)) { @@ -735,7 +735,7 @@ fn lowerAnonDeclRef( return Result.ok; } - const decl_align = zcu.intern_pool.indexToKey(anon_decl.orig_ty).ptr_type.flags.alignment; + const decl_align = ip.indexToKey(anon_decl.orig_ty).ptr_type.flags.alignment; const res = try lf.lowerAnonDecl(decl_val, decl_align, src_loc); switch (res) { .ok => {}, @@ -787,8 +787,8 @@ fn lowerDeclRef( }); const endian = target.cpu.arch.endian(); switch (ptr_width) { - 16 => mem.writeInt(u16, try code.addManyAsArray(2), @as(u16, @intCast(vaddr)), endian), - 32 => mem.writeInt(u32, try code.addManyAsArray(4), @as(u32, @intCast(vaddr)), endian), + 16 => mem.writeInt(u16, try code.addManyAsArray(2), @intCast(vaddr), endian), + 32 => mem.writeInt(u32, try code.addManyAsArray(4), @intCast(vaddr), endian), 64 => mem.writeInt(u64, try code.addManyAsArray(8), vaddr, endian), else => unreachable, } @@ -859,6 +859,7 @@ fn genDeclRef( ptr_decl_index: InternPool.DeclIndex, ) CodeGenError!GenResult { const zcu = lf.comp.module.?; + const ip = &zcu.intern_pool; const ty = val.typeOf(zcu); log.debug("genDeclRef: val = {}", .{val.fmtValue(zcu)}); @@ -869,7 +870,7 @@ fn genDeclRef( const ptr_bits = target.ptrBitWidth(); const ptr_bytes: u64 = @divExact(ptr_bits, 8); - const decl_index = switch (zcu.intern_pool.indexToKey(ptr_decl.val.toIntern())) { + const decl_index = switch (ip.indexToKey(ptr_decl.val.toIntern())) { .func => |func| func.owner_decl, .extern_func => |extern_func| extern_func.decl, else => ptr_decl_index, @@ -909,12 +910,9 @@ fn genDeclRef( if (lf.cast(link.File.Elf)) |elf_file| { if (is_extern) { - const name = zcu.intern_pool.stringToSlice(decl.name); + const name = decl.name.toSlice(ip); // TODO audit this - const lib_name = if (decl.getOwnedVariable(zcu)) |ov| - zcu.intern_pool.stringToSliceUnwrap(ov.lib_name) - else - null; + const lib_name = if (decl.getOwnedVariable(zcu)) |ov| ov.lib_name.toSlice(ip) else null; const sym_index = try elf_file.getGlobalSymbol(name, lib_name); elf_file.symbol(elf_file.zigObjectPtr().?.symbol(sym_index)).flags.needs_got = true; return GenResult.mcv(.{ .load_symbol = sym_index }); @@ -927,11 +925,8 @@ fn genDeclRef( return GenResult.mcv(.{ .load_symbol = sym.esym_index }); } else if (lf.cast(link.File.MachO)) |macho_file| { if (is_extern) { - const name = zcu.intern_pool.stringToSlice(decl.name); - const lib_name = if (decl.getOwnedVariable(zcu)) |ov| - zcu.intern_pool.stringToSliceUnwrap(ov.lib_name) - else - null; + const name = decl.name.toSlice(ip); + const lib_name = if (decl.getOwnedVariable(zcu)) |ov| ov.lib_name.toSlice(ip) else null; const sym_index = try macho_file.getGlobalSymbol(name, lib_name); macho_file.getSymbol(macho_file.getZigObject().?.symbols.items[sym_index]).flags.needs_got = true; return GenResult.mcv(.{ .load_symbol = sym_index }); @@ -944,12 +939,9 @@ fn genDeclRef( return GenResult.mcv(.{ .load_symbol = sym.nlist_idx }); } else if (lf.cast(link.File.Coff)) |coff_file| { if (is_extern) { - const name = zcu.intern_pool.stringToSlice(decl.name); + const name = decl.name.toSlice(ip); // TODO audit this - const lib_name = if (decl.getOwnedVariable(zcu)) |ov| - zcu.intern_pool.stringToSliceUnwrap(ov.lib_name) - else - null; + const lib_name = if (decl.getOwnedVariable(zcu)) |ov| ov.lib_name.toSlice(ip) else null; const global_index = try coff_file.getGlobalSymbol(name, lib_name); try coff_file.need_got_table.put(gpa, global_index, {}); // needs GOT return GenResult.mcv(.{ .load_got = link.File.Coff.global_symbol_bit | global_index }); @@ -1012,6 +1004,7 @@ pub fn genTypedValue( owner_decl_index: InternPool.DeclIndex, ) CodeGenError!GenResult { const zcu = lf.comp.module.?; + const ip = &zcu.intern_pool; const ty = val.typeOf(zcu); log.debug("genTypedValue: val = {}", .{val.fmtValue(zcu)}); @@ -1024,7 +1017,7 @@ pub fn genTypedValue( const target = namespace.file_scope.mod.resolved_target.result; const ptr_bits = target.ptrBitWidth(); - if (!ty.isSlice(zcu)) switch (zcu.intern_pool.indexToKey(val.toIntern())) { + if (!ty.isSlice(zcu)) switch (ip.indexToKey(val.toIntern())) { .ptr => |ptr| switch (ptr.addr) { .decl => |decl| return genDeclRef(lf, src_loc, val, decl), else => {}, @@ -1041,7 +1034,7 @@ pub fn genTypedValue( return GenResult.mcv(.{ .immediate = 0 }); }, .none => {}, - else => switch (zcu.intern_pool.indexToKey(val.toIntern())) { + else => switch (ip.indexToKey(val.toIntern())) { .int => { return GenResult.mcv(.{ .immediate = val.toUnsignedInt(zcu) }); }, @@ -1052,8 +1045,8 @@ pub fn genTypedValue( .Int => { const info = ty.intInfo(zcu); if (info.bits <= ptr_bits) { - const unsigned = switch (info.signedness) { - .signed => @as(u64, @bitCast(val.toSignedInt(zcu))), + const unsigned: u64 = switch (info.signedness) { + .signed => @bitCast(val.toSignedInt(zcu)), .unsigned => val.toUnsignedInt(zcu), }; return GenResult.mcv(.{ .immediate = unsigned }); @@ -1075,7 +1068,7 @@ pub fn genTypedValue( } }, .Enum => { - const enum_tag = zcu.intern_pool.indexToKey(val.toIntern()).enum_tag; + const enum_tag = ip.indexToKey(val.toIntern()).enum_tag; return genTypedValue( lf, src_loc, @@ -1084,7 +1077,7 @@ pub fn genTypedValue( ); }, .ErrorSet => { - const err_name = zcu.intern_pool.indexToKey(val.toIntern()).err.name; + const err_name = ip.indexToKey(val.toIntern()).err.name; const error_index = zcu.global_error_set.getIndex(err_name).?; return GenResult.mcv(.{ .immediate = error_index }); }, @@ -1094,7 +1087,7 @@ pub fn genTypedValue( if (!payload_type.hasRuntimeBitsIgnoreComptime(zcu)) { // We use the error type directly as the type. const err_int_ty = try zcu.errorIntType(); - switch (zcu.intern_pool.indexToKey(val.toIntern()).error_union.val) { + switch (ip.indexToKey(val.toIntern()).error_union.val) { .err_name => |err_name| return genTypedValue( lf, src_loc, diff --git a/src/codegen/c.zig b/src/codegen/c.zig index 576cc55b63..0b3d2f9836 100644 --- a/src/codegen/c.zig +++ b/src/codegen/c.zig @@ -505,7 +505,7 @@ pub const Function = struct { .never_inline, => |owner_decl| try ctype_pool.fmt(gpa, "zig_{s}_{}__{d}", .{ @tagName(key), - fmtIdent(zcu.intern_pool.stringToSlice(zcu.declPtr(owner_decl).name)), + fmtIdent(zcu.declPtr(owner_decl).name.toSlice(&zcu.intern_pool)), @intFromEnum(owner_decl), }), }, @@ -898,7 +898,7 @@ pub const DeclGen = struct { }, }, .err => |err| try writer.print("zig_error_{}", .{ - fmtIdent(ip.stringToSlice(err.name)), + fmtIdent(err.name.toSlice(ip)), }), .error_union => |error_union| { const payload_ty = ty.errorUnionPayload(zcu); @@ -1178,7 +1178,7 @@ pub const DeclGen = struct { switch (ip.indexToKey(val.toIntern()).aggregate.storage) { .bytes => |bytes| try ip.get(zcu.gpa, .{ .int = .{ .ty = field_ty.toIntern(), - .storage = .{ .u64 = bytes[field_index] }, + .storage = .{ .u64 = bytes.at(field_index, ip) }, } }), .elems => |elems| elems[field_index], .repeated_elem => |elem| elem, @@ -1212,7 +1212,7 @@ pub const DeclGen = struct { const field_val = switch (ip.indexToKey(val.toIntern()).aggregate.storage) { .bytes => |bytes| try ip.get(zcu.gpa, .{ .int = .{ .ty = field_ty.toIntern(), - .storage = .{ .u64 = bytes[field_index] }, + .storage = .{ .u64 = bytes.at(field_index, ip) }, } }), .elems => |elems| elems[field_index], .repeated_elem => |elem| elem, @@ -1258,7 +1258,7 @@ pub const DeclGen = struct { const field_val = switch (ip.indexToKey(val.toIntern()).aggregate.storage) { .bytes => |bytes| try ip.get(zcu.gpa, .{ .int = .{ .ty = field_ty.toIntern(), - .storage = .{ .u64 = bytes[field_index] }, + .storage = .{ .u64 = bytes.at(field_index, ip) }, } }), .elems => |elems| elems[field_index], .repeated_elem => |elem| elem, @@ -1299,7 +1299,7 @@ pub const DeclGen = struct { const field_val = switch (ip.indexToKey(val.toIntern()).aggregate.storage) { .bytes => |bytes| try ip.get(zcu.gpa, .{ .int = .{ .ty = field_ty.toIntern(), - .storage = .{ .u64 = bytes[field_index] }, + .storage = .{ .u64 = bytes.at(field_index, ip) }, } }), .elems => |elems| elems[field_index], .repeated_elem => |elem| elem, @@ -1392,7 +1392,7 @@ pub const DeclGen = struct { try writer.writeAll(" .payload = {"); } if (field_ty.hasRuntimeBits(zcu)) { - try writer.print(" .{ } = ", .{fmtIdent(ip.stringToSlice(field_name))}); + try writer.print(" .{ } = ", .{fmtIdent(field_name.toSlice(ip))}); try dg.renderValue(writer, Value.fromInterned(un.val), initializer_type); try writer.writeByte(' '); } else for (0..loaded_union.field_types.len) |this_field_index| { @@ -1741,14 +1741,12 @@ pub const DeclGen = struct { switch (name) { .export_index => |export_index| mangled: { const maybe_exports = zcu.decl_exports.get(fn_decl_index); - const external_name = ip.stringToSlice( - if (maybe_exports) |exports| - exports.items[export_index].opts.name - else if (fn_decl.isExtern(zcu)) - fn_decl.name - else - break :mangled, - ); + const external_name = (if (maybe_exports) |exports| + exports.items[export_index].opts.name + else if (fn_decl.isExtern(zcu)) + fn_decl.name + else + break :mangled).toSlice(ip); const is_mangled = isMangledIdent(external_name, true); const is_export = export_index > 0; if (is_mangled and is_export) { @@ -1756,7 +1754,7 @@ pub const DeclGen = struct { fmtIdent(external_name), fmtStringLiteral(external_name, null), fmtStringLiteral( - ip.stringToSlice(maybe_exports.?.items[0].opts.name), + maybe_exports.?.items[0].opts.name.toSlice(ip), null, ), }); @@ -1767,7 +1765,7 @@ pub const DeclGen = struct { } else if (is_export) { try w.print(" zig_export({s}, {s})", .{ fmtStringLiteral( - ip.stringToSlice(maybe_exports.?.items[0].opts.name), + maybe_exports.?.items[0].opts.name.toSlice(ip), null, ), fmtStringLiteral(external_name, null), @@ -2075,12 +2073,12 @@ pub const DeclGen = struct { .complete, ); mangled: { - const external_name = zcu.intern_pool.stringToSlice(if (maybe_exports) |exports| + const external_name = (if (maybe_exports) |exports| exports.items[0].opts.name else if (variable.is_extern) decl.name else - break :mangled); + break :mangled).toSlice(&zcu.intern_pool); if (isMangledIdent(external_name, true)) { try fwd.print(" zig_mangled_{s}({ }, {s})", .{ @tagName(fwd_kind), @@ -2094,15 +2092,16 @@ pub const DeclGen = struct { fn renderDeclName(dg: *DeclGen, writer: anytype, decl_index: InternPool.DeclIndex, export_index: u32) !void { const zcu = dg.zcu; + const ip = &zcu.intern_pool; const decl = zcu.declPtr(decl_index); if (zcu.decl_exports.get(decl_index)) |exports| { try writer.print("{ }", .{ - fmtIdent(zcu.intern_pool.stringToSlice(exports.items[export_index].opts.name)), + fmtIdent(exports.items[export_index].opts.name.toSlice(ip)), }); } else if (decl.getExternDecl(zcu).unwrap()) |extern_decl_index| { try writer.print("{ }", .{ - fmtIdent(zcu.intern_pool.stringToSlice(zcu.declPtr(extern_decl_index).name)), + fmtIdent(zcu.declPtr(extern_decl_index).name.toSlice(ip)), }); } else { // MSVC has a limit of 4095 character token length limit, and fmtIdent can (worst case), @@ -2226,7 +2225,7 @@ fn renderFwdDeclTypeName( switch (fwd_decl.name) { .anon => try w.print("anon__lazy_{d}", .{@intFromEnum(ctype.index)}), .owner_decl => |owner_decl| try w.print("{}__{d}", .{ - fmtIdent(zcu.intern_pool.stringToSlice(zcu.declPtr(owner_decl).name)), + fmtIdent(zcu.declPtr(owner_decl).name.toSlice(&zcu.intern_pool)), @intFromEnum(owner_decl), }), } @@ -2548,7 +2547,7 @@ pub fn genErrDecls(o: *Object) !void { try writer.writeAll("enum {\n"); o.indent_writer.pushIndent(); for (zcu.global_error_set.keys()[1..], 1..) |name_nts, value| { - const name = ip.stringToSlice(name_nts); + const name = name_nts.toSlice(ip); max_name_len = @max(name.len, max_name_len); const err_val = try zcu.intern(.{ .err = .{ .ty = .anyerror_type, @@ -2566,19 +2565,19 @@ pub fn genErrDecls(o: *Object) !void { defer o.dg.gpa.free(name_buf); @memcpy(name_buf[0..name_prefix.len], name_prefix); - for (zcu.global_error_set.keys()) |name_ip| { - const name = ip.stringToSlice(name_ip); - @memcpy(name_buf[name_prefix.len..][0..name.len], name); - const identifier = name_buf[0 .. name_prefix.len + name.len]; + for (zcu.global_error_set.keys()) |name| { + const name_slice = name.toSlice(ip); + @memcpy(name_buf[name_prefix.len..][0..name_slice.len], name_slice); + const identifier = name_buf[0 .. name_prefix.len + name_slice.len]; const name_ty = try zcu.arrayType(.{ - .len = name.len, + .len = name_slice.len, .child = .u8_type, .sentinel = .zero_u8, }); const name_val = try zcu.intern(.{ .aggregate = .{ .ty = name_ty.toIntern(), - .storage = .{ .bytes = name }, + .storage = .{ .bytes = name.toString() }, } }); try writer.writeAll("static "); @@ -2611,7 +2610,7 @@ pub fn genErrDecls(o: *Object) !void { ); try writer.writeAll(" = {"); for (zcu.global_error_set.keys(), 0..) |name_nts, value| { - const name = ip.stringToSlice(name_nts); + const name = name_nts.toSlice(ip); if (value != 0) try writer.writeByte(','); try writer.print("{{" ++ name_prefix ++ "{}, {}}}", .{ fmtIdent(name), @@ -2659,7 +2658,7 @@ fn genExports(o: *Object) !void { for (exports.items[1..]) |@"export"| { try fwd.writeAll("zig_extern "); if (@"export".opts.linkage == .weak) try fwd.writeAll("zig_weak_linkage "); - const export_name = ip.stringToSlice(@"export".opts.name); + const export_name = @"export".opts.name.toSlice(ip); try o.dg.renderTypeAndName( fwd, decl.typeOf(zcu), @@ -2672,11 +2671,11 @@ fn genExports(o: *Object) !void { try fwd.print(" zig_mangled_export({ }, {s}, {s})", .{ fmtIdent(export_name), fmtStringLiteral(export_name, null), - fmtStringLiteral(ip.stringToSlice(exports.items[0].opts.name), null), + fmtStringLiteral(exports.items[0].opts.name.toSlice(ip), null), }); } else { try fwd.print(" zig_export({s}, {s})", .{ - fmtStringLiteral(ip.stringToSlice(exports.items[0].opts.name), null), + fmtStringLiteral(exports.items[0].opts.name.toSlice(ip), null), fmtStringLiteral(export_name, null), }); } @@ -2706,17 +2705,18 @@ pub fn genLazyFn(o: *Object, lazy_ctype_pool: *const CType.Pool, lazy_fn: LazyFn try w.writeAll(") {\n switch (tag) {\n"); const tag_names = enum_ty.enumFields(zcu); for (0..tag_names.len) |tag_index| { - const tag_name = ip.stringToSlice(tag_names.get(ip)[tag_index]); + const tag_name = tag_names.get(ip)[tag_index]; + const tag_name_len = tag_name.length(ip); const tag_val = try zcu.enumValueFieldIndex(enum_ty, @intCast(tag_index)); const name_ty = try zcu.arrayType(.{ - .len = tag_name.len, + .len = tag_name_len, .child = .u8_type, .sentinel = .zero_u8, }); const name_val = try zcu.intern(.{ .aggregate = .{ .ty = name_ty.toIntern(), - .storage = .{ .bytes = tag_name }, + .storage = .{ .bytes = tag_name.toString() }, } }); try w.print(" case {}: {{\n static ", .{ @@ -2729,7 +2729,7 @@ pub fn genLazyFn(o: *Object, lazy_ctype_pool: *const CType.Pool, lazy_fn: LazyFn try o.dg.renderType(w, name_slice_ty); try w.print("){{{}, {}}};\n", .{ fmtIdent("name"), - try o.dg.fmtIntLiteral(try zcu.intValue(Type.usize, tag_name.len), .Other), + try o.dg.fmtIntLiteral(try zcu.intValue(Type.usize, tag_name_len), .Other), }); try w.writeAll(" }\n"); @@ -2797,7 +2797,7 @@ pub fn genFunc(f: *Function) !void { try o.indent_writer.insertNewline(); if (!is_global) try o.writer().writeAll("static "); - if (zcu.intern_pool.stringToSliceUnwrap(decl.@"linksection")) |s| + if (decl.@"linksection".toSlice(&zcu.intern_pool)) |s| try o.writer().print("zig_linksection_fn({s}) ", .{fmtStringLiteral(s, null)}); try o.dg.renderFunctionSignature(o.writer(), decl_index, .complete, .{ .export_index = 0 }); try o.writer().writeByte(' '); @@ -2887,7 +2887,7 @@ pub fn genDecl(o: *Object) !void { if (!is_global) try w.writeAll("static "); if (variable.is_weak_linkage) try w.writeAll("zig_weak_linkage "); if (variable.is_threadlocal and !o.dg.mod.single_threaded) try w.writeAll("zig_threadlocal "); - if (zcu.intern_pool.stringToSliceUnwrap(decl.@"linksection")) |s| + if (decl.@"linksection".toSlice(&zcu.intern_pool)) |s| try w.print("zig_linksection({s}) ", .{fmtStringLiteral(s, null)}); const decl_c_value = .{ .decl = decl_index }; try o.dg.renderTypeAndName(w, decl_ty, decl_c_value, .{}, decl.alignment, .complete); @@ -2920,7 +2920,7 @@ pub fn genDeclValue( switch (o.dg.pass) { .decl => |decl_index| { if (zcu.decl_exports.get(decl_index)) |exports| { - const export_name = zcu.intern_pool.stringToSlice(exports.items[0].opts.name); + const export_name = exports.items[0].opts.name.toSlice(&zcu.intern_pool); if (isMangledIdent(export_name, true)) { try fwd_decl_writer.print(" zig_mangled_final({ }, {s})", .{ fmtIdent(export_name), fmtStringLiteral(export_name, null), @@ -2936,7 +2936,7 @@ pub fn genDeclValue( const w = o.writer(); if (!is_global) try w.writeAll("static "); - if (zcu.intern_pool.stringToSliceUnwrap(@"linksection")) |s| + if (@"linksection".toSlice(&zcu.intern_pool)) |s| try w.print("zig_linksection({s}) ", .{fmtStringLiteral(s, null)}); try o.dg.renderTypeAndName(w, ty, decl_c_value, Const, alignment, .complete); try w.writeAll(" = "); @@ -5454,7 +5454,7 @@ fn fieldLocation( .{ .byte_offset = loaded_struct.offsets.get(ip)[field_index] } else .{ .field = if (loaded_struct.fieldName(ip, field_index).unwrap()) |field_name| - .{ .identifier = ip.stringToSlice(field_name) } + .{ .identifier = field_name.toSlice(ip) } else .{ .field = field_index } }, .@"packed" => if (field_ptr_ty.ptrInfo(zcu).packed_offset.host_size == 0) @@ -5470,7 +5470,7 @@ fn fieldLocation( .{ .byte_offset = container_ty.structFieldOffset(field_index, zcu) } else .{ .field = if (anon_struct_info.fieldName(ip, field_index).unwrap()) |field_name| - .{ .identifier = ip.stringToSlice(field_name) } + .{ .identifier = field_name.toSlice(ip) } else .{ .field = field_index } }, .union_type => { @@ -5485,9 +5485,9 @@ fn fieldLocation( .begin; const field_name = loaded_union.loadTagType(ip).names.get(ip)[field_index]; return .{ .field = if (loaded_union.hasTag(ip)) - .{ .payload_identifier = ip.stringToSlice(field_name) } + .{ .payload_identifier = field_name.toSlice(ip) } else - .{ .identifier = ip.stringToSlice(field_name) } }; + .{ .identifier = field_name.toSlice(ip) } }; }, .@"packed" => return .begin, } @@ -5643,7 +5643,7 @@ fn airStructFieldVal(f: *Function, inst: Air.Inst.Index) !CValue { const loaded_struct = ip.loadStructType(struct_ty.toIntern()); switch (loaded_struct.layout) { .auto, .@"extern" => break :field_name if (loaded_struct.fieldName(ip, extra.field_index).unwrap()) |field_name| - .{ .identifier = ip.stringToSlice(field_name) } + .{ .identifier = field_name.toSlice(ip) } else .{ .field = extra.field_index }, .@"packed" => { @@ -5701,7 +5701,7 @@ fn airStructFieldVal(f: *Function, inst: Air.Inst.Index) !CValue { } }, .anon_struct_type => |anon_struct_info| if (anon_struct_info.fieldName(ip, extra.field_index).unwrap()) |field_name| - .{ .identifier = ip.stringToSlice(field_name) } + .{ .identifier = field_name.toSlice(ip) } else .{ .field = extra.field_index }, .union_type => field_name: { @@ -5710,9 +5710,9 @@ fn airStructFieldVal(f: *Function, inst: Air.Inst.Index) !CValue { .auto, .@"extern" => { const name = loaded_union.loadTagType(ip).names.get(ip)[extra.field_index]; break :field_name if (loaded_union.hasTag(ip)) - .{ .payload_identifier = ip.stringToSlice(name) } + .{ .payload_identifier = name.toSlice(ip) } else - .{ .identifier = ip.stringToSlice(name) }; + .{ .identifier = name.toSlice(ip) }; }, .@"packed" => { const operand_lval = if (struct_byval == .constant) blk: { @@ -7062,7 +7062,7 @@ fn airAggregateInit(f: *Function, inst: Air.Inst.Index) !CValue { const a = try Assignment.start(f, writer, field_ty); try f.writeCValueMember(writer, local, if (loaded_struct.fieldName(ip, field_index).unwrap()) |field_name| - .{ .identifier = ip.stringToSlice(field_name) } + .{ .identifier = field_name.toSlice(ip) } else .{ .field = field_index }); try a.assign(f, writer); @@ -7142,7 +7142,7 @@ fn airAggregateInit(f: *Function, inst: Air.Inst.Index) !CValue { const a = try Assignment.start(f, writer, field_ty); try f.writeCValueMember(writer, local, if (anon_struct_info.fieldName(ip, field_index).unwrap()) |field_name| - .{ .identifier = ip.stringToSlice(field_name) } + .{ .identifier = field_name.toSlice(ip) } else .{ .field = field_index }); try a.assign(f, writer); @@ -7190,8 +7190,8 @@ fn airUnionInit(f: *Function, inst: Air.Inst.Index) !CValue { try writer.print("{}", .{try f.fmtIntLiteral(try tag_val.intFromEnum(tag_ty, zcu))}); try a.end(f, writer); } - break :field .{ .payload_identifier = ip.stringToSlice(field_name) }; - } else .{ .identifier = ip.stringToSlice(field_name) }; + break :field .{ .payload_identifier = field_name.toSlice(ip) }; + } else .{ .identifier = field_name.toSlice(ip) }; const a = try Assignment.start(f, writer, payload_ty); try f.writeCValueMember(writer, local, field); diff --git a/src/codegen/c/Type.zig b/src/codegen/c/Type.zig index 1c460acc6b..83d28dcb4f 100644 --- a/src/codegen/c/Type.zig +++ b/src/codegen/c/Type.zig @@ -1465,7 +1465,7 @@ pub const Pool = struct { }, }, .array_type => |array_info| { - const len = array_info.len + @intFromBool(array_info.sentinel != .none); + const len = array_info.lenIncludingSentinel(); if (len == 0) return .{ .index = .void }; const elem_type = Type.fromInterned(array_info.child); const elem_ctype = try pool.fromType( @@ -1479,7 +1479,7 @@ pub const Pool = struct { if (elem_ctype.index == .void) return .{ .index = .void }; const array_ctype = try pool.getArray(allocator, .{ .elem_ctype = elem_ctype, - .len = array_info.len + @intFromBool(array_info.sentinel != .none), + .len = len, }); if (!kind.isParameter()) return array_ctype; var fields = [_]Info.Field{ @@ -1625,7 +1625,7 @@ pub const Pool = struct { if (field_ctype.index == .void) continue; const field_name = if (loaded_struct.fieldName(ip, field_index) .unwrap()) |field_name| - try pool.string(allocator, ip.stringToSlice(field_name)) + try pool.string(allocator, field_name.toSlice(ip)) else try pool.fmt(allocator, "f{d}", .{field_index}); const field_alignas = AlignAs.fromAlignment(.{ @@ -1685,7 +1685,7 @@ pub const Pool = struct { if (field_ctype.index == .void) continue; const field_name = if (anon_struct_info.fieldName(ip, @intCast(field_index)) .unwrap()) |field_name| - try pool.string(allocator, ip.stringToSlice(field_name)) + try pool.string(allocator, field_name.toSlice(ip)) else try pool.fmt(allocator, "f{d}", .{field_index}); pool.addHashedExtraAssumeCapacityTo(scratch, &hasher, Field, .{ @@ -1766,7 +1766,7 @@ pub const Pool = struct { if (field_ctype.index == .void) continue; const field_name = try pool.string( allocator, - ip.stringToSlice(loaded_tag.names.get(ip)[field_index]), + loaded_tag.names.get(ip)[field_index].toSlice(ip), ); const field_alignas = AlignAs.fromAlignment(.{ .@"align" = loaded_union.fieldAlign(ip, @intCast(field_index)), diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig index 7419e778a1..db0eaa3ce5 100644 --- a/src/codegen/llvm.zig +++ b/src/codegen/llvm.zig @@ -1011,7 +1011,7 @@ pub const Object = struct { llvm_errors[0] = try o.builder.undefConst(llvm_slice_ty); for (llvm_errors[1..], error_name_list[1..]) |*llvm_error, name| { - const name_string = try o.builder.stringNull(mod.intern_pool.stringToSlice(name)); + const name_string = try o.builder.stringNull(name.toSlice(&mod.intern_pool)); const name_init = try o.builder.stringConst(name_string); const name_variable_index = try o.builder.addVariable(.empty, name_init.typeOf(&o.builder), .default); @@ -1086,7 +1086,7 @@ pub const Object = struct { for (object.extern_collisions.keys()) |decl_index| { const global = object.decl_map.get(decl_index) orelse continue; // Same logic as below but for externs instead of exports. - const decl_name = object.builder.strtabStringIfExists(mod.intern_pool.stringToSlice(mod.declPtr(decl_index).name)) orelse continue; + const decl_name = object.builder.strtabStringIfExists(mod.declPtr(decl_index).name.toSlice(&mod.intern_pool)) orelse continue; const other_global = object.builder.getGlobal(decl_name) orelse continue; if (other_global.toConst().getBase(&object.builder) == global.toConst().getBase(&object.builder)) continue; @@ -1116,7 +1116,7 @@ pub const Object = struct { for (export_list) |exp| { // Detect if the LLVM global has already been created as an extern. In such // case, we need to replace all uses of it with this exported global. - const exp_name = object.builder.strtabStringIfExists(mod.intern_pool.stringToSlice(exp.opts.name)) orelse continue; + const exp_name = object.builder.strtabStringIfExists(exp.opts.name.toSlice(&mod.intern_pool)) orelse continue; const other_global = object.builder.getGlobal(exp_name) orelse continue; if (other_global.toConst().getBase(&object.builder) == global_base) continue; @@ -1442,7 +1442,7 @@ pub const Object = struct { } }, &o.builder); } - if (ip.stringToSliceUnwrap(decl.@"linksection")) |section| + if (decl.@"linksection".toSlice(ip)) |section| function_index.setSection(try o.builder.string(section), &o.builder); var deinit_wip = true; @@ -1662,7 +1662,7 @@ pub const Object = struct { const subprogram = try o.builder.debugSubprogram( file, - try o.builder.metadataString(ip.stringToSlice(decl.name)), + try o.builder.metadataString(decl.name.toSlice(ip)), try o.builder.metadataStringFromStrtabString(function_index.name(&o.builder)), line_number, line_number + func.lbrace_line, @@ -1752,6 +1752,7 @@ pub const Object = struct { .value => |val| return updateExportedValue(self, mod, val, exports), }; const gpa = mod.gpa; + const ip = &mod.intern_pool; // If the module does not already have the function, we ignore this function call // because we call `updateExports` at the end of `updateFunc` and `updateDecl`. const global_index = self.decl_map.get(decl_index) orelse return; @@ -1759,17 +1760,14 @@ pub const Object = struct { const comp = mod.comp; if (decl.isExtern(mod)) { const decl_name = decl_name: { - const decl_name = mod.intern_pool.stringToSlice(decl.name); - if (mod.getTarget().isWasm() and decl.val.typeOf(mod).zigTypeTag(mod) == .Fn) { - if (mod.intern_pool.stringToSliceUnwrap(decl.getOwnedExternFunc(mod).?.lib_name)) |lib_name| { + if (decl.getOwnedExternFunc(mod).?.lib_name.toSlice(ip)) |lib_name| { if (!std.mem.eql(u8, lib_name, "c")) { - break :decl_name try self.builder.strtabStringFmt("{s}|{s}", .{ decl_name, lib_name }); + break :decl_name try self.builder.strtabStringFmt("{}|{s}", .{ decl.name.fmt(ip), lib_name }); } } } - - break :decl_name try self.builder.strtabString(decl_name); + break :decl_name try self.builder.strtabString(decl.name.toSlice(ip)); }; if (self.builder.getGlobal(decl_name)) |other_global| { @@ -1792,9 +1790,7 @@ pub const Object = struct { if (decl_var.is_weak_linkage) global_index.setLinkage(.extern_weak, &self.builder); } } else if (exports.len != 0) { - const main_exp_name = try self.builder.strtabString( - mod.intern_pool.stringToSlice(exports[0].opts.name), - ); + const main_exp_name = try self.builder.strtabString(exports[0].opts.name.toSlice(ip)); try global_index.rename(main_exp_name, &self.builder); if (decl.val.getVariable(mod)) |decl_var| if (decl_var.is_threadlocal) @@ -1803,9 +1799,7 @@ pub const Object = struct { return updateExportedGlobal(self, mod, global_index, exports); } else { - const fqn = try self.builder.strtabString( - mod.intern_pool.stringToSlice(try decl.fullyQualifiedName(mod)), - ); + const fqn = try self.builder.strtabString((try decl.fullyQualifiedName(mod)).toSlice(ip)); try global_index.rename(fqn, &self.builder); global_index.setLinkage(.internal, &self.builder); if (comp.config.dll_export_fns) @@ -1832,9 +1826,8 @@ pub const Object = struct { exports: []const *Module.Export, ) link.File.UpdateExportsError!void { const gpa = mod.gpa; - const main_exp_name = try o.builder.strtabString( - mod.intern_pool.stringToSlice(exports[0].opts.name), - ); + const ip = &mod.intern_pool; + const main_exp_name = try o.builder.strtabString(exports[0].opts.name.toSlice(ip)); const global_index = i: { const gop = try o.anon_decl_map.getOrPut(gpa, exported_value); if (gop.found_existing) { @@ -1845,7 +1838,7 @@ pub const Object = struct { const llvm_addr_space = toLlvmAddressSpace(.generic, o.target); const variable_index = try o.builder.addVariable( main_exp_name, - try o.lowerType(Type.fromInterned(mod.intern_pool.typeOf(exported_value))), + try o.lowerType(Type.fromInterned(ip.typeOf(exported_value))), llvm_addr_space, ); const global_index = variable_index.ptrConst(&o.builder).global; @@ -1867,8 +1860,9 @@ pub const Object = struct { global_index: Builder.Global.Index, exports: []const *Module.Export, ) link.File.UpdateExportsError!void { - global_index.setUnnamedAddr(.default, &o.builder); const comp = mod.comp; + const ip = &mod.intern_pool; + global_index.setUnnamedAddr(.default, &o.builder); if (comp.config.dll_export_fns) global_index.setDllStorageClass(.dllexport, &o.builder); global_index.setLinkage(switch (exports[0].opts.linkage) { @@ -1882,7 +1876,7 @@ pub const Object = struct { .hidden => .hidden, .protected => .protected, }, &o.builder); - if (mod.intern_pool.stringToSliceUnwrap(exports[0].opts.section)) |section| + if (exports[0].opts.section.toSlice(ip)) |section| switch (global_index.ptrConst(&o.builder).kind) { .variable => |impl_index| impl_index.setSection( try o.builder.string(section), @@ -1900,7 +1894,7 @@ pub const Object = struct { // Until then we iterate over existing aliases and make them point // to the correct decl, or otherwise add a new alias. Old aliases are leaked. for (exports[1..]) |exp| { - const exp_name = try o.builder.strtabString(mod.intern_pool.stringToSlice(exp.opts.name)); + const exp_name = try o.builder.strtabString(exp.opts.name.toSlice(ip)); if (o.builder.getGlobal(exp_name)) |global| { switch (global.ptrConst(&o.builder).kind) { .alias => |alias| { @@ -2013,7 +2007,7 @@ pub const Object = struct { std.math.big.int.Mutable.init(&bigint_space.limbs, i).toConst(); enumerators[i] = try o.builder.debugEnumerator( - try o.builder.metadataString(ip.stringToSlice(field_name_ip)), + try o.builder.metadataString(field_name_ip.toSlice(ip)), int_info.signedness == .unsigned, int_info.bits, bigint, @@ -2473,7 +2467,7 @@ pub const Object = struct { offset = field_offset + field_size; const field_name = if (tuple.names.len != 0) - ip.stringToSlice(tuple.names.get(ip)[i]) + tuple.names.get(ip)[i].toSlice(ip) else try std.fmt.allocPrintZ(gpa, "{d}", .{i}); defer if (tuple.names.len == 0) gpa.free(field_name); @@ -2557,10 +2551,10 @@ pub const Object = struct { const field_offset = ty.structFieldOffset(field_index, mod); const field_name = struct_type.fieldName(ip, field_index).unwrap() orelse - try ip.getOrPutStringFmt(gpa, "{d}", .{field_index}); + try ip.getOrPutStringFmt(gpa, "{d}", .{field_index}, .no_embedded_nulls); fields.appendAssumeCapacity(try o.builder.debugMemberType( - try o.builder.metadataString(ip.stringToSlice(field_name)), + try o.builder.metadataString(field_name.toSlice(ip)), .none, // File debug_fwd_ref, 0, // Line @@ -2655,7 +2649,7 @@ pub const Object = struct { const field_name = tag_type.names.get(ip)[field_index]; fields.appendAssumeCapacity(try o.builder.debugMemberType( - try o.builder.metadataString(ip.stringToSlice(field_name)), + try o.builder.metadataString(field_name.toSlice(ip)), .none, // File debug_union_fwd_ref, 0, // Line @@ -2827,7 +2821,7 @@ pub const Object = struct { const mod = o.module; const decl = mod.declPtr(decl_index); return o.builder.debugStructType( - try o.builder.metadataString(mod.intern_pool.stringToSlice(decl.name)), // TODO use fully qualified name + try o.builder.metadataString(decl.name.toSlice(&mod.intern_pool)), // TODO use fully qualified name try o.getDebugFile(mod.namespacePtr(decl.src_namespace).file_scope), try o.namespaceToDebugScope(decl.src_namespace), decl.src_line + 1, @@ -2844,11 +2838,11 @@ pub const Object = struct { const std_mod = mod.std_mod; const std_file = (mod.importPkg(std_mod) catch unreachable).file; - const builtin_str = try mod.intern_pool.getOrPutString(mod.gpa, "builtin"); + const builtin_str = try mod.intern_pool.getOrPutString(mod.gpa, "builtin", .no_embedded_nulls); const std_namespace = mod.namespacePtr(mod.declPtr(std_file.root_decl.unwrap().?).src_namespace); const builtin_decl = std_namespace.decls.getKeyAdapted(builtin_str, Module.DeclAdapter{ .zcu = mod }).?; - const stack_trace_str = try mod.intern_pool.getOrPutString(mod.gpa, "StackTrace"); + const stack_trace_str = try mod.intern_pool.getOrPutString(mod.gpa, "StackTrace", .no_embedded_nulls); // buffer is only used for int_type, `builtin` is a struct. const builtin_ty = mod.declPtr(builtin_decl).val.toType(); const builtin_namespace = mod.namespacePtrUnwrap(builtin_ty.getNamespaceIndex(mod)).?; @@ -2892,10 +2886,10 @@ pub const Object = struct { const is_extern = decl.isExtern(zcu); const function_index = try o.builder.addFunction( try o.lowerType(zig_fn_type), - try o.builder.strtabString(ip.stringToSlice(if (is_extern) + try o.builder.strtabString((if (is_extern) decl.name else - try decl.fullyQualifiedName(zcu))), + try decl.fullyQualifiedName(zcu)).toSlice(ip)), toLlvmAddressSpace(decl.@"addrspace", target), ); gop.value_ptr.* = function_index.ptrConst(&o.builder).global; @@ -2910,9 +2904,9 @@ pub const Object = struct { if (target.isWasm()) { try attributes.addFnAttr(.{ .string = .{ .kind = try o.builder.string("wasm-import-name"), - .value = try o.builder.string(ip.stringToSlice(decl.name)), + .value = try o.builder.string(decl.name.toSlice(ip)), } }, &o.builder); - if (ip.stringToSliceUnwrap(decl.getOwnedExternFunc(zcu).?.lib_name)) |lib_name| { + if (decl.getOwnedExternFunc(zcu).?.lib_name.toSlice(ip)) |lib_name| { if (!std.mem.eql(u8, lib_name, "c")) try attributes.addFnAttr(.{ .string = .{ .kind = try o.builder.string("wasm-import-module"), .value = try o.builder.string(lib_name), @@ -3108,9 +3102,10 @@ pub const Object = struct { const is_extern = decl.isExtern(mod); const variable_index = try o.builder.addVariable( - try o.builder.strtabString(mod.intern_pool.stringToSlice( - if (is_extern) decl.name else try decl.fullyQualifiedName(mod), - )), + try o.builder.strtabString((if (is_extern) + decl.name + else + try decl.fullyQualifiedName(mod)).toSlice(&mod.intern_pool)), try o.lowerType(decl.typeOf(mod)), toLlvmGlobalAddressSpace(decl.@"addrspace", mod.getTarget()), ); @@ -3258,7 +3253,7 @@ pub const Object = struct { }; }, .array_type => |array_type| o.builder.arrayType( - array_type.len + @intFromBool(array_type.sentinel != .none), + array_type.lenIncludingSentinel(), try o.lowerType(Type.fromInterned(array_type.child)), ), .vector_type => |vector_type| o.builder.vectorType( @@ -3335,9 +3330,7 @@ pub const Object = struct { return int_ty; } - const name = try o.builder.string(ip.stringToSlice( - try mod.declPtr(struct_type.decl.unwrap().?).fullyQualifiedName(mod), - )); + const fqn = try mod.declPtr(struct_type.decl.unwrap().?).fullyQualifiedName(mod); var llvm_field_types = std.ArrayListUnmanaged(Builder.Type){}; defer llvm_field_types.deinit(o.gpa); @@ -3402,7 +3395,7 @@ pub const Object = struct { ); } - const ty = try o.builder.opaqueType(name); + const ty = try o.builder.opaqueType(try o.builder.string(fqn.toSlice(ip))); try o.type_map.put(o.gpa, t.toIntern(), ty); o.builder.namedTypeSetBody( @@ -3491,9 +3484,7 @@ pub const Object = struct { return enum_tag_ty; } - const name = try o.builder.string(ip.stringToSlice( - try mod.declPtr(union_obj.decl).fullyQualifiedName(mod), - )); + const fqn = try mod.declPtr(union_obj.decl).fullyQualifiedName(mod); const aligned_field_ty = Type.fromInterned(union_obj.field_types.get(ip)[layout.most_aligned_field]); const aligned_field_llvm_ty = try o.lowerType(aligned_field_ty); @@ -3513,7 +3504,7 @@ pub const Object = struct { }; if (layout.tag_size == 0) { - const ty = try o.builder.opaqueType(name); + const ty = try o.builder.opaqueType(try o.builder.string(fqn.toSlice(ip))); try o.type_map.put(o.gpa, t.toIntern(), ty); o.builder.namedTypeSetBody( @@ -3541,7 +3532,7 @@ pub const Object = struct { llvm_fields_len += 1; } - const ty = try o.builder.opaqueType(name); + const ty = try o.builder.opaqueType(try o.builder.string(fqn.toSlice(ip))); try o.type_map.put(o.gpa, t.toIntern(), ty); o.builder.namedTypeSetBody( @@ -3554,8 +3545,8 @@ pub const Object = struct { const gop = try o.type_map.getOrPut(o.gpa, t.toIntern()); if (!gop.found_existing) { const decl = mod.declPtr(ip.loadOpaqueType(t.toIntern()).decl); - const name = try o.builder.string(ip.stringToSlice(try decl.fullyQualifiedName(mod))); - gop.value_ptr.* = try o.builder.opaqueType(name); + const fqn = try decl.fullyQualifiedName(mod); + gop.value_ptr.* = try o.builder.opaqueType(try o.builder.string(fqn.toSlice(ip))); } return gop.value_ptr.*; }, @@ -3859,7 +3850,9 @@ pub const Object = struct { }, .aggregate => |aggregate| switch (ip.indexToKey(ty.toIntern())) { .array_type => |array_type| switch (aggregate.storage) { - .bytes => |bytes| try o.builder.stringConst(try o.builder.string(bytes)), + .bytes => |bytes| try o.builder.stringConst(try o.builder.string( + bytes.toSlice(array_type.lenIncludingSentinel(), ip), + )), .elems => |elems| { const array_ty = try o.lowerType(ty); const elem_ty = array_ty.childType(&o.builder); @@ -3892,8 +3885,7 @@ pub const Object = struct { }, .repeated_elem => |elem| { const len: usize = @intCast(array_type.len); - const len_including_sentinel: usize = - @intCast(len + @intFromBool(array_type.sentinel != .none)); + const len_including_sentinel: usize = @intCast(array_type.lenIncludingSentinel()); const array_ty = try o.lowerType(ty); const elem_ty = array_ty.childType(&o.builder); @@ -3942,7 +3934,7 @@ pub const Object = struct { defer allocator.free(vals); switch (aggregate.storage) { - .bytes => |bytes| for (vals, bytes) |*result_val, byte| { + .bytes => |bytes| for (vals, bytes.toSlice(vector_type.len, ip)) |*result_val, byte| { result_val.* = try o.builder.intConst(.i8, byte); }, .elems => |elems| for (vals, elems) |*result_val, elem| { @@ -4633,7 +4625,7 @@ pub const Object = struct { defer wip_switch.finish(&wip); for (0..enum_type.names.len) |field_index| { - const name = try o.builder.stringNull(ip.stringToSlice(enum_type.names.get(ip)[field_index])); + const name = try o.builder.stringNull(enum_type.names.get(ip)[field_index].toSlice(ip)); const name_init = try o.builder.stringConst(name); const name_variable_index = try o.builder.addVariable(.empty, name_init.typeOf(&o.builder), .default); @@ -4693,6 +4685,7 @@ pub const DeclGen = struct { fn genDecl(dg: *DeclGen) !void { const o = dg.object; const zcu = o.module; + const ip = &zcu.intern_pool; const decl = dg.decl; const decl_index = dg.decl_index; assert(decl.has_tv); @@ -4705,7 +4698,7 @@ pub const DeclGen = struct { decl.getAlignment(zcu).toLlvm(), &o.builder, ); - if (zcu.intern_pool.stringToSliceUnwrap(decl.@"linksection")) |section| + if (decl.@"linksection".toSlice(ip)) |section| variable_index.setSection(try o.builder.string(section), &o.builder); assert(decl.has_tv); const init_val = if (decl.val.getVariable(zcu)) |decl_var| decl_var.init else init_val: { @@ -4728,7 +4721,7 @@ pub const DeclGen = struct { const debug_file = try o.getDebugFile(namespace.file_scope); const debug_global_var = try o.builder.debugGlobalVar( - try o.builder.metadataString(zcu.intern_pool.stringToSlice(decl.name)), // Name + try o.builder.metadataString(decl.name.toSlice(ip)), // Name try o.builder.metadataStringFromStrtabString(variable_index.name(&o.builder)), // Linkage name debug_file, // File debug_file, // Scope @@ -5156,8 +5149,8 @@ pub const FuncGen = struct { self.scope = try o.builder.debugSubprogram( self.file, - try o.builder.metadataString(zcu.intern_pool.stringToSlice(decl.name)), - try o.builder.metadataString(zcu.intern_pool.stringToSlice(fqn)), + try o.builder.metadataString(decl.name.toSlice(&zcu.intern_pool)), + try o.builder.metadataString(fqn.toSlice(&zcu.intern_pool)), line_number, line_number + func.lbrace_line, try o.lowerDebugType(fn_ty), diff --git a/src/codegen/spirv.zig b/src/codegen/spirv.zig index 2570343763..53ec59d531 100644 --- a/src/codegen/spirv.zig +++ b/src/codegen/spirv.zig @@ -1028,39 +1028,30 @@ const DeclGen = struct { inline .array_type, .vector_type => |array_type, tag| { const elem_ty = Type.fromInterned(array_type.child); - const constituents = try self.gpa.alloc(IdRef, @as(u32, @intCast(ty.arrayLenIncludingSentinel(mod)))); + const constituents = try self.gpa.alloc(IdRef, @intCast(ty.arrayLenIncludingSentinel(mod))); defer self.gpa.free(constituents); switch (aggregate.storage) { .bytes => |bytes| { // TODO: This is really space inefficient, perhaps there is a better // way to do it? - for (bytes, 0..) |byte, i| { - constituents[i] = try self.constInt(elem_ty, byte, .indirect); + for (constituents, bytes.toSlice(constituents.len, ip)) |*constituent, byte| { + constituent.* = try self.constInt(elem_ty, byte, .indirect); } }, .elems => |elems| { - for (0..@as(usize, @intCast(array_type.len))) |i| { - constituents[i] = try self.constant(elem_ty, Value.fromInterned(elems[i]), .indirect); + for (constituents, elems) |*constituent, elem| { + constituent.* = try self.constant(elem_ty, Value.fromInterned(elem), .indirect); } }, .repeated_elem => |elem| { - const val_id = try self.constant(elem_ty, Value.fromInterned(elem), .indirect); - for (0..@as(usize, @intCast(array_type.len))) |i| { - constituents[i] = val_id; - } + @memset(constituents, try self.constant(elem_ty, Value.fromInterned(elem), .indirect)); }, } switch (tag) { - inline .array_type => { - if (array_type.sentinel != .none) { - const sentinel = Value.fromInterned(array_type.sentinel); - constituents[constituents.len - 1] = try self.constant(elem_ty, sentinel, .indirect); - } - return self.constructArray(ty, constituents); - }, - inline .vector_type => return self.constructVector(ty, constituents), + .array_type => return self.constructArray(ty, constituents), + .vector_type => return self.constructVector(ty, constituents), else => unreachable, } }, @@ -1683,9 +1674,9 @@ const DeclGen = struct { } const field_name = struct_type.fieldName(ip, field_index).unwrap() orelse - try ip.getOrPutStringFmt(mod.gpa, "{d}", .{field_index}); + try ip.getOrPutStringFmt(mod.gpa, "{d}", .{field_index}, .no_embedded_nulls); try member_types.append(try self.resolveType(field_ty, .indirect)); - try member_names.append(ip.stringToSlice(field_name)); + try member_names.append(field_name.toSlice(ip)); } const result_id = try self.spv.structType(member_types.items, member_names.items); @@ -2123,12 +2114,12 @@ const DeclGen = struct { // Append the actual code into the functions section. try self.spv.addFunction(spv_decl_index, self.func); - const fqn = ip.stringToSlice(try decl.fullyQualifiedName(self.module)); - try self.spv.debugName(result_id, fqn); + const fqn = try decl.fullyQualifiedName(self.module); + try self.spv.debugName(result_id, fqn.toSlice(ip)); // Temporarily generate a test kernel declaration if this is a test function. if (self.module.test_functions.contains(self.decl_index)) { - try self.generateTestEntryPoint(fqn, spv_decl_index); + try self.generateTestEntryPoint(fqn.toSlice(ip), spv_decl_index); } }, .global => { @@ -2152,8 +2143,8 @@ const DeclGen = struct { .storage_class = final_storage_class, }); - const fqn = ip.stringToSlice(try decl.fullyQualifiedName(self.module)); - try self.spv.debugName(result_id, fqn); + const fqn = try decl.fullyQualifiedName(self.module); + try self.spv.debugName(result_id, fqn.toSlice(ip)); try self.spv.declareDeclDeps(spv_decl_index, &.{}); }, .invocation_global => { @@ -2197,8 +2188,8 @@ const DeclGen = struct { try self.func.body.emit(self.spv.gpa, .OpFunctionEnd, {}); try self.spv.addFunction(spv_decl_index, self.func); - const fqn = ip.stringToSlice(try decl.fullyQualifiedName(self.module)); - try self.spv.debugNameFmt(initializer_id, "initializer of {s}", .{fqn}); + const fqn = try decl.fullyQualifiedName(self.module); + try self.spv.debugNameFmt(initializer_id, "initializer of {}", .{fqn.fmt(ip)}); try self.spv.sections.types_globals_constants.emit(self.spv.gpa, .OpExtInst, .{ .id_result_type = ptr_ty_id, diff --git a/src/link/Coff.zig b/src/link/Coff.zig index aaf840e02c..413294489a 100644 --- a/src/link/Coff.zig +++ b/src/link/Coff.zig @@ -1176,9 +1176,9 @@ pub fn lowerUnnamedConst(self: *Coff, val: Value, decl_index: InternPool.DeclInd gop.value_ptr.* = .{}; } const unnamed_consts = gop.value_ptr; - const decl_name = mod.intern_pool.stringToSlice(try decl.fullyQualifiedName(mod)); + const decl_name = try decl.fullyQualifiedName(mod); const index = unnamed_consts.items.len; - const sym_name = try std.fmt.allocPrint(gpa, "__unnamed_{s}_{d}", .{ decl_name, index }); + const sym_name = try std.fmt.allocPrint(gpa, "__unnamed_{}_{d}", .{ decl_name.fmt(&mod.intern_pool), index }); defer gpa.free(sym_name); const ty = val.typeOf(mod); const atom_index = switch (try self.lowerConst(sym_name, val, ty.abiAlignment(mod), self.rdata_section_index.?, decl.srcLoc(mod))) { @@ -1257,8 +1257,8 @@ pub fn updateDecl( if (decl.isExtern(mod)) { // TODO make this part of getGlobalSymbol const variable = decl.getOwnedVariable(mod).?; - const name = mod.intern_pool.stringToSlice(decl.name); - const lib_name = mod.intern_pool.stringToSliceUnwrap(variable.lib_name); + const name = decl.name.toSlice(&mod.intern_pool); + const lib_name = variable.lib_name.toSlice(&mod.intern_pool); const global_index = try self.getGlobalSymbol(name, lib_name); try self.need_got_table.put(gpa, global_index, {}); return; @@ -1425,9 +1425,9 @@ fn updateDeclCode(self: *Coff, decl_index: InternPool.DeclIndex, code: []u8, com const mod = self.base.comp.module.?; const decl = mod.declPtr(decl_index); - const decl_name = mod.intern_pool.stringToSlice(try decl.fullyQualifiedName(mod)); + const decl_name = try decl.fullyQualifiedName(mod); - log.debug("updateDeclCode {s}{*}", .{ decl_name, decl }); + log.debug("updateDeclCode {}{*}", .{ decl_name.fmt(&mod.intern_pool), decl }); const required_alignment: u32 = @intCast(decl.getAlignment(mod).toByteUnits() orelse 0); const decl_metadata = self.decls.get(decl_index).?; @@ -1439,7 +1439,7 @@ fn updateDeclCode(self: *Coff, decl_index: InternPool.DeclIndex, code: []u8, com if (atom.size != 0) { const sym = atom.getSymbolPtr(self); - try self.setSymbolName(sym, decl_name); + try self.setSymbolName(sym, decl_name.toSlice(&mod.intern_pool)); sym.section_number = @as(coff.SectionNumber, @enumFromInt(sect_index + 1)); sym.type = .{ .complex_type = complex_type, .base_type = .NULL }; @@ -1447,7 +1447,7 @@ fn updateDeclCode(self: *Coff, decl_index: InternPool.DeclIndex, code: []u8, com const need_realloc = code.len > capacity or !mem.isAlignedGeneric(u64, sym.value, required_alignment); if (need_realloc) { const vaddr = try self.growAtom(atom_index, code_len, required_alignment); - log.debug("growing {s} from 0x{x} to 0x{x}", .{ decl_name, sym.value, vaddr }); + log.debug("growing {} from 0x{x} to 0x{x}", .{ decl_name.fmt(&mod.intern_pool), sym.value, vaddr }); log.debug(" (required alignment 0x{x}", .{required_alignment}); if (vaddr != sym.value) { @@ -1463,13 +1463,13 @@ fn updateDeclCode(self: *Coff, decl_index: InternPool.DeclIndex, code: []u8, com self.getAtomPtr(atom_index).size = code_len; } else { const sym = atom.getSymbolPtr(self); - try self.setSymbolName(sym, decl_name); + try self.setSymbolName(sym, decl_name.toSlice(&mod.intern_pool)); sym.section_number = @as(coff.SectionNumber, @enumFromInt(sect_index + 1)); sym.type = .{ .complex_type = complex_type, .base_type = .NULL }; const vaddr = try self.allocateAtom(atom_index, code_len, required_alignment); errdefer self.freeAtom(atom_index); - log.debug("allocated atom for {s} at 0x{x}", .{ decl_name, vaddr }); + log.debug("allocated atom for {} at 0x{x}", .{ decl_name.fmt(&mod.intern_pool), vaddr }); self.getAtomPtr(atom_index).size = code_len; sym.value = vaddr; @@ -1534,20 +1534,18 @@ pub fn updateExports( else => std.builtin.CallingConvention.C, }; const decl_cc = exported_decl.typeOf(mod).fnCallingConvention(mod); - if (decl_cc == .C and ip.stringEqlSlice(exp.opts.name, "main") and - comp.config.link_libc) - { + if (decl_cc == .C and exp.opts.name.eqlSlice("main", ip) and comp.config.link_libc) { mod.stage1_flags.have_c_main = true; } else if (decl_cc == winapi_cc and target.os.tag == .windows) { - if (ip.stringEqlSlice(exp.opts.name, "WinMain")) { + if (exp.opts.name.eqlSlice("WinMain", ip)) { mod.stage1_flags.have_winmain = true; - } else if (ip.stringEqlSlice(exp.opts.name, "wWinMain")) { + } else if (exp.opts.name.eqlSlice("wWinMain", ip)) { mod.stage1_flags.have_wwinmain = true; - } else if (ip.stringEqlSlice(exp.opts.name, "WinMainCRTStartup")) { + } else if (exp.opts.name.eqlSlice("WinMainCRTStartup", ip)) { mod.stage1_flags.have_winmain_crt_startup = true; - } else if (ip.stringEqlSlice(exp.opts.name, "wWinMainCRTStartup")) { + } else if (exp.opts.name.eqlSlice("wWinMainCRTStartup", ip)) { mod.stage1_flags.have_wwinmain_crt_startup = true; - } else if (ip.stringEqlSlice(exp.opts.name, "DllMainCRTStartup")) { + } else if (exp.opts.name.eqlSlice("DllMainCRTStartup", ip)) { mod.stage1_flags.have_dllmain_crt_startup = true; } } @@ -1585,7 +1583,7 @@ pub fn updateExports( for (exports) |exp| { log.debug("adding new export '{}'", .{exp.opts.name.fmt(&mod.intern_pool)}); - if (mod.intern_pool.stringToSliceUnwrap(exp.opts.section)) |section_name| { + if (exp.opts.section.toSlice(&mod.intern_pool)) |section_name| { if (!mem.eql(u8, section_name, ".text")) { try mod.failed_exports.putNoClobber(gpa, exp, try Module.ErrorMsg.create( gpa, @@ -1607,7 +1605,7 @@ pub fn updateExports( continue; } - const exp_name = mod.intern_pool.stringToSlice(exp.opts.name); + const exp_name = exp.opts.name.toSlice(&mod.intern_pool); const sym_index = metadata.getExport(self, exp_name) orelse blk: { const sym_index = if (self.getGlobalIndex(exp_name)) |global_index| ind: { const global = self.globals.items[global_index]; @@ -1646,18 +1644,18 @@ pub fn updateExports( pub fn deleteDeclExport( self: *Coff, decl_index: InternPool.DeclIndex, - name_ip: InternPool.NullTerminatedString, + name: InternPool.NullTerminatedString, ) void { if (self.llvm_object) |_| return; const metadata = self.decls.getPtr(decl_index) orelse return; const mod = self.base.comp.module.?; - const name = mod.intern_pool.stringToSlice(name_ip); - const sym_index = metadata.getExportPtr(self, name) orelse return; + const name_slice = name.toSlice(&mod.intern_pool); + const sym_index = metadata.getExportPtr(self, name_slice) orelse return; const gpa = self.base.comp.gpa; const sym_loc = SymbolWithLoc{ .sym_index = sym_index.*, .file = null }; const sym = self.getSymbolPtr(sym_loc); - log.debug("deleting export '{s}'", .{name}); + log.debug("deleting export '{}'", .{name.fmt(&mod.intern_pool)}); assert(sym.storage_class == .EXTERNAL and sym.section_number != .UNDEFINED); sym.* = .{ .name = [_]u8{0} ** 8, @@ -1669,7 +1667,7 @@ pub fn deleteDeclExport( }; self.locals_free_list.append(gpa, sym_index.*) catch {}; - if (self.resolver.fetchRemove(name)) |entry| { + if (self.resolver.fetchRemove(name_slice)) |entry| { defer gpa.free(entry.key); self.globals_free_list.append(gpa, entry.value) catch {}; self.globals.items[entry.value] = .{ diff --git a/src/link/Dwarf.zig b/src/link/Dwarf.zig index 6a41bb3793..5f82c924c7 100644 --- a/src/link/Dwarf.zig +++ b/src/link/Dwarf.zig @@ -339,15 +339,14 @@ pub const DeclState = struct { struct_type.field_names.get(ip), struct_type.field_types.get(ip), struct_type.offsets.get(ip), - ) |field_name_ip, field_ty, field_off| { + ) |field_name, field_ty, field_off| { if (!Type.fromInterned(field_ty).hasRuntimeBits(mod)) continue; - const field_name = ip.stringToSlice(field_name_ip); + const field_name_slice = field_name.toSlice(ip); // DW.AT.member - try dbg_info_buffer.ensureUnusedCapacity(field_name.len + 2); + try dbg_info_buffer.ensureUnusedCapacity(field_name_slice.len + 2); dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevCode.struct_member)); // DW.AT.name, DW.FORM.string - dbg_info_buffer.appendSliceAssumeCapacity(field_name); - dbg_info_buffer.appendAssumeCapacity(0); + dbg_info_buffer.appendSliceAssumeCapacity(field_name_slice[0 .. field_name_slice.len + 1]); // DW.AT.type, DW.FORM.ref4 const index = dbg_info_buffer.items.len; try dbg_info_buffer.appendNTimes(0, 4); @@ -374,14 +373,13 @@ pub const DeclState = struct { try dbg_info_buffer.append(0); const enum_type = ip.loadEnumType(ty.ip_index); - for (enum_type.names.get(ip), 0..) |field_name_index, field_i| { - const field_name = ip.stringToSlice(field_name_index); + for (enum_type.names.get(ip), 0..) |field_name, field_i| { + const field_name_slice = field_name.toSlice(ip); // DW.AT.enumerator - try dbg_info_buffer.ensureUnusedCapacity(field_name.len + 2 + @sizeOf(u64)); + try dbg_info_buffer.ensureUnusedCapacity(field_name_slice.len + 2 + @sizeOf(u64)); dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevCode.enum_variant)); // DW.AT.name, DW.FORM.string - dbg_info_buffer.appendSliceAssumeCapacity(field_name); - dbg_info_buffer.appendAssumeCapacity(0); + dbg_info_buffer.appendSliceAssumeCapacity(field_name_slice[0 .. field_name_slice.len + 1]); // DW.AT.const_value, DW.FORM.data8 const value: u64 = value: { if (enum_type.values.len == 0) break :value field_i; // auto-numbered @@ -443,11 +441,11 @@ pub const DeclState = struct { for (union_obj.field_types.get(ip), union_obj.loadTagType(ip).names.get(ip)) |field_ty, field_name| { if (!Type.fromInterned(field_ty).hasRuntimeBits(mod)) continue; + const field_name_slice = field_name.toSlice(ip); // DW.AT.member try dbg_info_buffer.append(@intFromEnum(AbbrevCode.struct_member)); // DW.AT.name, DW.FORM.string - try dbg_info_buffer.appendSlice(ip.stringToSlice(field_name)); - try dbg_info_buffer.append(0); + try dbg_info_buffer.appendSlice(field_name_slice[0 .. field_name_slice.len + 1]); // DW.AT.type, DW.FORM.ref4 const index = dbg_info_buffer.items.len; try dbg_info_buffer.appendNTimes(0, 4); @@ -1155,8 +1153,8 @@ pub fn initDeclState(self: *Dwarf, mod: *Module, decl_index: InternPool.DeclInde dbg_line_buffer.appendAssumeCapacity(DW.LNS.copy); // .debug_info subprogram - const decl_name_slice = mod.intern_pool.stringToSlice(decl.name); - const decl_linkage_name_slice = mod.intern_pool.stringToSlice(decl_linkage_name); + const decl_name_slice = decl.name.toSlice(&mod.intern_pool); + const decl_linkage_name_slice = decl_linkage_name.toSlice(&mod.intern_pool); try dbg_info_buffer.ensureUnusedCapacity(1 + ptr_width_bytes + 4 + 4 + (decl_name_slice.len + 1) + (decl_linkage_name_slice.len + 1)); @@ -2866,15 +2864,14 @@ fn addDbgInfoErrorSetNames( // DW.AT.const_value, DW.FORM.data8 mem.writeInt(u64, dbg_info_buffer.addManyAsArrayAssumeCapacity(8), 0, target_endian); - for (error_names) |error_name_ip| { - const int = try mod.getErrorValue(error_name_ip); - const error_name = mod.intern_pool.stringToSlice(error_name_ip); + for (error_names) |error_name| { + const int = try mod.getErrorValue(error_name); + const error_name_slice = error_name.toSlice(&mod.intern_pool); // DW.AT.enumerator - try dbg_info_buffer.ensureUnusedCapacity(error_name.len + 2 + @sizeOf(u64)); + try dbg_info_buffer.ensureUnusedCapacity(error_name_slice.len + 2 + @sizeOf(u64)); dbg_info_buffer.appendAssumeCapacity(@intFromEnum(AbbrevCode.enum_variant)); // DW.AT.name, DW.FORM.string - dbg_info_buffer.appendSliceAssumeCapacity(error_name); - dbg_info_buffer.appendAssumeCapacity(0); + dbg_info_buffer.appendSliceAssumeCapacity(error_name_slice[0 .. error_name_slice.len + 1]); // DW.AT.const_value, DW.FORM.data8 mem.writeInt(u64, dbg_info_buffer.addManyAsArrayAssumeCapacity(8), int, target_endian); } diff --git a/src/link/Elf/ZigObject.zig b/src/link/Elf/ZigObject.zig index 8b8dc9bd81..f65ef43eac 100644 --- a/src/link/Elf/ZigObject.zig +++ b/src/link/Elf/ZigObject.zig @@ -902,9 +902,9 @@ fn updateDeclCode( const gpa = elf_file.base.comp.gpa; const mod = elf_file.base.comp.module.?; const decl = mod.declPtr(decl_index); - const decl_name = mod.intern_pool.stringToSlice(try decl.fullyQualifiedName(mod)); + const decl_name = try decl.fullyQualifiedName(mod); - log.debug("updateDeclCode {s}{*}", .{ decl_name, decl }); + log.debug("updateDeclCode {}{*}", .{ decl_name.fmt(&mod.intern_pool), decl }); const required_alignment = decl.getAlignment(mod); @@ -915,7 +915,7 @@ fn updateDeclCode( sym.output_section_index = shdr_index; atom_ptr.output_section_index = shdr_index; - sym.name_offset = try self.strtab.insert(gpa, decl_name); + sym.name_offset = try self.strtab.insert(gpa, decl_name.toSlice(&mod.intern_pool)); atom_ptr.flags.alive = true; atom_ptr.name_offset = sym.name_offset; esym.st_name = sym.name_offset; @@ -932,7 +932,7 @@ fn updateDeclCode( const need_realloc = code.len > capacity or !required_alignment.check(atom_ptr.value); if (need_realloc) { try atom_ptr.grow(elf_file); - log.debug("growing {s} from 0x{x} to 0x{x}", .{ decl_name, old_vaddr, atom_ptr.value }); + log.debug("growing {} from 0x{x} to 0x{x}", .{ decl_name.fmt(&mod.intern_pool), old_vaddr, atom_ptr.value }); if (old_vaddr != atom_ptr.value) { sym.value = 0; esym.st_value = 0; @@ -1000,9 +1000,9 @@ fn updateTlv( const gpa = elf_file.base.comp.gpa; const mod = elf_file.base.comp.module.?; const decl = mod.declPtr(decl_index); - const decl_name = mod.intern_pool.stringToSlice(try decl.fullyQualifiedName(mod)); + const decl_name = try decl.fullyQualifiedName(mod); - log.debug("updateTlv {s} ({*})", .{ decl_name, decl }); + log.debug("updateTlv {} ({*})", .{ decl_name.fmt(&mod.intern_pool), decl }); const required_alignment = decl.getAlignment(mod); @@ -1014,7 +1014,7 @@ fn updateTlv( sym.output_section_index = shndx; atom_ptr.output_section_index = shndx; - sym.name_offset = try self.strtab.insert(gpa, decl_name); + sym.name_offset = try self.strtab.insert(gpa, decl_name.toSlice(&mod.intern_pool)); atom_ptr.flags.alive = true; atom_ptr.name_offset = sym.name_offset; esym.st_value = 0; @@ -1136,8 +1136,8 @@ pub fn updateDecl( if (decl.isExtern(mod)) { // Extern variable gets a .got entry only. const variable = decl.getOwnedVariable(mod).?; - const name = mod.intern_pool.stringToSlice(decl.name); - const lib_name = mod.intern_pool.stringToSliceUnwrap(variable.lib_name); + const name = decl.name.toSlice(&mod.intern_pool); + const lib_name = variable.lib_name.toSlice(&mod.intern_pool); const esym_index = try self.getGlobalSymbol(elf_file, name, lib_name); elf_file.symbol(self.symbol(esym_index)).flags.needs_got = true; return; @@ -1293,9 +1293,9 @@ pub fn lowerUnnamedConst( } const unnamed_consts = gop.value_ptr; const decl = mod.declPtr(decl_index); - const decl_name = mod.intern_pool.stringToSlice(try decl.fullyQualifiedName(mod)); + const decl_name = try decl.fullyQualifiedName(mod); const index = unnamed_consts.items.len; - const name = try std.fmt.allocPrint(gpa, "__unnamed_{s}_{d}", .{ decl_name, index }); + const name = try std.fmt.allocPrint(gpa, "__unnamed_{}_{d}", .{ decl_name.fmt(&mod.intern_pool), index }); defer gpa.free(name); const ty = val.typeOf(mod); const sym_index = switch (try self.lowerConst( @@ -1418,7 +1418,7 @@ pub fn updateExports( for (exports) |exp| { if (exp.opts.section.unwrap()) |section_name| { - if (!mod.intern_pool.stringEqlSlice(section_name, ".text")) { + if (!section_name.eqlSlice(".text", &mod.intern_pool)) { try mod.failed_exports.ensureUnusedCapacity(mod.gpa, 1); mod.failed_exports.putAssumeCapacityNoClobber(exp, try Module.ErrorMsg.create( gpa, @@ -1445,7 +1445,7 @@ pub fn updateExports( }, }; const stt_bits: u8 = @as(u4, @truncate(esym.st_info)); - const exp_name = mod.intern_pool.stringToSlice(exp.opts.name); + const exp_name = exp.opts.name.toSlice(&mod.intern_pool); const name_off = try self.strtab.insert(gpa, exp_name); const global_esym_index = if (metadata.@"export"(self, exp_name)) |exp_index| exp_index.* @@ -1476,9 +1476,9 @@ pub fn updateDeclLineNumber( defer tracy.end(); const decl = mod.declPtr(decl_index); - const decl_name = mod.intern_pool.stringToSlice(try decl.fullyQualifiedName(mod)); + const decl_name = try decl.fullyQualifiedName(mod); - log.debug("updateDeclLineNumber {s}{*}", .{ decl_name, decl }); + log.debug("updateDeclLineNumber {}{*}", .{ decl_name.fmt(&mod.intern_pool), decl }); if (self.dwarf) |*dw| { try dw.updateDeclLineNumber(mod, decl_index); @@ -1493,7 +1493,7 @@ pub fn deleteDeclExport( ) void { const metadata = self.decls.getPtr(decl_index) orelse return; const mod = elf_file.base.comp.module.?; - const exp_name = mod.intern_pool.stringToSlice(name); + const exp_name = name.toSlice(&mod.intern_pool); const esym_index = metadata.@"export"(self, exp_name) orelse return; log.debug("deleting export '{s}'", .{exp_name}); const esym = &self.global_esyms.items(.elf_sym)[esym_index.*]; diff --git a/src/link/MachO/ZigObject.zig b/src/link/MachO/ZigObject.zig index fb27c96525..bb788fcacc 100644 --- a/src/link/MachO/ZigObject.zig +++ b/src/link/MachO/ZigObject.zig @@ -716,8 +716,8 @@ pub fn updateDecl( if (decl.isExtern(mod)) { // Extern variable gets a __got entry only const variable = decl.getOwnedVariable(mod).?; - const name = mod.intern_pool.stringToSlice(decl.name); - const lib_name = mod.intern_pool.stringToSliceUnwrap(variable.lib_name); + const name = decl.name.toSlice(&mod.intern_pool); + const lib_name = variable.lib_name.toSlice(&mod.intern_pool); const index = try self.getGlobalSymbol(macho_file, name, lib_name); const actual_index = self.symbols.items[index]; macho_file.getSymbol(actual_index).flags.needs_got = true; @@ -786,9 +786,9 @@ fn updateDeclCode( const gpa = macho_file.base.comp.gpa; const mod = macho_file.base.comp.module.?; const decl = mod.declPtr(decl_index); - const decl_name = mod.intern_pool.stringToSlice(try decl.fullyQualifiedName(mod)); + const decl_name = try decl.fullyQualifiedName(mod); - log.debug("updateDeclCode {s}{*}", .{ decl_name, decl }); + log.debug("updateDeclCode {}{*}", .{ decl_name.fmt(&mod.intern_pool), decl }); const required_alignment = decl.getAlignment(mod); @@ -800,7 +800,7 @@ fn updateDeclCode( sym.out_n_sect = sect_index; atom.out_n_sect = sect_index; - sym.name = try self.strtab.insert(gpa, decl_name); + sym.name = try self.strtab.insert(gpa, decl_name.toSlice(&mod.intern_pool)); atom.flags.alive = true; atom.name = sym.name; nlist.n_strx = sym.name; @@ -819,7 +819,7 @@ fn updateDeclCode( if (need_realloc) { try atom.grow(macho_file); - log.debug("growing {s} from 0x{x} to 0x{x}", .{ decl_name, old_vaddr, atom.value }); + log.debug("growing {} from 0x{x} to 0x{x}", .{ decl_name.fmt(&mod.intern_pool), old_vaddr, atom.value }); if (old_vaddr != atom.value) { sym.value = 0; nlist.n_value = 0; @@ -870,23 +870,24 @@ fn updateTlv( ) !void { const mod = macho_file.base.comp.module.?; const decl = mod.declPtr(decl_index); - const decl_name = mod.intern_pool.stringToSlice(try decl.fullyQualifiedName(mod)); + const decl_name = try decl.fullyQualifiedName(mod); - log.debug("updateTlv {s} ({*})", .{ decl_name, decl }); + log.debug("updateTlv {} ({*})", .{ decl_name.fmt(&mod.intern_pool), decl }); + const decl_name_slice = decl_name.toSlice(&mod.intern_pool); const required_alignment = decl.getAlignment(mod); // 1. Lower TLV initializer const init_sym_index = try self.createTlvInitializer( macho_file, - decl_name, + decl_name_slice, required_alignment, sect_index, code, ); // 2. Create TLV descriptor - try self.createTlvDescriptor(macho_file, sym_index, init_sym_index, decl_name); + try self.createTlvDescriptor(macho_file, sym_index, init_sym_index, decl_name_slice); } fn createTlvInitializer( @@ -1073,9 +1074,9 @@ pub fn lowerUnnamedConst( } const unnamed_consts = gop.value_ptr; const decl = mod.declPtr(decl_index); - const decl_name = mod.intern_pool.stringToSlice(try decl.fullyQualifiedName(mod)); + const decl_name = try decl.fullyQualifiedName(mod); const index = unnamed_consts.items.len; - const name = try std.fmt.allocPrint(gpa, "__unnamed_{s}_{d}", .{ decl_name, index }); + const name = try std.fmt.allocPrint(gpa, "__unnamed_{}_{d}", .{ decl_name.fmt(&mod.intern_pool), index }); defer gpa.free(name); const sym_index = switch (try self.lowerConst( macho_file, @@ -1199,7 +1200,7 @@ pub fn updateExports( for (exports) |exp| { if (exp.opts.section.unwrap()) |section_name| { - if (!mod.intern_pool.stringEqlSlice(section_name, "__text")) { + if (!section_name.eqlSlice("__text", &mod.intern_pool)) { try mod.failed_exports.ensureUnusedCapacity(mod.gpa, 1); mod.failed_exports.putAssumeCapacityNoClobber(exp, try Module.ErrorMsg.create( gpa, @@ -1220,7 +1221,7 @@ pub fn updateExports( continue; } - const exp_name = mod.intern_pool.stringToSlice(exp.opts.name); + const exp_name = exp.opts.name.toSlice(&mod.intern_pool); const global_nlist_index = if (metadata.@"export"(self, exp_name)) |exp_index| exp_index.* else blk: { @@ -1349,13 +1350,12 @@ pub fn deleteDeclExport( decl_index: InternPool.DeclIndex, name: InternPool.NullTerminatedString, ) void { - const metadata = self.decls.getPtr(decl_index) orelse return; - const mod = macho_file.base.comp.module.?; - const exp_name = mod.intern_pool.stringToSlice(name); - const nlist_index = metadata.@"export"(self, exp_name) orelse return; - log.debug("deleting export '{s}'", .{exp_name}); + const metadata = self.decls.getPtr(decl_index) orelse return; + const nlist_index = metadata.@"export"(self, name.toSlice(&mod.intern_pool)) orelse return; + + log.debug("deleting export '{}'", .{name.fmt(&mod.intern_pool)}); const nlist = &self.symtab.items(.nlist)[nlist_index.*]; self.symtab.items(.size)[nlist_index.*] = 0; diff --git a/src/link/Plan9.zig b/src/link/Plan9.zig index d5900d2b16..323cc8c4a9 100644 --- a/src/link/Plan9.zig +++ b/src/link/Plan9.zig @@ -477,11 +477,11 @@ pub fn lowerUnnamedConst(self: *Plan9, val: Value, decl_index: InternPool.DeclIn } const unnamed_consts = gop.value_ptr; - const decl_name = mod.intern_pool.stringToSlice(try decl.fullyQualifiedName(mod)); + const decl_name = try decl.fullyQualifiedName(mod); const index = unnamed_consts.items.len; // name is freed when the unnamed const is freed - const name = try std.fmt.allocPrint(gpa, "__unnamed_{s}_{d}", .{ decl_name, index }); + const name = try std.fmt.allocPrint(gpa, "__unnamed_{}_{d}", .{ decl_name.fmt(&mod.intern_pool), index }); const sym_index = try self.allocateSymbolIndex(); const new_atom_idx = try self.createAtom(); @@ -529,7 +529,7 @@ pub fn updateDecl(self: *Plan9, mod: *Module, decl_index: InternPool.DeclIndex) const decl = mod.declPtr(decl_index); if (decl.isExtern(mod)) { - log.debug("found extern decl: {s}", .{mod.intern_pool.stringToSlice(decl.name)}); + log.debug("found extern decl: {}", .{decl.name.fmt(&mod.intern_pool)}); return; } const atom_idx = try self.seeDecl(decl_index); @@ -573,7 +573,7 @@ fn updateFinish(self: *Plan9, decl_index: InternPool.DeclIndex) !void { const sym: aout.Sym = .{ .value = undefined, // the value of stuff gets filled in in flushModule .type = atom.type, - .name = try gpa.dupe(u8, mod.intern_pool.stringToSlice(decl.name)), + .name = try gpa.dupe(u8, decl.name.toSlice(&mod.intern_pool)), }; if (atom.sym_index) |s| { @@ -1013,10 +1013,12 @@ fn addDeclExports( const atom = self.getAtom(metadata.index); for (exports) |exp| { - const exp_name = mod.intern_pool.stringToSlice(exp.opts.name); + const exp_name = exp.opts.name.toSlice(&mod.intern_pool); // plan9 does not support custom sections if (exp.opts.section.unwrap()) |section_name| { - if (!mod.intern_pool.stringEqlSlice(section_name, ".text") and !mod.intern_pool.stringEqlSlice(section_name, ".data")) { + if (!section_name.eqlSlice(".text", &mod.intern_pool) and + !section_name.eqlSlice(".data", &mod.intern_pool)) + { try mod.failed_exports.put(mod.gpa, exp, try Module.ErrorMsg.create( gpa, mod.declPtr(decl_index).srcLoc(mod), @@ -1129,19 +1131,21 @@ pub fn seeDecl(self: *Plan9, decl_index: InternPool.DeclIndex) !Atom.Index { // handle externs here because they might not get updateDecl called on them const mod = self.base.comp.module.?; const decl = mod.declPtr(decl_index); - const name = mod.intern_pool.stringToSlice(decl.name); if (decl.isExtern(mod)) { // this is a "phantom atom" - it is never actually written to disk, just convenient for us to store stuff about externs - if (std.mem.eql(u8, name, "etext")) { + if (decl.name.eqlSlice("etext", &mod.intern_pool)) { self.etext_edata_end_atom_indices[0] = atom_idx; - } else if (std.mem.eql(u8, name, "edata")) { + } else if (decl.name.eqlSlice("edata", &mod.intern_pool)) { self.etext_edata_end_atom_indices[1] = atom_idx; - } else if (std.mem.eql(u8, name, "end")) { + } else if (decl.name.eqlSlice("end", &mod.intern_pool)) { self.etext_edata_end_atom_indices[2] = atom_idx; } try self.updateFinish(decl_index); - log.debug("seeDecl(extern) for {s} (got_addr=0x{x})", .{ name, self.getAtom(atom_idx).getOffsetTableAddress(self) }); - } else log.debug("seeDecl for {s}", .{name}); + log.debug("seeDecl(extern) for {} (got_addr=0x{x})", .{ + decl.name.fmt(&mod.intern_pool), + self.getAtom(atom_idx).getOffsetTableAddress(self), + }); + } else log.debug("seeDecl for {}", .{decl.name.fmt(&mod.intern_pool)}); return atom_idx; } @@ -1393,7 +1397,7 @@ pub fn writeSyms(self: *Plan9, buf: *std.ArrayList(u8)) !void { const sym = self.syms.items[atom.sym_index.?]; try self.writeSym(writer, sym); if (self.base.comp.module.?.decl_exports.get(decl_index)) |exports| { - for (exports.items) |e| if (decl_metadata.getExport(self, ip.stringToSlice(e.opts.name))) |exp_i| { + for (exports.items) |e| if (decl_metadata.getExport(self, e.opts.name.toSlice(ip))) |exp_i| { try self.writeSym(writer, self.syms.items[exp_i]); }; } @@ -1440,7 +1444,7 @@ pub fn writeSyms(self: *Plan9, buf: *std.ArrayList(u8)) !void { const sym = self.syms.items[atom.sym_index.?]; try self.writeSym(writer, sym); if (self.base.comp.module.?.decl_exports.get(decl_index)) |exports| { - for (exports.items) |e| if (decl_metadata.getExport(self, ip.stringToSlice(e.opts.name))) |exp_i| { + for (exports.items) |e| if (decl_metadata.getExport(self, e.opts.name.toSlice(ip))) |exp_i| { const s = self.syms.items[exp_i]; if (mem.eql(u8, s.name, "_start")) self.entry_val = s.value; @@ -1483,25 +1487,25 @@ pub fn getDeclVAddr( reloc_info: link.File.RelocInfo, ) !u64 { const mod = self.base.comp.module.?; + const ip = &mod.intern_pool; const decl = mod.declPtr(decl_index); - log.debug("getDeclVAddr for {s}", .{mod.intern_pool.stringToSlice(decl.name)}); + log.debug("getDeclVAddr for {}", .{decl.name.fmt(ip)}); if (decl.isExtern(mod)) { - const extern_name = mod.intern_pool.stringToSlice(decl.name); - if (std.mem.eql(u8, extern_name, "etext")) { + if (decl.name.eqlSlice("etext", ip)) { try self.addReloc(reloc_info.parent_atom_index, .{ .target = undefined, .offset = reloc_info.offset, .addend = reloc_info.addend, .type = .special_etext, }); - } else if (std.mem.eql(u8, extern_name, "edata")) { + } else if (decl.name.eqlSlice("edata", ip)) { try self.addReloc(reloc_info.parent_atom_index, .{ .target = undefined, .offset = reloc_info.offset, .addend = reloc_info.addend, .type = .special_edata, }); - } else if (std.mem.eql(u8, extern_name, "end")) { + } else if (decl.name.eqlSlice("end", ip)) { try self.addReloc(reloc_info.parent_atom_index, .{ .target = undefined, .offset = reloc_info.offset, diff --git a/src/link/SpirV.zig b/src/link/SpirV.zig index 950e0375f0..0a90a2fd67 100644 --- a/src/link/SpirV.zig +++ b/src/link/SpirV.zig @@ -130,7 +130,7 @@ pub fn updateFunc(self: *SpirV, module: *Module, func_index: InternPool.Index, a const func = module.funcInfo(func_index); const decl = module.declPtr(func.owner_decl); - log.debug("lowering function {s}", .{module.intern_pool.stringToSlice(decl.name)}); + log.debug("lowering function {}", .{decl.name.fmt(&module.intern_pool)}); try self.object.updateFunc(module, func_index, air, liveness); } @@ -141,7 +141,7 @@ pub fn updateDecl(self: *SpirV, module: *Module, decl_index: InternPool.DeclInde } const decl = module.declPtr(decl_index); - log.debug("lowering declaration {s}", .{module.intern_pool.stringToSlice(decl.name)}); + log.debug("lowering declaration {}", .{decl.name.fmt(&module.intern_pool)}); try self.object.updateDecl(module, decl_index); } @@ -178,7 +178,7 @@ pub fn updateExports( for (exports) |exp| { try self.object.spv.declareEntryPoint( spv_decl_index, - mod.intern_pool.stringToSlice(exp.opts.name), + exp.opts.name.toSlice(&mod.intern_pool), execution_model, ); } @@ -227,14 +227,13 @@ pub fn flushModule(self: *SpirV, arena: Allocator, prog_node: *std.Progress.Node try error_info.appendSlice("zig_errors"); const mod = self.base.comp.module.?; - for (mod.global_error_set.keys()) |name_nts| { - const name = mod.intern_pool.stringToSlice(name_nts); + for (mod.global_error_set.keys()) |name| { // Errors can contain pretty much any character - to encode them in a string we must escape // them somehow. Easiest here is to use some established scheme, one which also preseves the // name if it contains no strange characters is nice for debugging. URI encoding fits the bill. // We're using : as separator, which is a reserved character. - const escaped_name = try std.Uri.escapeString(gpa, name); + const escaped_name = try std.Uri.escapeString(gpa, name.toSlice(&mod.intern_pool)); defer gpa.free(escaped_name); try error_info.writer().print(":{s}", .{escaped_name}); } diff --git a/src/link/Wasm/ZigObject.zig b/src/link/Wasm/ZigObject.zig index 9bf7718d2b..bcd98c3d3c 100644 --- a/src/link/Wasm/ZigObject.zig +++ b/src/link/Wasm/ZigObject.zig @@ -258,8 +258,8 @@ pub fn updateDecl( if (decl.isExtern(mod)) { const variable = decl.getOwnedVariable(mod).?; - const name = mod.intern_pool.stringToSlice(decl.name); - const lib_name = mod.intern_pool.stringToSliceUnwrap(variable.lib_name); + const name = decl.name.toSlice(&mod.intern_pool); + const lib_name = variable.lib_name.toSlice(&mod.intern_pool); return zig_object.addOrUpdateImport(wasm_file, name, atom.sym_index, lib_name, null); } const val = if (decl.val.getVariable(mod)) |variable| Value.fromInterned(variable.init) else decl.val; @@ -341,8 +341,8 @@ fn finishUpdateDecl( const atom_index = decl_info.atom; const atom = wasm_file.getAtomPtr(atom_index); const sym = zig_object.symbol(atom.sym_index); - const full_name = mod.intern_pool.stringToSlice(try decl.fullyQualifiedName(mod)); - sym.name = try zig_object.string_table.insert(gpa, full_name); + const full_name = try decl.fullyQualifiedName(mod); + sym.name = try zig_object.string_table.insert(gpa, full_name.toSlice(&mod.intern_pool)); try atom.code.appendSlice(gpa, code); atom.size = @intCast(code.len); @@ -382,7 +382,7 @@ fn finishUpdateDecl( // Will be freed upon freeing of decl or after cleanup of Wasm binary. const full_segment_name = try std.mem.concat(gpa, u8, &.{ segment_name, - full_name, + full_name.toSlice(&mod.intern_pool), }); errdefer gpa.free(full_segment_name); sym.tag = .data; @@ -427,9 +427,9 @@ pub fn getOrCreateAtomForDecl(zig_object: *ZigObject, wasm_file: *Wasm, decl_ind gop.value_ptr.* = .{ .atom = try wasm_file.createAtom(sym_index, zig_object.index) }; const mod = wasm_file.base.comp.module.?; const decl = mod.declPtr(decl_index); - const full_name = mod.intern_pool.stringToSlice(try decl.fullyQualifiedName(mod)); + const full_name = try decl.fullyQualifiedName(mod); const sym = zig_object.symbol(sym_index); - sym.name = try zig_object.string_table.insert(gpa, full_name); + sym.name = try zig_object.string_table.insert(gpa, full_name.toSlice(&mod.intern_pool)); } return gop.value_ptr.atom; } @@ -478,9 +478,9 @@ pub fn lowerUnnamedConst(zig_object: *ZigObject, wasm_file: *Wasm, val: Value, d const parent_atom_index = try zig_object.getOrCreateAtomForDecl(wasm_file, decl_index); const parent_atom = wasm_file.getAtom(parent_atom_index); const local_index = parent_atom.locals.items.len; - const fqn = mod.intern_pool.stringToSlice(try decl.fullyQualifiedName(mod)); - const name = try std.fmt.allocPrintZ(gpa, "__unnamed_{s}_{d}", .{ - fqn, local_index, + const fqn = try decl.fullyQualifiedName(mod); + const name = try std.fmt.allocPrintZ(gpa, "__unnamed_{}_{d}", .{ + fqn.fmt(&mod.intern_pool), local_index, }); defer gpa.free(name); @@ -623,11 +623,11 @@ fn populateErrorNameTable(zig_object: *ZigObject, wasm_file: *Wasm) !void { // Addend for each relocation to the table var addend: u32 = 0; const mod = wasm_file.base.comp.module.?; - for (mod.global_error_set.keys()) |error_name_nts| { + for (mod.global_error_set.keys()) |error_name| { const atom = wasm_file.getAtomPtr(atom_index); - const error_name = mod.intern_pool.stringToSlice(error_name_nts); - const len: u32 = @intCast(error_name.len + 1); // names are 0-terminated + const error_name_slice = error_name.toSlice(&mod.intern_pool); + const len: u32 = @intCast(error_name_slice.len + 1); // names are 0-terminated const slice_ty = Type.slice_const_u8_sentinel_0; const offset = @as(u32, @intCast(atom.code.items.len)); @@ -646,10 +646,9 @@ fn populateErrorNameTable(zig_object: *ZigObject, wasm_file: *Wasm) !void { // as we updated the error name table, we now store the actual name within the names atom try names_atom.code.ensureUnusedCapacity(gpa, len); - names_atom.code.appendSliceAssumeCapacity(error_name); - names_atom.code.appendAssumeCapacity(0); + names_atom.code.appendSliceAssumeCapacity(error_name_slice[0..len]); - log.debug("Populated error name: '{s}'", .{error_name}); + log.debug("Populated error name: '{}'", .{error_name.fmt(&mod.intern_pool)}); } names_atom.size = addend; zig_object.error_names_atom = names_atom_index; @@ -833,8 +832,7 @@ pub fn deleteDeclExport( ) void { const mod = wasm_file.base.comp.module.?; const decl_info = zig_object.decls_map.getPtr(decl_index) orelse return; - const export_name = mod.intern_pool.stringToSlice(name); - if (decl_info.@"export"(zig_object, export_name)) |sym_index| { + if (decl_info.@"export"(zig_object, name.toSlice(&mod.intern_pool))) |sym_index| { const sym = zig_object.symbol(sym_index); decl_info.deleteExport(sym_index); std.debug.assert(zig_object.global_syms.remove(sym.name)); @@ -864,10 +862,10 @@ pub fn updateExports( const atom = wasm_file.getAtom(atom_index); const atom_sym = atom.symbolLoc().getSymbol(wasm_file).*; const gpa = mod.gpa; - log.debug("Updating exports for decl '{s}'", .{mod.intern_pool.stringToSlice(decl.name)}); + log.debug("Updating exports for decl '{}'", .{decl.name.fmt(&mod.intern_pool)}); for (exports) |exp| { - if (mod.intern_pool.stringToSliceUnwrap(exp.opts.section)) |section| { + if (exp.opts.section.toSlice(&mod.intern_pool)) |section| { try mod.failed_exports.putNoClobber(gpa, exp, try Module.ErrorMsg.create( gpa, decl.srcLoc(mod), @@ -877,10 +875,8 @@ pub fn updateExports( continue; } - const export_string = mod.intern_pool.stringToSlice(exp.opts.name); - const sym_index = if (decl_info.@"export"(zig_object, export_string)) |idx| - idx - else index: { + const export_string = exp.opts.name.toSlice(&mod.intern_pool); + const sym_index = if (decl_info.@"export"(zig_object, export_string)) |idx| idx else index: { const sym_index = try zig_object.allocateSymbol(gpa); try decl_info.appendExport(gpa, sym_index); break :index sym_index; @@ -1089,9 +1085,9 @@ pub fn createDebugSectionForIndex(zig_object: *ZigObject, wasm_file: *Wasm, inde pub fn updateDeclLineNumber(zig_object: *ZigObject, mod: *Module, decl_index: InternPool.DeclIndex) !void { if (zig_object.dwarf) |*dw| { const decl = mod.declPtr(decl_index); - const decl_name = mod.intern_pool.stringToSlice(try decl.fullyQualifiedName(mod)); + const decl_name = try decl.fullyQualifiedName(mod); - log.debug("updateDeclLineNumber {s}{*}", .{ decl_name, decl }); + log.debug("updateDeclLineNumber {}{*}", .{ decl_name.fmt(&mod.intern_pool), decl }); try dw.updateDeclLineNumber(mod, decl_index); } } diff --git a/src/mutable_value.zig b/src/mutable_value.zig index 327c354108..f16a8fd3f9 100644 --- a/src/mutable_value.zig +++ b/src/mutable_value.zig @@ -73,7 +73,7 @@ pub const MutableValue = union(enum) { } }), .bytes => |b| try ip.get(gpa, .{ .aggregate = .{ .ty = b.ty, - .storage = .{ .bytes = b.data }, + .storage = .{ .bytes = try ip.getOrPutString(gpa, b.data, .maybe_embedded_nulls) }, } }), .aggregate => |a| { const elems = try arena.alloc(InternPool.Index, a.elems.len); @@ -158,18 +158,18 @@ pub const MutableValue = union(enum) { }, .aggregate => |agg| switch (agg.storage) { .bytes => |bytes| { - assert(bytes.len == ip.aggregateTypeLenIncludingSentinel(agg.ty)); + const len: usize = @intCast(ip.aggregateTypeLenIncludingSentinel(agg.ty)); assert(ip.childType(agg.ty) == .u8_type); if (allow_bytes) { - const arena_bytes = try arena.alloc(u8, bytes.len); - @memcpy(arena_bytes, bytes); + const arena_bytes = try arena.alloc(u8, len); + @memcpy(arena_bytes, bytes.toSlice(len, ip)); mv.* = .{ .bytes = .{ .ty = agg.ty, .data = arena_bytes, } }; } else { - const mut_elems = try arena.alloc(MutableValue, bytes.len); - for (bytes, mut_elems) |b, *mut_elem| { + const mut_elems = try arena.alloc(MutableValue, len); + for (bytes.toSlice(len, ip), mut_elems) |b, *mut_elem| { mut_elem.* = .{ .interned = try ip.get(gpa, .{ .int = .{ .ty = .u8_type, .storage = .{ .u64 = b }, diff --git a/src/print_value.zig b/src/print_value.zig index 21a322cd63..c021b011c1 100644 --- a/src/print_value.zig +++ b/src/print_value.zig @@ -204,26 +204,35 @@ fn printAggregate( try writer.writeAll(" }"); return; }, - .Array => if (aggregate.storage == .bytes and aggregate.storage.bytes.len > 0) { - const skip_terminator = aggregate.storage.bytes[aggregate.storage.bytes.len - 1] == 0; - const bytes = if (skip_terminator) b: { - break :b aggregate.storage.bytes[0 .. aggregate.storage.bytes.len - 1]; - } else aggregate.storage.bytes; - try writer.print("\"{}\"", .{std.zig.fmtEscapes(bytes)}); - if (!is_ref) try writer.writeAll(".*"); - return; - } else if (ty.arrayLen(zcu) == 0) { - if (is_ref) try writer.writeByte('&'); - return writer.writeAll(".{}"); - } else if (ty.arrayLen(zcu) == 1) one_byte_str: { - // The repr isn't `bytes`, but we might still be able to print this as a string - if (ty.childType(zcu).toIntern() != .u8_type) break :one_byte_str; - const elem_val = Value.fromInterned(aggregate.storage.values()[0]); - if (elem_val.isUndef(zcu)) break :one_byte_str; - const byte = elem_val.toUnsignedInt(zcu); - try writer.print("\"{}\"", .{std.zig.fmtEscapes(&.{@intCast(byte)})}); - if (!is_ref) try writer.writeAll(".*"); - return; + .Array => { + switch (aggregate.storage) { + .bytes => |bytes| string: { + const len = ty.arrayLenIncludingSentinel(zcu); + if (len == 0) break :string; + const slice = bytes.toSlice(if (bytes.at(len - 1, ip) == 0) len - 1 else len, ip); + try writer.print("\"{}\"", .{std.zig.fmtEscapes(slice)}); + if (!is_ref) try writer.writeAll(".*"); + return; + }, + .elems, .repeated_elem => {}, + } + switch (ty.arrayLen(zcu)) { + 0 => { + if (is_ref) try writer.writeByte('&'); + return writer.writeAll(".{}"); + }, + 1 => one_byte_str: { + // The repr isn't `bytes`, but we might still be able to print this as a string + if (ty.childType(zcu).toIntern() != .u8_type) break :one_byte_str; + const elem_val = Value.fromInterned(aggregate.storage.values()[0]); + if (elem_val.isUndef(zcu)) break :one_byte_str; + const byte = elem_val.toUnsignedInt(zcu); + try writer.print("\"{}\"", .{std.zig.fmtEscapes(&.{@intCast(byte)})}); + if (!is_ref) try writer.writeAll(".*"); + return; + }, + else => {}, + } }, .Vector => if (ty.arrayLen(zcu) == 0) { if (is_ref) try writer.writeByte('&'); diff --git a/src/type.zig b/src/type.zig index 8352552463..264125c6d0 100644 --- a/src/type.zig +++ b/src/type.zig @@ -490,18 +490,10 @@ pub const Type = struct { }; }, .anyframe_type => true, - .array_type => |array_type| { - if (array_type.sentinel != .none) { - return Type.fromInterned(array_type.child).hasRuntimeBitsAdvanced(mod, ignore_comptime_only, strat); - } else { - return array_type.len > 0 and - try Type.fromInterned(array_type.child).hasRuntimeBitsAdvanced(mod, ignore_comptime_only, strat); - } - }, - .vector_type => |vector_type| { - return vector_type.len > 0 and - try Type.fromInterned(vector_type.child).hasRuntimeBitsAdvanced(mod, ignore_comptime_only, strat); - }, + .array_type => |array_type| return array_type.lenIncludingSentinel() > 0 and + try Type.fromInterned(array_type.child).hasRuntimeBitsAdvanced(mod, ignore_comptime_only, strat), + .vector_type => |vector_type| return vector_type.len > 0 and + try Type.fromInterned(vector_type.child).hasRuntimeBitsAdvanced(mod, ignore_comptime_only, strat), .opt_type => |child| { const child_ty = Type.fromInterned(child); if (child_ty.isNoReturn(mod)) { @@ -1240,7 +1232,7 @@ pub const Type = struct { .anyframe_type => return AbiSizeAdvanced{ .scalar = @divExact(target.ptrBitWidth(), 8) }, .array_type => |array_type| { - const len = array_type.len + @intFromBool(array_type.sentinel != .none); + const len = array_type.lenIncludingSentinel(); if (len == 0) return .{ .scalar = 0 }; switch (try Type.fromInterned(array_type.child).abiSizeAdvanced(mod, strat)) { .scalar => |elem_size| return .{ .scalar = len * elem_size }, @@ -1577,7 +1569,7 @@ pub const Type = struct { .anyframe_type => return target.ptrBitWidth(), .array_type => |array_type| { - const len = array_type.len + @intFromBool(array_type.sentinel != .none); + const len = array_type.lenIncludingSentinel(); if (len == 0) return 0; const elem_ty = Type.fromInterned(array_type.child); const elem_size = @max( @@ -1731,7 +1723,7 @@ pub const Type = struct { .struct_type => ip.loadStructType(ty.toIntern()).haveLayout(ip), .union_type => ip.loadUnionType(ty.toIntern()).haveLayout(ip), .array_type => |array_type| { - if ((array_type.len + @intFromBool(array_type.sentinel != .none)) == 0) return true; + if (array_type.lenIncludingSentinel() == 0) return true; return Type.fromInterned(array_type.child).layoutIsResolved(mod); }, .opt_type => |child| Type.fromInterned(child).layoutIsResolved(mod), From b66fd87a4c9f1d1ec570f204e270f3da4c4e6707 Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Sat, 6 Apr 2024 19:13:57 -0400 Subject: [PATCH 08/11] update zig1.wasm Fixes cbe bugs affecting bootstrap. --- stage1/zig1.wasm | Bin 2780069 -> 2770790 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/stage1/zig1.wasm b/stage1/zig1.wasm index 5005c8c79abde1c7cee6617069fa6cdf233f6407..c2cfd2fde4b90ebeb7a9a17b16b97f2d492bcc1e 100644 GIT binary patch delta 959719 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
HjS$}2gPYb(>$2 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%0Av;Vf51v2I~9 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

9G-VqdSu%Xoo8*wHKz_duV%;_@Vt^K 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

^?1S8I&m4r9nre4A*c=jA`@MrrGxB-E!LaYC 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%0Ak!&5Ym80S3@!!_18F4su`yK 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

&!h$K~6bq=rdX@1RqzLjK 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

gF6ri4NE&D;Z>@X*E=`C% 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

JUt!_ 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 From 9875ab4ee823b4cbf93fed826eeb03900b2046ff Mon Sep 17 00:00:00 2001 From: Jakub Konka Date: Mon, 8 Apr 2024 20:54:54 +0200 Subject: [PATCH 09/11] link/elf: actually emit DYN when targetting haiku --- src/link/Elf.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/link/Elf.zig b/src/link/Elf.zig index f5f9a073e5..1b270d1d0e 100644 --- a/src/link/Elf.zig +++ b/src/link/Elf.zig @@ -2928,7 +2928,7 @@ pub fn writeElfHeader(self: *Elf) !void { const output_mode = comp.config.output_mode; const link_mode = comp.config.link_mode; const elf_type: elf.ET = switch (output_mode) { - .Exe => if (comp.config.pie) .DYN else .EXEC, + .Exe => if (comp.config.pie or target.os.tag == .haiku) .DYN else .EXEC, .Obj => .REL, .Lib => switch (link_mode) { .static => @as(elf.ET, .REL), From 84a0110464eba4d5e3669647395e1a4ea7648683 Mon Sep 17 00:00:00 2001 From: Jakub Konka Date: Mon, 8 Apr 2024 22:09:49 +0200 Subject: [PATCH 10/11] link/elf: handle symbols to begin/end of .eh_frame section --- src/link/Elf/Symbol.zig | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/link/Elf/Symbol.zig b/src/link/Elf/Symbol.zig index 0ddf19cd05..9db17f2f4f 100644 --- a/src/link/Elf/Symbol.zig +++ b/src/link/Elf/Symbol.zig @@ -105,6 +105,29 @@ pub fn address(symbol: Symbol, opts: struct { plt: bool = true }, elf_file: *Elf return symbol.pltAddress(elf_file); } if (symbol.atom(elf_file)) |atom_ptr| { + if (!atom_ptr.flags.alive) { + if (mem.eql(u8, atom_ptr.name(elf_file), ".eh_frame")) { + const sym_name = symbol.name(elf_file); + if (mem.startsWith(u8, sym_name, "__EH_FRAME_BEGIN__") or + mem.startsWith(u8, sym_name, "__EH_FRAME_LIST__") or + mem.startsWith(u8, sym_name, ".eh_frame_seg") or + symbol.elfSym(elf_file).st_type() == elf.STT_SECTION) + { + return elf_file.shdrs.items[elf_file.eh_frame_section_index.?].sh_addr; + } + + if (mem.startsWith(u8, sym_name, "__FRAME_END__") or + mem.startsWith(u8, sym_name, "__EH_FRAME_LIST_END__")) + { + const shdr = elf_file.shdrs.items[elf_file.eh_frame_section_index.?]; + return shdr.sh_addr + shdr.sh_size; + } + + // TODO I think we potentially should error here + } + + return 0; + } return atom_ptr.address(elf_file) + symbol.value; } return symbol.value; @@ -432,6 +455,7 @@ pub const Index = u32; const assert = std.debug.assert; const elf = std.elf; +const mem = std.mem; const std = @import("std"); const synthetic_sections = @import("synthetic_sections.zig"); From bc0e2089bc9408fa76716652a8ede5b5b44a817a Mon Sep 17 00:00:00 2001 From: Jakub Konka Date: Mon, 8 Apr 2024 22:20:49 +0200 Subject: [PATCH 11/11] link/elf: do not set soname unless only dynlib (reverts for haiku exec) --- src/link/Elf.zig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/link/Elf.zig b/src/link/Elf.zig index 1b270d1d0e..03451d140e 100644 --- a/src/link/Elf.zig +++ b/src/link/Elf.zig @@ -1461,7 +1461,7 @@ fn dumpArgv(self: *Elf, comp: *Compilation) !void { } } - if (self.isEffectivelyDynLib()) { + if (self.base.isDynLib()) { if (self.soname) |name| { try argv.append("-soname"); try argv.append(name);

uH59rbcSGw*yH>QOI>QyEKewI=A2sv! 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