Zig Version
0.17.0-dev.332+4a65cc4ac
Steps to Reproduce and Observed Behavior
Compile this simple zig tcp server,
conststd=@import("std");constIo=std.Io;// De nieuwe I/O-interface van Zig 0.16pubfnmain(init:std.process.Init)!void{constallocator=init.gpa;varthreaded:std.Io.Threaded=.init(allocator,.{});deferthreaded.deinit();//const io = threaded.io();varevented:std.Io.Evented=undefined;tryevented.init(allocator,.{.argv0=.init(init.minimal.args),.environ=init.minimal.environ,.backing_allocator_needs_mutex=false,});deferevented.deinit();constio=evented.io();constaddress=tryIo.net.IpAddress.parse("127.0.0.1",8080);varserver=tryaddress.listen(io,.{.reuse_address=true});deferserver.deinit(io);std.debug.print("🚀 Async TCP Event Server started on 127.0.0.1:8080\n",.{});std.debug.print("👀 Listening to incoming messages...\n\n",.{});vargroup:Io.Group=.init;defergroup.cancel(io);while(true){conststream=tryserver.accept(io);errdeferstream.close(io);std.debug.print("Accepted addr: {}\n",.{stream.socket.address});trygroup.concurrent(io,handleClient,.{io,stream});}}fnhandleClient(io:Io,stream:Io.net.Stream)void{deferstream.close(io);varbuffer:[1024]u8=undefined;varreader=stream.reader(io,&buffer);constrif=&reader.interface;while(rif.takeDelimiterInclusive('\n'))|line|{std.debug.print("line: {s}",.{line});}else|err|{std.debug.print("err : {}\n",.{err});switch(err){error.EndOfStream=>{// process tail...constline=rif.take(rif.end-rif.seek)catchunreachable;// eek! better catch ReadFailed again!std.debug.print("final line: {s}\n",.{line});},else=>{},}}}The error I get is:
run
└─ run exe znet
└─ install
└─ install znet
└─ compile exe znet Debug native 2 errors
/home/spookje/Downloads/zig-x86_64-linux-0.17.0-dev.332+4a65cc4ac/lib/std/Io/Uring.zig:2742:32: error: expected type 'error{AccessDenied,BadPathName,Canceled,FileNotFound,NameTooLong,NetworkNotFound,NoDevice,NotDir,PermissionDenied,ProcessFdQuotaExceeded,SymLinkLoop,SystemFdQuotaExceeded,SystemResources,Unexpected}!Io.Dir', found 'error{AccessDenied,BadPathName,Canceled,FileNotFound,NameTooLong,NoDevice,NotDir,PermissionDenied,ProcessFdQuotaExceeded,ReadOnlyFileSystem,SymLinkLoop,SystemFdQuotaExceeded,SystemResources,Unexpected}'
else => |e| return e,
^
/home/spookje/Downloads/zig-x86_64-linux-0.17.0-dev.332+4a65cc4ac/lib/std/Io/Uring.zig:2742:32: note: 'error.ReadOnlyFileSystem' not a member of destination error set
/home/spookje/Downloads/zig-x86_64-linux-0.17.0-dev.332+4a65cc4ac/lib/std/Io/Uring.zig:2718:16: note: function return type declared here
) Dir.OpenError!Dir {
~~~~~~~~~~~~~^~~~
referenced by:
io: /home/spookje/Downloads/zig-x86_64-linux-0.17.0-dev.332+4a65cc4ac/lib/std/Io/Uring.zig:696:14
main: src/main.zig:18:26
5 reference(s) hidden; use '-freference-trace=7' to see all references
/home/spookje/Downloads/zig-x86_64-linux-0.17.0-dev.332+4a65cc4ac/lib/std/Io/Uring.zig:3167:28: error: expected type 'error{AccessDenied,AntivirusInterference,BadPathName,Canceled,DeviceBusy,FileBusy,FileNotFound,FileSystem,FileTooBig,InputOutput,IsDir,NameTooLong,NetworkNotFound,NoDevice,NoSpaceLeft,NotDir,OperationUnsupported,PathAlreadyExists,PermissionDenied,PipeBusy,ProcessFdQuotaExceeded,SymLinkLoop,SystemFdQuotaExceeded,SystemResources,Unexpected,UnrecognizedVolume}!usize', found 'error{AccessDenied,BadPathName,Canceled,DeviceBusy,FileBusy,FileNotFound,FileTooBig,IsDir,NameTooLong,NoDevice,NoSpaceLeft,NotDir,PathAlreadyExists,PermissionDenied,ProcessFdQuotaExceeded,ReadOnlyFileSystem,SymLinkLoop,SystemFdQuotaExceeded,SystemResources,Unexpected}'
else => |e| return e,
^
/home/spookje/Downloads/zig-x86_64-linux-0.17.0-dev.332+4a65cc4ac/lib/std/Io/Uring.zig:3167:28: note: 'error.ReadOnlyFileSystem' not a member of destination error set
/home/spookje/Downloads/zig-x86_64-linux-0.17.0-dev.332+4a65cc4ac/lib/std/Io/Uring.zig:3153:24: note: function return type declared here
) Dir.RealPathFileError!usize {
~~~~~~~~~~~~~~~~~~~~~^~~~~~
error: 2 compilation errors
failed command: /home/spookje/Downloads/zig-x86_64-linux-0.17.0-dev.332+4a65cc4ac/zig build-exe -ODebug --dep znet -Mroot=/home/spookje/Dev/znet/src/main.zig -Mznet=/home/spookje/Dev/znet/src/root.zig --cache-dir .zig-cache --global-cache-dir /home/spookje/.cache/zig --name znet --zig-lib-dir /home/spookje/Downloads/zig-x86_64-linux-0.17.0-dev.332+4a65cc4ac/lib/ --listen=-
Build Summary: 0/5 steps succeeded (1 failed)
run transitive failure
└─ run exe znet transitive failure
├─ compile exe znet Debug native 2 errors
└─ install transitive failure
└─ install znet transitive failure
└─ compile exe znet Debug native (reused)
error: the following build command failed with exit code 1:
.zig-cache/o/0b7820f21cab43b5ee149fff60ce9095/build /home/spookje/Downloads/zig-x86_64-linux-0.17.0-dev.332+4a65cc4ac/zig /home/spookje/Downloads/zig-x86_64-linux-0.17.0-dev.332+4a65cc4ac/lib /home/spookje/Dev/znet .zig-cache /home/spookje/.cache/zig --seed 0x4960eee1 -Zb5140abff4504c8b run
Expected Behavior
The program to compile fine
### Zig Version
0.17.0-dev.332+4a65cc4ac
### Steps to Reproduce and Observed Behavior
Compile this simple zig tcp server,
```zig
const std = @import("std");
const Io = std.Io; // De nieuwe I/O-interface van Zig 0.16
pub fn main(init: std.process.Init) !void {
const allocator = init.gpa;
var threaded: std.Io.Threaded = .init(allocator, .{});
defer threaded.deinit();
//const io = threaded.io();
var evented: std.Io.Evented = undefined;
try evented.init(allocator, .{
.argv0 = .init(init.minimal.args),
.environ = init.minimal.environ,
.backing_allocator_needs_mutex = false,
});
defer evented.deinit();
const io = evented.io();
const address = try Io.net.IpAddress.parse("127.0.0.1", 8080);
var server = try address.listen(io, .{ .reuse_address = true });
defer server.deinit(io);
std.debug.print("🚀 Async TCP Event Server started on 127.0.0.1:8080\n", .{});
std.debug.print("👀 Listening to incoming messages...\n\n", .{});
var group: Io.Group = .init;
defer group.cancel(io);
while (true) {
const stream = try server.accept(io);
errdefer stream.close(io);
std.debug.print("Accepted addr: {}\n", .{stream.socket.address});
try group.concurrent(io, handleClient, .{ io, stream });
}
}
fn handleClient(io: Io, stream: Io.net.Stream) void {
defer stream.close(io);
var buffer: [1024]u8 = undefined;
var reader = stream.reader(io, &buffer);
const rif = &reader.interface;
while (rif.takeDelimiterInclusive('\n')) |line| {
std.debug.print("line: {s}", .{line});
} else |err| {
std.debug.print("err : {}\n", .{err});
switch (err) {
error.EndOfStream => { // process tail...
const line = rif.take(rif.end - rif.seek) catch unreachable; // eek! better catch ReadFailed again!
std.debug.print("final line: {s}\n", .{line});
},
else => {},
}
}
}
```
The error I get is:
```
run
└─ run exe znet
└─ install
└─ install znet
└─ compile exe znet Debug native 2 errors
/home/spookje/Downloads/zig-x86_64-linux-0.17.0-dev.332+4a65cc4ac/lib/std/Io/Uring.zig:2742:32: error: expected type 'error{AccessDenied,BadPathName,Canceled,FileNotFound,NameTooLong,NetworkNotFound,NoDevice,NotDir,PermissionDenied,ProcessFdQuotaExceeded,SymLinkLoop,SystemFdQuotaExceeded,SystemResources,Unexpected}!Io.Dir', found 'error{AccessDenied,BadPathName,Canceled,FileNotFound,NameTooLong,NoDevice,NotDir,PermissionDenied,ProcessFdQuotaExceeded,ReadOnlyFileSystem,SymLinkLoop,SystemFdQuotaExceeded,SystemResources,Unexpected}'
else => |e| return e,
^
/home/spookje/Downloads/zig-x86_64-linux-0.17.0-dev.332+4a65cc4ac/lib/std/Io/Uring.zig:2742:32: note: 'error.ReadOnlyFileSystem' not a member of destination error set
/home/spookje/Downloads/zig-x86_64-linux-0.17.0-dev.332+4a65cc4ac/lib/std/Io/Uring.zig:2718:16: note: function return type declared here
) Dir.OpenError!Dir {
~~~~~~~~~~~~~^~~~
referenced by:
io: /home/spookje/Downloads/zig-x86_64-linux-0.17.0-dev.332+4a65cc4ac/lib/std/Io/Uring.zig:696:14
main: src/main.zig:18:26
5 reference(s) hidden; use '-freference-trace=7' to see all references
/home/spookje/Downloads/zig-x86_64-linux-0.17.0-dev.332+4a65cc4ac/lib/std/Io/Uring.zig:3167:28: error: expected type 'error{AccessDenied,AntivirusInterference,BadPathName,Canceled,DeviceBusy,FileBusy,FileNotFound,FileSystem,FileTooBig,InputOutput,IsDir,NameTooLong,NetworkNotFound,NoDevice,NoSpaceLeft,NotDir,OperationUnsupported,PathAlreadyExists,PermissionDenied,PipeBusy,ProcessFdQuotaExceeded,SymLinkLoop,SystemFdQuotaExceeded,SystemResources,Unexpected,UnrecognizedVolume}!usize', found 'error{AccessDenied,BadPathName,Canceled,DeviceBusy,FileBusy,FileNotFound,FileTooBig,IsDir,NameTooLong,NoDevice,NoSpaceLeft,NotDir,PathAlreadyExists,PermissionDenied,ProcessFdQuotaExceeded,ReadOnlyFileSystem,SymLinkLoop,SystemFdQuotaExceeded,SystemResources,Unexpected}'
else => |e| return e,
^
/home/spookje/Downloads/zig-x86_64-linux-0.17.0-dev.332+4a65cc4ac/lib/std/Io/Uring.zig:3167:28: note: 'error.ReadOnlyFileSystem' not a member of destination error set
/home/spookje/Downloads/zig-x86_64-linux-0.17.0-dev.332+4a65cc4ac/lib/std/Io/Uring.zig:3153:24: note: function return type declared here
) Dir.RealPathFileError!usize {
~~~~~~~~~~~~~~~~~~~~~^~~~~~
error: 2 compilation errors
failed command: /home/spookje/Downloads/zig-x86_64-linux-0.17.0-dev.332+4a65cc4ac/zig build-exe -ODebug --dep znet -Mroot=/home/spookje/Dev/znet/src/main.zig -Mznet=/home/spookje/Dev/znet/src/root.zig --cache-dir .zig-cache --global-cache-dir /home/spookje/.cache/zig --name znet --zig-lib-dir /home/spookje/Downloads/zig-x86_64-linux-0.17.0-dev.332+4a65cc4ac/lib/ --listen=-
Build Summary: 0/5 steps succeeded (1 failed)
run transitive failure
└─ run exe znet transitive failure
├─ compile exe znet Debug native 2 errors
└─ install transitive failure
└─ install znet transitive failure
└─ compile exe znet Debug native (reused)
error: the following build command failed with exit code 1:
.zig-cache/o/0b7820f21cab43b5ee149fff60ce9095/build /home/spookje/Downloads/zig-x86_64-linux-0.17.0-dev.332+4a65cc4ac/zig /home/spookje/Downloads/zig-x86_64-linux-0.17.0-dev.332+4a65cc4ac/lib /home/spookje/Dev/znet .zig-cache /home/spookje/.cache/zig --seed 0x4960eee1 -Zb5140abff4504c8b run
```
### Expected Behavior
The program to compile fine