commit cc84490dc9d36dc07b871cc4eb2c6c52daf6e5a8
parent 5b870061ea2b12aa3ea2ee6d1ade0ad91f7871c5
Author: Walther Chen <walther.chen@gmail.com>
Date:   Wed,  9 Nov 2022 23:39:42 -0500

enable build trace option

Diffstat:
Mbuild.zig | 6++++++
Msrc/opt1.zig | 6++++++
2 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/build.zig b/build.zig @@ -11,6 +11,11 @@ pub fn build(b: *std.build.Builder) void { // between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall. const mode = b.standardReleaseOptions(); + // Build option for tracing instructions + const trace_value = b.option(bool, "trace", "enable tracing instructions for interpreter") orelse false; + const trace_step = b.addOptions(); + trace_step.addOption(bool, "TRACE", trace_value); + const stages = [_][]const u8{ "og", "opt1", @@ -22,6 +27,7 @@ pub fn build(b: *std.build.Builder) void { const exe = b.addExecutable(stage, "src/" ++ stage ++ ".zig"); exe.setTarget(target); exe.setBuildMode(mode); + exe.addOptions("build_with_trace", trace_step); exe.install(); const run_cmd = exe.run(); diff --git a/src/opt1.zig b/src/opt1.zig @@ -7,7 +7,13 @@ const ArrayList = std.ArrayList; const Program = common.Program; const JumpTable = ArrayList(usize); +const trace = @import("build_with_trace"); + pub fn main() anyerror!void { + if (trace.TRACE) { + std.debug.print("Building with TRACE enabled\n", .{}); + } + try common.runInterpreter(interpret); }