this repo has no description
6
fork

Configure Feed

Select the types of activity you want to include in your feed.

build: modularize ourio and stda

Move higher level abstractions into "stda" (std-async) module.

+55 -28
+33 -10
build.zig
··· 1 1 const std = @import("std"); 2 2 3 + const Module = std.Build.Module; 4 + const Target = std.Build.ResolvedTarget; 5 + const OptimizeMode = std.builtin.OptimizeMode; 6 + 3 7 pub fn build(b: *std.Build) void { 4 8 const target = b.standardTargetOptions(.{}); 5 9 const optimize = b.standardOptimizeOption(.{}); 6 10 7 - const io_mod = b.addModule("ourio", .{ 8 - .root_source_file = b.path("src/main.zig"), 11 + const ourio_mod = b.addModule("ourio", .{ 12 + .root_source_file = b.path("src/ourio.zig"), 9 13 .target = target, 10 14 .optimize = optimize, 11 15 }); 12 - const tls_dep = b.dependency("tls", .{ .target = target, .optimize = optimize }); 13 - io_mod.addImport("tls", tls_dep.module("tls")); 14 16 15 - const lib_unit_tests = b.addTest(.{ .root_module = io_mod }); 17 + const stda_mod = setupStdaMod(b, target, optimize, ourio_mod); 16 18 17 - const run_lib_unit_tests = b.addRunArtifact(lib_unit_tests); 18 - run_lib_unit_tests.skip_foreign_checks = true; 19 - b.installArtifact(lib_unit_tests); 19 + const ourio_tests = b.addTest(.{ .root_module = ourio_mod }); 20 + const stda_tests = b.addTest(.{ .root_module = stda_mod }); 21 + 22 + const run_ourio_tests = b.addRunArtifact(ourio_tests); 23 + const run_stda_tests = b.addRunArtifact(stda_tests); 24 + run_ourio_tests.skip_foreign_checks = true; 25 + b.installArtifact(ourio_tests); 26 + 27 + const test_step = b.step("test", "Run all unit tests"); 28 + test_step.dependOn(&run_ourio_tests.step); 29 + test_step.dependOn(&run_stda_tests.step); 20 30 21 - const test_step = b.step("test", "Run unit tests"); 22 - test_step.dependOn(&run_lib_unit_tests.step); 31 + const test_ourio_step = b.step("test-ourio", "Run ourio unit tests"); 32 + test_ourio_step.dependOn(&run_ourio_tests.step); 23 33 24 34 const install_step = b.getInstallStep(); 25 35 install_step.dependOn(test_step); 26 36 } 37 + 38 + pub fn setupStdaMod(b: *std.Build, target: Target, optimize: OptimizeMode, ourio: *Module) *Module { 39 + const stda_mod = b.addModule("stda", .{ 40 + .root_source_file = b.path("src/stda.zig"), 41 + .target = target, 42 + .optimize = optimize, 43 + }); 44 + const tls_dep = b.dependency("tls", .{ .target = target, .optimize = optimize }); 45 + stda_mod.addImport("tls", tls_dep.module("tls")); 46 + stda_mod.addImport("ourio", ourio); 47 + 48 + return stda_mod; 49 + }
+1 -1
src/Kqueue.zig src/ourio/Kqueue.zig
··· 3 3 const std = @import("std"); 4 4 const builtin = @import("builtin"); 5 5 6 - const io = @import("main.zig"); 6 + const io = @import("../ourio.zig"); 7 7 8 8 const Allocator = std.mem.Allocator; 9 9 const EV = std.c.EV;
+1 -1
src/Mock.zig src/ourio/Mock.zig
··· 2 2 3 3 const std = @import("std"); 4 4 5 - const io = @import("main.zig"); 5 + const io = @import("../ourio.zig"); 6 6 7 7 const Allocator = std.mem.Allocator; 8 8 const Queue = @import("queue.zig").Intrusive;
+1 -1
src/Task.zig src/ourio/Task.zig
··· 1 1 const Task = @This(); 2 2 3 3 const std = @import("std"); 4 - const io = @import("main.zig"); 4 + const io = @import("../ourio.zig"); 5 5 6 6 const Allocator = std.mem.Allocator; 7 7 const Ring = io.Ring;
+1 -1
src/Uring.zig src/ourio/Uring.zig
··· 3 3 const std = @import("std"); 4 4 const builtin = @import("builtin"); 5 5 6 - const io = @import("main.zig"); 6 + const io = @import("../ourio.zig"); 7 7 8 8 const Allocator = std.mem.Allocator; 9 9 const Queue = @import("queue.zig").Intrusive;
+9 -12
src/main.zig src/ourio.zig
··· 2 2 const builtin = @import("builtin"); 3 3 4 4 const Allocator = std.mem.Allocator; 5 - pub const Mock = @import("Mock.zig"); 6 - const Queue = @import("queue.zig").Intrusive; 5 + pub const Mock = @import("ourio/Mock.zig"); 6 + const Queue = @import("ourio/queue.zig").Intrusive; 7 7 const io = @This(); 8 8 const posix = std.posix; 9 9 ··· 23 23 }; 24 24 pub const has_io_uring = builtin.os.tag == .linux; 25 25 26 - pub const Task = @import("Task.zig"); 26 + pub const Task = @import("ourio/Task.zig"); 27 27 pub const Callback = *const fn (*Ring, Task) anyerror!void; 28 28 pub fn noopCallback(_: *Ring, _: Task) anyerror!void {} 29 29 ··· 63 63 .tvos, 64 64 .visionos, 65 65 .watchos, 66 - => @import("Kqueue.zig"), 66 + => @import("ourio/Kqueue.zig"), 67 67 68 - .linux => @import("Uring.zig"), 68 + .linux => @import("ourio/Uring.zig"), 69 69 70 70 else => @compileError("unsupported os"), 71 71 }, ··· 601 601 }; 602 602 603 603 test { 604 - _ = @import("net.zig"); 605 - _ = @import("queue.zig"); 606 - _ = @import("tls.zig"); 604 + _ = @import("ourio/Mock.zig"); 605 + _ = @import("ourio/queue.zig"); 607 606 608 - _ = @import("Mock.zig"); 609 - 610 - if (has_io_uring) _ = @import("Uring.zig"); 611 - if (has_kqueue) _ = @import("Kqueue.zig"); 607 + if (has_io_uring) _ = @import("ourio/Uring.zig"); 608 + if (has_kqueue) _ = @import("ourio/Kqueue.zig"); 612 609 } 613 610 614 611 /// Foo is only for testing
+1 -1
src/net.zig src/stda/net.zig
··· 1 1 const std = @import("std"); 2 - const io = @import("main.zig"); 2 + const io = @import("ourio"); 3 3 4 4 const posix = std.posix; 5 5 const Allocator = std.mem.Allocator;
src/queue.zig src/ourio/queue.zig
+7
src/stda.zig
··· 1 + pub const net = @import("stda/net.zig"); 2 + pub const tls = @import("stda/tls.zig"); 3 + 4 + test { 5 + _ = net; 6 + _ = tls; 7 + }
+1 -1
src/tls.zig src/stda/tls.zig
··· 1 1 const std = @import("std"); 2 2 const tls = @import("tls"); 3 - const io = @import("main.zig"); 3 + const io = @import("ourio"); 4 4 5 5 const Allocator = std.mem.Allocator; 6 6 const CertBundle = tls.config.cert.Bundle;