diff --git a/build.zig b/build.zig index e29633e17e..fc03296158 100644 --- a/build.zig +++ b/build.zig @@ -74,7 +74,7 @@ pub fn build(b: *Builder) !void { const skip_libc = b.option(bool, "skip-libc", "Main test suite skips tests that link libc") orelse false; const skip_self_hosted = b.option(bool, "skip-self-hosted", "Main test suite skips building self hosted compiler") orelse false; if (!skip_self_hosted and builtin.os == .linux) { - // TODO evented I/O other OS'spu + // TODO evented I/O other OS's test_step.dependOn(&exe.step); } @@ -232,6 +232,9 @@ fn findLLVM(b: *Builder, llvm_config_exe: []const u8) !LibraryDep { if (fs.path.isAbsolute(lib_arg)) { try result.libs.append(lib_arg); } else { + if (mem.endsWith(u8, lib_arg, ".lib")) { + lib_arg = lib_arg[0 .. lib_arg.len - 4]; + } try result.system_libs.append(lib_arg); } } diff --git a/src-self-hosted/compilation.zig b/src-self-hosted/compilation.zig index a6c93b2cc5..b12a01d649 100644 --- a/src-self-hosted/compilation.zig +++ b/src-self-hosted/compilation.zig @@ -517,6 +517,9 @@ pub const Compilation = struct { comp.target_layout_str = llvm.CopyStringRepOfTargetData(comp.target_data_ref) orelse return error.OutOfMemory; defer llvm.DisposeMessage(comp.target_layout_str); + comp.events = try allocator.create(event.Channel(Event)); + defer allocator.destroy(comp.events); + comp.events.init([0]Event{}); defer comp.events.deinit(); diff --git a/src-self-hosted/test.zig b/src-self-hosted/test.zig index 940a8c53b3..85b9d6b912 100644 --- a/src-self-hosted/test.zig +++ b/src-self-hosted/test.zig @@ -13,12 +13,16 @@ test "stage2" { // TODO provide a way to run tests in evented I/O mode if (!std.io.is_async) return error.SkipZigTest; + // TODO https://github.com/ziglang/zig/issues/1364 + // TODO https://github.com/ziglang/zig/issues/3117 + if (true) return error.SkipZigTest; + try ctx.init(); defer ctx.deinit(); try @import("stage2_tests").addCases(&ctx); - _ = async ctx.run(); + try ctx.run(); } const file1 = "1.zig"; @@ -61,8 +65,8 @@ pub const TestContext = struct { self.zig_compiler.deinit(); } - fn run(self: *TestContext) void { - std.event.Loop.instance.?.startCpuBoundOperation(); + fn run(self: *TestContext) !void { + std.event.Loop.startCpuBoundOperation(); self.any_err = self.group.wait(); return self.any_err; }