diff --git a/src/Compilation.zig b/src/Compilation.zig index 6e97e9ca1a50f9038160e65e2531dbd908846a19..6599e8c34085ae331173e65edf15112e090c104d 100644 --- a/src/Compilation.zig +++ b/src/Compilation.zig @@ -2828,11 +2828,6 @@ pub fn update(comp: *Compilation, main_progress_node: std.Progress.Node) UpdateE }); }, }, - error.InvalidFormat => return comp.setMiscFailure( - .check_whole_cache, - "failed to check cache: invalid manifest file format", - .{}, - ), }; if (status == .hit and !ignore_hit) { // In this case the cache hit contains the full set of file system inputs. Nice! @@ -2845,7 +2840,7 @@ pub fn update(comp: *Compilation, main_progress_node: std.Progress.Node) UpdateE comp.last_update_was_cache_hit = true; log.debug("CacheMode.whole cache hit for {s}", .{comp.root_name}); - const bin_digest = man.finalBin(); + const bin_digest = man.hitDigest(); comp.digest = bin_digest; @@ -3054,7 +3049,7 @@ pub fn update(comp: *Compilation, main_progress_node: std.Progress.Node) UpdateE try man.populateOtherManifest(pwc.manifest, pwc.prefix_map); } - const bin_digest = man.finalBin(); + const bin_digest = man.missDigest(); const hex_digest = Cache.binToHex(bin_digest); // Work around windows `AccessDenied` if any files within this @@ -5125,9 +5120,9 @@ pub fn translateC( var reader: std.Io.Reader = .fixed(stdout); const MessageHeader = std.zig.Server.Message.Header; const header = reader.takeStruct(MessageHeader, .little) catch |err| - fatal("unable to read translate-c MessageHeader: {s}", .{@errorName(err)}); + fatal("unable to read translate-c MessageHeader: {t}", .{err}); const body = reader.take(header.bytes_len) catch |err| - fatal("unable to read {}-byte translate-c message body: {s}", .{ header.bytes_len, @errorName(err) }); + fatal("unable to read {d}-byte translate-c message body: {t}", .{ header.bytes_len, err }); switch (header.tag) { .error_bundle => { const error_bundle = try std.zig.Server.allocErrorBundle(gpa, body); @@ -5137,11 +5132,11 @@ pub fn translateC( .errors = error_bundle, }; }, - else => fatal("unexpected message type received from translate-c: {s}", .{@tagName(header.tag)}), + else => fatal("unexpected message type received from translate-c: {t}", .{header.tag}), } } - const bin_digest = man.finalBin(); + const bin_digest = man.missDigest(); const hex_digest = Cache.binToHex(bin_digest); const o_sub_path = "o" ++ fs.path.sep_str ++ hex_digest; @@ -5878,10 +5873,10 @@ fn updateWin32Resource(comp: *Compilation, win32_resource: *Win32Resource, win32 const rc_basename = try std.fmt.allocPrint(arena, "{s}.rc", .{src_basename}); const res_basename = try std.fmt.allocPrint(arena, "{s}.res", .{src_basename}); - const digest = if (.hit == try man.check(child_progress_node)) man.final() else blk: { + const digest = if (.hit == try man.check(child_progress_node)) man.hitDigestHex() else blk: { // The digest only depends on the .manifest file, so we can // get the digest now and write the .res directly to the cache - const digest = man.final(); + const digest = man.missDigestHex(); const o_sub_path = try fs.path.join(arena, &.{ "o", &digest }); var o_dir = try comp.dirs.local_cache.handle.createDirPathOpen(io, o_sub_path, .{}); @@ -5970,7 +5965,7 @@ fn updateWin32Resource(comp: *Compilation, win32_resource: *Win32Resource, win32 const rc_basename_noext = src_basename[0 .. src_basename.len - fs.path.extension(src_basename).len]; - const digest = if (.hit == try man.check(child_progress_node)) man.final() else blk: { + const digest = if (.hit == try man.check(child_progress_node)) man.hitDigestHex() else blk: { var zig_cache_tmp_dir = try comp.dirs.local_cache.handle.createDirPathOpen(io, "tmp", .{}); defer zig_cache_tmp_dir.close(io); @@ -6042,7 +6037,7 @@ fn updateWin32Resource(comp: *Compilation, win32_resource: *Win32Resource, win32 } // Rename into place. - const digest = man.final(); + const digest = man.missDigestHex(); const o_sub_path = try fs.path.join(arena, &[_][]const u8{ "o", &digest }); var o_dir = try comp.dirs.local_cache.handle.createDirPathOpen(io, o_sub_path, .{}); defer o_dir.close(io); diff --git a/src/libs/mingw.zig b/src/libs/mingw.zig index f6593e64af7dc6f48ff2c450db77ce7c792c19eb..24a6ac4e12e4fe0749dde875bf88f8b8a574e4e0 100644 --- a/src/libs/mingw.zig +++ b/src/libs/mingw.zig @@ -266,13 +266,9 @@ pub fn buildImportLib(comp: *Compilation, lib_name: []const u8, prog_node: std.P }, }, error.OutOfMemory, error.Canceled => |e| return e, - error.InvalidFormat => { - comp.setMiscFailure(.windows_import_lib, "checking cache failed: invalid manifest file format", .{}); - return error.AlreadyReported; - }, }; if (status == .hit) { - const digest = man.final(); + const digest = man.hitDigestHex(); const sub_path = try std.fs.path.join(gpa, &.{ "o", &digest, final_lib_basename }); errdefer gpa.free(sub_path); @@ -291,7 +287,7 @@ pub fn buildImportLib(comp: *Compilation, lib_name: []const u8, prog_node: std.P return crt_file_path; } - const digest = man.final(); + const digest = man.missDigestHex(); const o_sub_path = try std.fs.path.join(arena, &[_][]const u8{ "o", &digest }); var o_dir = try comp.dirs.global_cache.handle.createDirPathOpen(io, o_sub_path, .{}); defer o_dir.close(io); diff --git a/src/main.zig b/src/main.zig index d7f6fe574c4c228166cf6fc90b00f46cd0cd6501..6bcb22f26e15180f6526022a4da12ea7393cbed8 100644 --- a/src/main.zig +++ b/src/main.zig @@ -4879,7 +4879,7 @@ fn cmdTranslateC( fatal("unable to process {q}: {t}", .{ c_source_file.src_path, err }); const result: Compilation.TranslateCResult = if (.hit == try man.check(prog_node)) .{ - .digest = man.finalBin(), + .digest = man.hitDigest(), .cache_hit = true, .errors = std.zig.ErrorBundle.empty, } else result: {