Function finishBuild [src]

Prototype

pub fn finishBuild(ws: *WebServer, opts: struct { fuzz: bool, }) void

Parameters

ws: *WebServeropts: struct { fuzz: bool, }

Source

pub fn finishBuild(ws: *WebServer, opts: struct { fuzz: bool, }) void { if (opts.fuzz) { switch (builtin.os.tag) { // Current implementation depends on two things that need to be ported to Windows: // * Memory-mapping to share data between the fuzzer and build runner. // * COFF/PE support added to `std.debug.Info` (it needs a batching API for resolving // many addresses to source locations). .windows => std.process.fatal("--fuzz not yet implemented for {s}", .{@tagName(builtin.os.tag)}), else => {}, } if (@bitSizeOf(usize) != 64) { // Current implementation depends on posix.mmap()'s second parameter, `length: usize`, // being compatible with `std.fs.getEndPos() u64`'s return value. This is not the case // on 32-bit platforms. // Affects or affected by issues #5185, #22523, and #22464. std.process.fatal("--fuzz not yet implemented on {d}-bit platforms", .{@bitSizeOf(usize)}); } assert(ws.fuzz == null); ws.build_status.store(.fuzz_init, .monotonic); ws.notifyUpdate(); ws.fuzz = Fuzz.init(ws) catch |err| std.process.fatal("failed to start fuzzer: {s}", .{@errorName(err)}); ws.fuzz.?.start(); } ws.build_status.store(if (ws.watch) .watching else .idle, .monotonic); ws.notifyUpdate(); }