mymarkdown

My markdown
git clone https://git.grace.moe/mymarkdown
Log | Files | Refs

commit ed56a543a685cb22fb9ef037e606aeab9cb5f8be
parent 6b247bda5cc373436fa4e01b97d353b39610c2b8
Author: gracefu <81774659+gracefuu@users.noreply.github.com>
Date:   Wed, 21 May 2025 04:52:20 +0800

More cli flags, track escaped str text in tracy

Diffstat:
Msrc/main.zig | 56+++++++++++++++++++++++++++++++++++++++++++-------------
Msrc/str.zig | 1+
2 files changed, 44 insertions(+), 13 deletions(-)

diff --git a/src/main.zig b/src/main.zig @@ -42,10 +42,12 @@ pub fn main() !void { const args = try std.process.argsAlloc(arena); const bench1, const bench2, const bench3, // const run1, const run2, const run3, // + const check1, const check2, const check3, // const print1, const print2, const print3 = blk: { var bench1, var bench2, var bench3 = .{ false, false, false }; var run1, var run2, var run3 = .{ false, false, false }; + var check1, var check2, var check3 = .{ false, false, false }; var print1, var print2, var print3 = .{ false, false, false }; for (args) |arg| { if (std.mem.eql(u8, arg, "--bench1")) @@ -60,6 +62,12 @@ pub fn main() !void { run2 = true; if (std.mem.eql(u8, arg, "--run3")) run3 = true; + if (std.mem.eql(u8, arg, "--check1")) + check1, run1 = .{ true, true }; + if (std.mem.eql(u8, arg, "--check2")) + check2, run2 = .{ true, true }; + if (std.mem.eql(u8, arg, "--check3")) + check3, run3 = .{ true, true }; if (std.mem.eql(u8, arg, "--print1")) print1, run1 = .{ true, true }; if (std.mem.eql(u8, arg, "--print2")) @@ -69,7 +77,12 @@ pub fn main() !void { if (std.mem.eql(u8, arg, "--wait")) std.Thread.sleep(2e9); } - break :blk .{ bench1, bench2, bench3, run1, run2, run3, print1, print2, print3 }; + break :blk .{ + bench1, bench2, bench3, + run1, run2, run3, + check1, check2, check3, + print1, print2, print3, + }; }; var input_arraylist = try readInput(gpa, arena); @@ -140,7 +153,7 @@ pub fn main() !void { var render_arraylist1: std.ArrayList(u8) = .init(gpa); defer render_arraylist1.deinit(); - if (run1) { + if (check1) { std.debug.print("Rendering 1\n", .{}); const tracy_frame = tracy.namedFrame("check render 1"); defer tracy_frame.end(); @@ -148,7 +161,7 @@ pub fn main() !void { } var render_arraylist2: std.ArrayList(u8) = .init(gpa); defer render_arraylist2.deinit(); - if (run2) { + if (check2) { std.debug.print("Rendering 2\n", .{}); const tracy_frame = tracy.namedFrame("check render 2"); defer tracy_frame.end(); @@ -156,31 +169,48 @@ pub fn main() !void { } var render_arraylist3: std.ArrayList(u8) = .init(gpa); defer render_arraylist3.deinit(); - if (run3) { + if (check3) { std.debug.print("Rendering 3\n", .{}); const tracy_frame = tracy.namedFrame("check render 3"); defer tracy_frame.end(); _ = try ast3.renderAst(render_arraylist3.writer(), input); } - if (run1 and run3) { + if (check1 and check3) { std.debug.print("Testing 1 vs 3\n", .{}); try std.testing.expectEqualStrings(render_arraylist1.items, render_arraylist3.items); } - if (run2 and run3) { + if (check2 and check3) { std.debug.print("Testing 2 vs 3\n", .{}); try std.testing.expectEqualStrings(render_arraylist2.items, render_arraylist3.items); } - if (run1 and run2 and !run3) { + if (check1 and check2 and !check3) { std.debug.print("Testing 1 vs 2\n", .{}); try std.testing.expectEqualStrings(render_arraylist1.items, render_arraylist2.items); } - if (print1) - try std.io.getStdOut().writeAll(render_arraylist1.items); - if (print2) - try std.io.getStdOut().writeAll(render_arraylist2.items); - if (print3) - try std.io.getStdOut().writeAll(render_arraylist3.items); + for (0..10) |_| { + if (print1) { + std.debug.print("Re-rendering 1\n", .{}); + render_arraylist1.clearRetainingCapacity(); + const tracy_frame = tracy.namedFrame("re-render 1"); + defer tracy_frame.end(); + _ = try ast.renderAst(render_arraylist1.writer(), input); + } + if (print2) { + std.debug.print("Re-rendering 2\n", .{}); + render_arraylist2.clearRetainingCapacity(); + const tracy_frame = tracy.namedFrame("re-render 2"); + defer tracy_frame.end(); + _ = try ast2.renderAst(render_arraylist2.writer(), input); + } + if (print3) { + std.debug.print("Re-rendering 3\n", .{}); + render_arraylist3.clearRetainingCapacity(); + const tracy_frame = tracy.namedFrame("re-render 3"); + defer tracy_frame.end(); + _ = try ast3.renderAst(render_arraylist3.writer(), input); + } + } } if (tracy.enable) { diff --git a/src/str.zig b/src/str.zig @@ -161,6 +161,7 @@ pub fn escapeString( ) !void { const tracy_frame = tracy.trace(@src()); defer tracy_frame.end(); + tracy_frame.addText(slice); const quote = switch (escape_for) { .double_quoted_string => '"',