| author | |
| committer | |
| log | 8023f3dcebff06cbf3563bdd09b07462ed43509f |
| tree | db8a18f4680311f879f93ee25fbf32adb438691c |
| parent | e4181972470c29f83480fdd6d5a465e1f8d14d7b |
perhaps these APIs have the defaults backwards, eh?6 files changed, 35 insertions(+), 9 deletions(-)
lib/std/Io/Reader.zig+4| ... | ... | @@ -877,6 +877,8 @@ pub fn peekDelimiterExclusive(r: *Reader, delimiter: u8) DelimiterError![]u8 { |
| 877 | 877 | /// Appends to `w` contents by reading from the stream until `delimiter` is |
| 878 | 878 | /// found. Does not write the delimiter itself. |
| 879 | 879 | /// |
| 880 | /// Does not discard the delimiter from the `Reader`. | |
| 881 | /// | |
| 880 | 882 | /// Returns number of bytes streamed, which may be zero, or error.EndOfStream |
| 881 | 883 | /// if the delimiter was not found. |
| 882 | 884 | /// |
| ... | ... | @@ -930,6 +932,8 @@ pub const StreamDelimiterLimitError = error{ |
| 930 | 932 | /// Appends to `w` contents by reading from the stream until `delimiter` is found. |
| 931 | 933 | /// Does not write the delimiter itself. |
| 932 | 934 | /// |
| 935 | /// Does not discard the delimiter from the `Reader`. | |
| 936 | /// | |
| 933 | 937 | /// Returns number of bytes streamed, which may be zero. End of stream can be |
| 934 | 938 | /// detected by checking if the next byte in the stream is the delimiter. |
| 935 | 939 | /// |
lib/std/debug/Pdb.zig+7| ... | ... | @@ -2,6 +2,7 @@ const std = @import("../std.zig"); |
| 2 | 2 | const File = std.fs.File; |
| 3 | 3 | const Allocator = std.mem.Allocator; |
| 4 | 4 | const pdb = std.pdb; |
| 5 | const assert = std.debug.assert; | |
| 5 | 6 | |
| 6 | 7 | const Pdb = @This(); |
| 7 | 8 | |
| ... | ... | @@ -94,11 +95,15 @@ pub fn parseDbiStream(self: *Pdb) !void { |
| 94 | 95 | var module_name: std.Io.Writer.Allocating = .init(gpa); |
| 95 | 96 | defer module_name.deinit(); |
| 96 | 97 | this_record_len += try reader.streamDelimiterLimit(&module_name.writer, 0, .limited(1024)); |
| 98 | assert(reader.buffered()[0] == 0); // TODO change streamDelimiterLimit API | |
| 99 | reader.toss(1); | |
| 97 | 100 | this_record_len += 1; |
| 98 | 101 | |
| 99 | 102 | var obj_file_name: std.Io.Writer.Allocating = .init(gpa); |
| 100 | 103 | defer obj_file_name.deinit(); |
| 101 | 104 | this_record_len += try reader.streamDelimiterLimit(&obj_file_name.writer, 0, .limited(1024)); |
| 105 | assert(reader.buffered()[0] == 0); // TODO change streamDelimiterLimit API | |
| 106 | reader.toss(1); | |
| 102 | 107 | this_record_len += 1; |
| 103 | 108 | |
| 104 | 109 | if (this_record_len % 4 != 0) { |
| ... | ... | @@ -303,6 +308,8 @@ pub fn getLineNumberInfo(self: *Pdb, module: *Module, address: u64) !std.debug.S |
| 303 | 308 | var source_file_name: std.Io.Writer.Allocating = .init(gpa); |
| 304 | 309 | defer source_file_name.deinit(); |
| 305 | 310 | _ = try adapted_reader.new_interface.streamDelimiterLimit(&source_file_name.writer, 0, .limited(1024)); |
| 311 | assert(adapted_reader.new_interface.buffered()[0] == 0); // TODO change streamDelimiterLimit API | |
| 312 | adapted_reader.new_interface.toss(1); | |
| 306 | 313 | break :s try source_file_name.toOwnedSlice(); |
| 307 | 314 | }; |
| 308 | 315 | errdefer gpa.free(source_file_name); |
src/Compilation.zig+10-9| ... | ... | @@ -5893,15 +5893,16 @@ fn buildGlibcCrtFile(comp: *Compilation, crt_file: glibc.CrtFile, prog_node: std |
| 5893 | 5893 | |
| 5894 | 5894 | fn buildGlibcSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) void { |
| 5895 | 5895 | defer comp.link_task_queue.finishPrelinkItem(comp); |
| 5896 | if (glibc.buildSharedObjects(comp, prog_node)) |_| { | |
| 5897 | // The job should no longer be queued up since it succeeded. | |
| 5898 | comp.queued_jobs.glibc_shared_objects = false; | |
| 5899 | } else |err| switch (err) { | |
| 5900 | error.AlreadyReported => return, | |
| 5901 | else => comp.lockAndSetMiscFailure(.glibc_shared_objects, "unable to build glibc shared objects: {s}", .{ | |
| 5902 | @errorName(err), | |
| 5903 | }), | |
| 5904 | } | |
| 5896 | glibc.buildSharedObjects(comp, prog_node) catch unreachable; | |
| 5897 | //if (glibc.buildSharedObjects(comp, prog_node)) |_| { | |
| 5898 | // // The job should no longer be queued up since it succeeded. | |
| 5899 | // comp.queued_jobs.glibc_shared_objects = false; | |
| 5900 | //} else |err| switch (err) { | |
| 5901 | // error.AlreadyReported => return, | |
| 5902 | // else => comp.lockAndSetMiscFailure(.glibc_shared_objects, "unable to build glibc shared objects: {s}", .{ | |
| 5903 | // @errorName(err), | |
| 5904 | // }), | |
| 5905 | //} | |
| 5905 | 5906 | } |
| 5906 | 5907 | |
| 5907 | 5908 | fn buildFreeBSDCrtFile(comp: *Compilation, crt_file: freebsd.CrtFile, prog_node: std.Progress.Node) void { |
src/libs/freebsd.zig+6| ... | ... | @@ -548,6 +548,8 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye |
| 548 | 548 | const sym_name = opt_symbol_name orelse n: { |
| 549 | 549 | sym_name_buf.clearRetainingCapacity(); |
| 550 | 550 | _ = try inc_reader.streamDelimiter(&sym_name_buf.writer, 0); |
| 551 | assert(inc_reader.buffered()[0] == 0); // TODO change streamDelimiter API | |
| 552 | inc_reader.toss(1); | |
| 551 | 553 | |
| 552 | 554 | opt_symbol_name = sym_name_buf.written(); |
| 553 | 555 | versions.unsetAll(); |
| ... | ... | @@ -694,6 +696,8 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye |
| 694 | 696 | const sym_name = opt_symbol_name orelse n: { |
| 695 | 697 | sym_name_buf.clearRetainingCapacity(); |
| 696 | 698 | _ = try inc_reader.streamDelimiter(&sym_name_buf.writer, 0); |
| 699 | assert(inc_reader.buffered()[0] == 0); // TODO change streamDelimiter API | |
| 700 | inc_reader.toss(1); | |
| 697 | 701 | |
| 698 | 702 | opt_symbol_name = sym_name_buf.written(); |
| 699 | 703 | versions.unsetAll(); |
| ... | ... | @@ -830,6 +834,8 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye |
| 830 | 834 | const sym_name = opt_symbol_name orelse n: { |
| 831 | 835 | sym_name_buf.clearRetainingCapacity(); |
| 832 | 836 | _ = try inc_reader.streamDelimiter(&sym_name_buf.writer, 0); |
| 837 | assert(inc_reader.buffered()[0] == 0); // TODO change streamDelimiter API | |
| 838 | inc_reader.toss(1); | |
| 833 | 839 | |
| 834 | 840 | opt_symbol_name = sym_name_buf.written(); |
| 835 | 841 | versions.unsetAll(); |
src/libs/glibc.zig+4| ... | ... | @@ -802,6 +802,8 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye |
| 802 | 802 | const sym_name = opt_symbol_name orelse n: { |
| 803 | 803 | sym_name_buf.clearRetainingCapacity(); |
| 804 | 804 | _ = try inc_reader.streamDelimiter(&sym_name_buf.writer, 0); |
| 805 | assert(inc_reader.buffered()[0] == 0); // TODO change streamDelimiter API | |
| 806 | inc_reader.toss(1); | |
| 805 | 807 | |
| 806 | 808 | opt_symbol_name = sym_name_buf.written(); |
| 807 | 809 | versions_buffer = undefined; |
| ... | ... | @@ -974,6 +976,8 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye |
| 974 | 976 | const sym_name = opt_symbol_name orelse n: { |
| 975 | 977 | sym_name_buf.clearRetainingCapacity(); |
| 976 | 978 | _ = try inc_reader.streamDelimiter(&sym_name_buf.writer, 0); |
| 979 | assert(inc_reader.buffered()[0] == 0); // TODO change streamDelimiter API | |
| 980 | inc_reader.toss(1); | |
| 977 | 981 | |
| 978 | 982 | opt_symbol_name = sym_name_buf.written(); |
| 979 | 983 | versions_buffer = undefined; |
src/libs/netbsd.zig+4| ... | ... | @@ -477,6 +477,8 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye |
| 477 | 477 | const sym_name = opt_symbol_name orelse n: { |
| 478 | 478 | sym_name_buf.clearRetainingCapacity(); |
| 479 | 479 | _ = try inc_reader.streamDelimiter(&sym_name_buf.writer, 0); |
| 480 | assert(inc_reader.buffered()[0] == 0); // TODO change streamDelimiter API | |
| 481 | inc_reader.toss(1); | |
| 480 | 482 | |
| 481 | 483 | opt_symbol_name = sym_name_buf.written(); |
| 482 | 484 | chosen_ver_index = 255; |
| ... | ... | @@ -552,6 +554,8 @@ pub fn buildSharedObjects(comp: *Compilation, prog_node: std.Progress.Node) anye |
| 552 | 554 | const sym_name = opt_symbol_name orelse n: { |
| 553 | 555 | sym_name_buf.clearRetainingCapacity(); |
| 554 | 556 | _ = try inc_reader.streamDelimiter(&sym_name_buf.writer, 0); |
| 557 | assert(inc_reader.buffered()[0] == 0); // TODO change streamDelimiter API | |
| 558 | inc_reader.toss(1); | |
| 555 | 559 | |
| 556 | 560 | opt_symbol_name = sym_name_buf.written(); |
| 557 | 561 | chosen_ver_index = 255; |