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:
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);
}