Commit 0157e1196c
Changed files (5)
src/reduce/Walk.zig → lib/std/zig/reduce/Walk.zig
File renamed without changes
src/reduce.zig → lib/std/zig/reduce.zig
@@ -2,7 +2,6 @@ const std = @import("std");
const mem = std.mem;
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
-const fatal = @import("./main.zig").fatal;
const Ast = std.zig.Ast;
const Walk = @import("reduce/Walk.zig");
const AstGen = std.zig.AstGen;
@@ -47,7 +46,16 @@ const Interestingness = enum { interesting, unknown, boring };
// - reduce flags sent to the compiler
// - integrate with the build system?
-pub fn main(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
+pub fn main() !void {
+ var arena_instance = std.heap.ArenaAllocator.init(std.heap.page_allocator);
+ defer arena_instance.deinit();
+ const arena = arena_instance.allocator();
+
+ var general_purpose_allocator: std.heap.GeneralPurposeAllocator(.{}) = .{};
+ const gpa = general_purpose_allocator.allocator();
+
+ const args = try std.process.argsAlloc(arena);
+
var opt_checker_path: ?[]const u8 = null;
var opt_root_source_file_path: ?[]const u8 = null;
var argv: []const []const u8 = &.{};
@@ -55,7 +63,7 @@ pub fn main(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
var skip_smoke_test = false;
{
- var i: usize = 2; // skip over "zig" and "reduce"
+ var i: usize = 1;
while (i < args.len) : (i += 1) {
const arg = args[i];
if (mem.startsWith(u8, arg, "-")) {
@@ -411,3 +419,8 @@ fn parse(gpa: Allocator, file_path: []const u8) !Ast {
return tree;
}
+
+fn fatal(comptime format: []const u8, args: anytype) noreturn {
+ std.log.err(format, args);
+ std.process.exit(1);
+}
src/main.zig
@@ -203,14 +203,6 @@ pub fn main() anyerror!void {
}
}
- if (build_options.only_reduce) {
- if (mem.eql(u8, args[1], "reduce")) {
- return @import("reduce.zig").main(gpa, arena, args);
- } else {
- @panic("only reduce is supported in a -Donly-reduce build");
- }
- }
-
return mainArgs(gpa, arena, args);
}
@@ -302,7 +294,7 @@ fn mainArgs(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
} else if (mem.eql(u8, cmd, "rc")) {
return cmdRc(gpa, arena, args[1..]);
} else if (mem.eql(u8, cmd, "fmt")) {
- return cmdFmt(gpa, arena, cmd_args);
+ return jitCmd(gpa, arena, cmd_args, "fmt", "fmt.zig");
} else if (mem.eql(u8, cmd, "objcopy")) {
return @import("objcopy.zig").cmdObjCopy(gpa, arena, cmd_args);
} else if (mem.eql(u8, cmd, "fetch")) {
@@ -325,7 +317,7 @@ fn mainArgs(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
verifyLibcxxCorrectlyLinked();
return @import("print_env.zig").cmdEnv(arena, cmd_args, io.getStdOut().writer());
} else if (mem.eql(u8, cmd, "reduce")) {
- return @import("reduce.zig").main(gpa, arena, args);
+ return jitCmd(gpa, arena, cmd_args, "reduce", "reduce.zig");
} else if (mem.eql(u8, cmd, "zen")) {
return io.getStdOut().writeAll(info_zen);
} else if (mem.eql(u8, cmd, "help") or mem.eql(u8, cmd, "-h") or mem.eql(u8, cmd, "--help")) {
@@ -5710,7 +5702,13 @@ fn cmdBuild(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
}
}
-fn cmdFmt(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
+fn jitCmd(
+ gpa: Allocator,
+ arena: Allocator,
+ args: []const []const u8,
+ cmd_name: []const u8,
+ root_src_path: []const u8,
+) !void {
const color: Color = .auto;
const target_query: std.Target.Query = .{};
@@ -5721,7 +5719,7 @@ fn cmdFmt(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
};
const exe_basename = try std.zig.binNameAlloc(arena, .{
- .root_name = "fmt",
+ .root_name = cmd_name,
.target = resolved_target.result,
.output_mode = .Exe,
});
@@ -5771,7 +5769,7 @@ fn cmdFmt(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
.root_dir = zig_lib_directory,
.sub_path = "std/zig",
},
- .root_src_path = "fmt.zig",
+ .root_src_path = root_src_path,
};
const config = try Compilation.Config.resolve(.{
@@ -5801,7 +5799,7 @@ fn cmdFmt(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
.zig_lib_directory = zig_lib_directory,
.local_cache_directory = global_cache_directory,
.global_cache_directory = global_cache_directory,
- .root_name = "fmt",
+ .root_name = cmd_name,
.config = config,
.root_mod = root_mod,
.main_mod = root_mod,
@@ -5820,8 +5818,8 @@ fn cmdFmt(gpa: Allocator, arena: Allocator, args: []const []const u8) !void {
else => |e| return e,
};
- const fmt_exe = try global_cache_directory.join(arena, &.{comp.cache_use.whole.bin_sub_path.?});
- child_argv.appendAssumeCapacity(fmt_exe);
+ const exe_path = try global_cache_directory.join(arena, &.{comp.cache_use.whole.bin_sub_path.?});
+ child_argv.appendAssumeCapacity(exe_path);
}
child_argv.appendSliceAssumeCapacity(args);
stage1/config.zig.in
@@ -13,4 +13,3 @@ pub const skip_non_native = false;
pub const only_c = false;
pub const force_gpa = false;
pub const only_core_functionality = true;
-pub const only_reduce = false;
build.zig
@@ -34,7 +34,6 @@ pub fn build(b: *std.Build) !void {
const skip_install_langref = b.option(bool, "no-langref", "skip copying of langref to the installation prefix") orelse skip_install_lib_files;
const skip_install_autodocs = b.option(bool, "no-autodocs", "skip copying of standard library autodocs to the installation prefix") orelse skip_install_lib_files;
const no_bin = b.option(bool, "no-bin", "skip emitting compiler binary") orelse false;
- const only_reduce = b.option(bool, "only-reduce", "only build zig reduce") orelse false;
const docgen_exe = b.addExecutable(.{
.name = "docgen",
@@ -245,7 +244,6 @@ pub fn build(b: *std.Build) !void {
exe_options.addOption(bool, "force_gpa", force_gpa);
exe_options.addOption(bool, "only_c", only_c);
exe_options.addOption(bool, "only_core_functionality", only_c);
- exe_options.addOption(bool, "only_reduce", only_reduce);
if (link_libc) {
exe.linkLibC();
@@ -407,7 +405,6 @@ pub fn build(b: *std.Build) !void {
test_cases_options.addOption(bool, "force_gpa", force_gpa);
test_cases_options.addOption(bool, "only_c", only_c);
test_cases_options.addOption(bool, "only_core_functionality", true);
- test_cases_options.addOption(bool, "only_reduce", false);
test_cases_options.addOption(bool, "enable_qemu", b.enable_qemu);
test_cases_options.addOption(bool, "enable_wine", b.enable_wine);
test_cases_options.addOption(bool, "enable_wasmtime", b.enable_wasmtime);
@@ -599,7 +596,6 @@ fn addWasiUpdateStep(b: *std.Build, version: [:0]const u8) !void {
exe_options.addOption(bool, "enable_tracy_allocation", false);
exe_options.addOption(bool, "value_tracing", false);
exe_options.addOption(bool, "only_core_functionality", true);
- exe_options.addOption(bool, "only_reduce", false);
const run_opt = b.addSystemCommand(&.{
"wasm-opt",