Commit 0cbf00a3ec

Vexu <15308111+Vexu@users.noreply.github.com>
2019-11-24 08:13:01
self hosted compiler: final small fixes to get it compiling
1 parent 010494d
Changed files (3)
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();
 
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;
     }
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);
                 }
             }