From a3b5e884b12fdaa341010ef41bb9382fa0cd89f8 Mon Sep 17 00:00:00 2001 From: Michael Chaten Date: Sat, 13 Sep 2025 08:38:24 -0700 Subject: Update codebase to Zig 0.15.1. Removes compression support --- codegen/hangul.zig | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) (limited to 'codegen/hangul.zig') diff --git a/codegen/hangul.zig b/codegen/hangul.zig index 2c42bb7..6768b3f 100644 --- a/codegen/hangul.zig +++ b/codegen/hangul.zig @@ -30,7 +30,7 @@ const BlockMap = std.HashMap( std.hash_map.default_max_load_percentage, ); -pub fn main() !void { +pub fn main() anyerror!void { var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator); defer arena.deinit(); const allocator = arena.allocator(); @@ -43,10 +43,9 @@ pub fn main() !void { // Process HangulSyllableType.txt var in_file = try std.fs.cwd().openFile("data/unicode/HangulSyllableType.txt", .{}); defer in_file.close(); - var in_buf = std.io.bufferedReader(in_file.reader()); - const in_reader = in_buf.reader(); + var in_reader = in_file.reader(&line_buf); - while (try in_reader.readUntilDelimiterOrEof(&line_buf, '\n')) |line| { + while (in_reader.interface.takeDelimiterExclusive('\n')) |line| { if (line.len == 0 or line[0] == '#') continue; const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line; @@ -77,15 +76,19 @@ pub fn main() !void { else => {}, } } + } else |err| switch (err) { + error.EndOfStream => {}, + else => { + return err; + }, } - var blocks_map = BlockMap.init(allocator); defer blocks_map.deinit(); - var stage1 = std.ArrayList(u16).init(allocator); + var stage1 = std.array_list.Managed(u16).init(allocator); defer stage1.deinit(); - var stage2 = std.ArrayList(u3).init(allocator); + var stage2 = std.array_list.Managed(u3).init(allocator); defer stage2.deinit(); var block: Block = [_]u3{0} ** block_size; @@ -116,18 +119,17 @@ pub fn main() !void { _ = args_iter.skip(); const output_path = args_iter.next() orelse @panic("No output file arg!"); - const compressor = std.compress.flate.deflate.compressor; + var write_buf: [4096]u8 = undefined; var out_file = try std.fs.cwd().createFile(output_path, .{}); defer out_file.close(); - var out_comp = try compressor(.raw, out_file.writer(), .{ .level = .best }); - const writer = out_comp.writer(); + var writer = out_file.writer(&write_buf); const endian = builtin.cpu.arch.endian(); - try writer.writeInt(u16, @intCast(stage1.items.len), endian); - for (stage1.items) |i| try writer.writeInt(u16, i, endian); + try writer.interface.writeInt(u16, @intCast(stage1.items.len), endian); + for (stage1.items) |i| try writer.interface.writeInt(u16, i, endian); - try writer.writeInt(u16, @intCast(stage2.items.len), endian); - for (stage2.items) |i| try writer.writeInt(u8, i, endian); + try writer.interface.writeInt(u16, @intCast(stage2.items.len), endian); + for (stage2.items) |i| try writer.interface.writeInt(u8, i, endian); - try out_comp.flush(); + try writer.interface.flush(); } -- cgit v1.2.3 From 749197a3f9d25e211615960c02380a3d659b20f9 Mon Sep 17 00:00:00 2001 From: Michael Chaten Date: Sun, 14 Sep 2025 04:11:09 -0700 Subject: Embed data files in scripts rather than relying on filesystem access for easier packaging --- codegen/hangul.zig | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) (limited to 'codegen/hangul.zig') diff --git a/codegen/hangul.zig b/codegen/hangul.zig index 6768b3f..64ab11c 100644 --- a/codegen/hangul.zig +++ b/codegen/hangul.zig @@ -38,14 +38,9 @@ pub fn main() anyerror!void { var flat_map = std.AutoHashMap(u21, u3).init(allocator); defer flat_map.deinit(); - var line_buf: [4096]u8 = undefined; - // Process HangulSyllableType.txt - var in_file = try std.fs.cwd().openFile("data/unicode/HangulSyllableType.txt", .{}); - defer in_file.close(); - var in_reader = in_file.reader(&line_buf); - - while (in_reader.interface.takeDelimiterExclusive('\n')) |line| { + var in_reader = std.io.Reader.fixed(@embedFile("HangulSyllableType.txt")); + while (in_reader.takeDelimiterExclusive('\n')) |line| { if (line.len == 0 or line[0] == '#') continue; const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line; -- cgit v1.2.3 From 2f02c3b16c073d0bd3d9368a66ce272a574f75a3 Mon Sep 17 00:00:00 2001 From: Jay Date: Sat, 8 Nov 2025 19:59:08 +1100 Subject: Use takeDelimiterInclusive to support Zig 0.15.2 --- codegen/hangul.zig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'codegen/hangul.zig') diff --git a/codegen/hangul.zig b/codegen/hangul.zig index 64ab11c..2e4c175 100644 --- a/codegen/hangul.zig +++ b/codegen/hangul.zig @@ -40,7 +40,8 @@ pub fn main() anyerror!void { // Process HangulSyllableType.txt var in_reader = std.io.Reader.fixed(@embedFile("HangulSyllableType.txt")); - while (in_reader.takeDelimiterExclusive('\n')) |line| { + while (in_reader.takeDelimiterInclusive('\n')) |took| { + const line = std.mem.trimRight(u8, took, "\n"); if (line.len == 0 or line[0] == '#') continue; const no_comment = if (std.mem.indexOfScalar(u8, line, '#')) |octo| line[0..octo] else line; -- cgit v1.2.3