const std = @import("std"); pub fn main(init: std.process.Init.Minimal) !void { var args = init.args.iterate(); _ = args.skip(); const subject = args.next() orelse "./study-samples/frog"; std.debug.print("arg: {s}\n", .{subject}); var debug_alloc: std.heap.DebugAllocator(.{}) = .init; const alloc = debug_alloc.allocator(); // var threaded: std.Io.Threaded = .init(alloc, .{ // .argv0 = .init(init.args), // .environ = init.environ, // }); // defer threaded.deinit(); // const io = threaded.io(); var evented: std.Io.Evented = undefined; try evented.init(alloc, .{ .argv0 = .init(init.args), .environ = init.environ, .backing_allocator_needs_mutex = false, }); defer evented.deinit(); const io = evented.io(); // const f = try std.Io.Dir.cwd().openFile(io, subject, .{ .mode = .read_only }); // std.debug.print("file: {any}\n", .{f}); var child = try std.process.spawn(io, .{ .argv = &.{subject}, .stdout = .pipe, .stdin = .inherit, }); const buf = try alloc.alloc(u8, 0x400); defer alloc.free(buf); _ = try child.stdout.?.readPositionalAll(io, buf, 0); std.debug.print("spawned child: {any}\n", .{child}); const term = try child.wait(io); std.debug.print("waited term: {any}\n", .{term}); }