authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-10-26 01:14:01-04:00
committergravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2023-10-26 21:45:57-04:00
log3faa4ea9594f058da7522808ffc9587b77ac94a6
tree59b8f257aa362b65b4c40b142047f25df631120f
parent5e83441096ca77b379be55ad2c197f70ce374eac

main: enable debug modes in build scripts


1 files changed, 59 insertions(+), 7 deletions(-)

src/main.zig+59-7
...@@ -3774,7 +3774,9 @@ fn serve(...@@ -3774,7 +3774,9 @@ fn serve(
3774 try comp.makeBinFileWritable();3774 try comp.makeBinFileWritable();
3775 }3775 }
37763776
3777 {3777 if (builtin.single_threaded) {
3778 try comp.update(main_progress_node);
3779 } else {
3778 var reset: std.Thread.ResetEvent = .{};3780 var reset: std.Thread.ResetEvent = .{};
37793781
3780 var progress_thread = try std.Thread.spawn(.{}, progressThread, .{3782 var progress_thread = try std.Thread.spawn(.{}, progressThread, .{
...@@ -4920,6 +4922,17 @@ pub fn cmdBuild(gpa: Allocator, arena: Allocator, args: []const []const u8) !voi...@@ -4920,6 +4922,17 @@ pub fn cmdBuild(gpa: Allocator, arena: Allocator, args: []const []const u8) !voi
4920 var child_argv = std.ArrayList([]const u8).init(arena);4922 var child_argv = std.ArrayList([]const u8).init(arena);
4921 var reference_trace: ?u32 = null;4923 var reference_trace: ?u32 = null;
4922 var debug_compile_errors = false;4924 var debug_compile_errors = false;
4925 var verbose_link = (builtin.os.tag != .wasi or builtin.link_libc) and
4926 EnvVar.ZIG_VERBOSE_LINK.isSet();
4927 var verbose_cc = (builtin.os.tag != .wasi or builtin.link_libc) and
4928 EnvVar.ZIG_VERBOSE_CC.isSet();
4929 var verbose_air = false;
4930 var verbose_intern_pool = false;
4931 var verbose_generic_instances = false;
4932 var verbose_llvm_ir: ?[]const u8 = null;
4933 var verbose_llvm_bc: ?[]const u8 = null;
4934 var verbose_cimport = false;
4935 var verbose_llvm_cpu_features = false;
4923 var fetch_only = false;4936 var fetch_only = false;
49244937
4925 const argv_index_exe = child_argv.items.len;4938 const argv_index_exe = child_argv.items.len;
...@@ -4956,7 +4969,7 @@ pub fn cmdBuild(gpa: Allocator, arena: Allocator, args: []const []const u8) !voi...@@ -4956,7 +4969,7 @@ pub fn cmdBuild(gpa: Allocator, arena: Allocator, args: []const []const u8) !voi
4956 if (i + 1 >= args.len) fatal("expected argument after '{s}'", .{arg});4969 if (i + 1 >= args.len) fatal("expected argument after '{s}'", .{arg});
4957 i += 1;4970 i += 1;
4958 override_lib_dir = args[i];4971 override_lib_dir = args[i];
4959 try child_argv.appendSlice(&[_][]const u8{ arg, args[i] });4972 try child_argv.appendSlice(&.{ arg, args[i] });
4960 continue;4973 continue;
4961 } else if (mem.eql(u8, arg, "--build-runner")) {4974 } else if (mem.eql(u8, arg, "--build-runner")) {
4962 if (i + 1 >= args.len) fatal("expected argument after '{s}'", .{arg});4975 if (i + 1 >= args.len) fatal("expected argument after '{s}'", .{arg});
...@@ -4974,22 +4987,52 @@ pub fn cmdBuild(gpa: Allocator, arena: Allocator, args: []const []const u8) !voi...@@ -4974,22 +4987,52 @@ pub fn cmdBuild(gpa: Allocator, arena: Allocator, args: []const []const u8) !voi
4974 override_global_cache_dir = args[i];4987 override_global_cache_dir = args[i];
4975 continue;4988 continue;
4976 } else if (mem.eql(u8, arg, "-freference-trace")) {4989 } else if (mem.eql(u8, arg, "-freference-trace")) {
4977 try child_argv.append(arg);
4978 reference_trace = 256;4990 reference_trace = 256;
4979 } else if (mem.eql(u8, arg, "--fetch")) {4991 } else if (mem.eql(u8, arg, "--fetch")) {
4980 fetch_only = true;4992 fetch_only = true;
4981 } else if (mem.startsWith(u8, arg, "-freference-trace=")) {4993 } else if (mem.startsWith(u8, arg, "-freference-trace=")) {
4982 try child_argv.append(arg);
4983 const num = arg["-freference-trace=".len..];4994 const num = arg["-freference-trace=".len..];
4984 reference_trace = std.fmt.parseUnsigned(u32, num, 10) catch |err| {4995 reference_trace = std.fmt.parseUnsigned(u32, num, 10) catch |err| {
4985 fatal("unable to parse reference_trace count '{s}': {s}", .{ num, @errorName(err) });4996 fatal("unable to parse reference_trace count '{s}': {s}", .{ num, @errorName(err) });
4986 };4997 };
4987 } else if (mem.eql(u8, arg, "-fno-reference-trace")) {4998 } else if (mem.eql(u8, arg, "-fno-reference-trace")) {
4988 try child_argv.append(arg);
4989 reference_trace = null;4999 reference_trace = null;
5000 } else if (mem.eql(u8, arg, "--debug-log")) {
5001 if (i + 1 >= args.len) fatal("expected argument after '{s}'", .{arg});
5002 try child_argv.appendSlice(args[i .. i + 2]);
5003 i += 1;
5004 if (!build_options.enable_logging) {
5005 std.log.warn("Zig was compiled without logging enabled (-Dlog). --debug-log has no effect.", .{});
5006 } else {
5007 try log_scopes.append(gpa, args[i]);
5008 }
5009 continue;
4990 } else if (mem.eql(u8, arg, "--debug-compile-errors")) {5010 } else if (mem.eql(u8, arg, "--debug-compile-errors")) {
4991 try child_argv.append(arg);5011 if (!crash_report.is_enabled) {
4992 debug_compile_errors = true;5012 std.log.warn("Zig was compiled in a release mode. --debug-compile-errors has no effect.", .{});
5013 } else {
5014 debug_compile_errors = true;
5015 }
5016 } else if (mem.eql(u8, arg, "--verbose-link")) {
5017 verbose_link = true;
5018 } else if (mem.eql(u8, arg, "--verbose-cc")) {
5019 verbose_cc = true;
5020 } else if (mem.eql(u8, arg, "--verbose-air")) {
5021 verbose_air = true;
5022 } else if (mem.eql(u8, arg, "--verbose-intern-pool")) {
5023 verbose_intern_pool = true;
5024 } else if (mem.eql(u8, arg, "--verbose-generic-instances")) {
5025 verbose_generic_instances = true;
5026 } else if (mem.eql(u8, arg, "--verbose-llvm-ir")) {
5027 verbose_llvm_ir = "-";
5028 } else if (mem.startsWith(u8, arg, "--verbose-llvm-ir=")) {
5029 verbose_llvm_ir = arg["--verbose-llvm-ir=".len..];
5030 } else if (mem.startsWith(u8, arg, "--verbose-llvm-bc=")) {
5031 verbose_llvm_bc = arg["--verbose-llvm-bc=".len..];
5032 } else if (mem.eql(u8, arg, "--verbose-cimport")) {
5033 verbose_cimport = true;
5034 } else if (mem.eql(u8, arg, "--verbose-llvm-cpu-features")) {
5035 verbose_llvm_cpu_features = true;
4993 } else if (mem.eql(u8, arg, "--seed")) {5036 } else if (mem.eql(u8, arg, "--seed")) {
4994 if (i + 1 >= args.len) fatal("expected argument after '{s}'", .{arg});5037 if (i + 1 >= args.len) fatal("expected argument after '{s}'", .{arg});
4995 i += 1;5038 i += 1;
...@@ -5264,6 +5307,15 @@ pub fn cmdBuild(gpa: Allocator, arena: Allocator, args: []const []const u8) !voi...@@ -5264,6 +5307,15 @@ pub fn cmdBuild(gpa: Allocator, arena: Allocator, args: []const []const u8) !voi
5264 .optimize_mode = .Debug,5307 .optimize_mode = .Debug,
5265 .self_exe_path = self_exe_path,5308 .self_exe_path = self_exe_path,
5266 .thread_pool = &thread_pool,5309 .thread_pool = &thread_pool,
5310 .verbose_cc = verbose_cc,
5311 .verbose_link = verbose_link,
5312 .verbose_air = verbose_air,
5313 .verbose_intern_pool = verbose_intern_pool,
5314 .verbose_generic_instances = verbose_generic_instances,
5315 .verbose_llvm_ir = verbose_llvm_ir,
5316 .verbose_llvm_bc = verbose_llvm_bc,
5317 .verbose_cimport = verbose_cimport,
5318 .verbose_llvm_cpu_features = verbose_llvm_cpu_features,
5267 .cache_mode = .whole,5319 .cache_mode = .whole,
5268 .reference_trace = reference_trace,5320 .reference_trace = reference_trace,
5269 .debug_compile_errors = debug_compile_errors,5321 .debug_compile_errors = debug_compile_errors,