feat: std.socket nonblocking surface — fcntl, errno, typed _nb wrappers (PLAN-HTTPZ S2)
set_nonblocking (C-variadic fcntl), errno via __error (darwin; C3 selects per-OS), and accept_nb/read_nb/write_nb returning a typed SockErr — WouldBlock / Closed / Fault — so readiness-loop callers never parse -1/errno pairs. EINTR retries internally; accept_nb skips ECONNABORTED. Adds connect, shutdown, socketpair, AF_UNIX, SHUT_*. examples/1630 pins the result algebra on a socketpair and a nonblocking TCP listener (WouldBlock on empty backlog, accept after loopback connect); verified under sx run AND sx build. The .ir snapshot regen is mechanical: new std decls shift @str/@tag.str numbering and grow the type table (179 -> 185).
This commit is contained in:
@@ -803,9 +803,42 @@ declare i32 @listen(i32, i32) #0
|
||||
; Function Attrs: nounwind
|
||||
declare i32 @accept(i32, ptr, ptr) #0
|
||||
|
||||
; Function Attrs: nounwind
|
||||
declare i32 @connect(i32, ptr, i32) #0
|
||||
|
||||
; Function Attrs: nounwind
|
||||
declare i32 @shutdown(i32, i32) #0
|
||||
|
||||
; Function Attrs: nounwind
|
||||
declare i32 @socketpair(i32, i32, i32, ptr) #0
|
||||
|
||||
; Function Attrs: nounwind
|
||||
declare i32 @fcntl(i32, i32, ...) #0
|
||||
|
||||
; Function Attrs: nounwind
|
||||
declare i16 @htons(ptr, i64) #0
|
||||
|
||||
; Function Attrs: nounwind
|
||||
declare ptr @__error() #0
|
||||
|
||||
; Function Attrs: nounwind
|
||||
declare i32 @errno(ptr) #0
|
||||
|
||||
; Function Attrs: nounwind
|
||||
declare i1 @is_wouldblock(ptr, i32) #0
|
||||
|
||||
; Function Attrs: nounwind
|
||||
declare i1 @set_nonblocking(ptr, i32) #0
|
||||
|
||||
; Function Attrs: nounwind
|
||||
declare i64 @accept_nb(ptr, i32) #0
|
||||
|
||||
; Function Attrs: nounwind
|
||||
declare [2 x i64] @read_nb(ptr, i32, ptr, i64) #0
|
||||
|
||||
; Function Attrs: nounwind
|
||||
declare [2 x i64] @write_nb(ptr, i32, ptr, i64) #0
|
||||
|
||||
; Function Attrs: nounwind
|
||||
declare ptr @mem_realloc.3(ptr, ptr, ptr, i64, i64, i64) #0
|
||||
|
||||
@@ -1286,6 +1319,15 @@ declare void @log_emit(ptr, ptr, ptr) #0
|
||||
; Function Attrs: nounwind
|
||||
declare void @assert.74(ptr, i1) #0
|
||||
|
||||
; Function Attrs: nounwind
|
||||
declare i32 @clock_gettime(i32, ptr) #0
|
||||
|
||||
; Function Attrs: nounwind
|
||||
declare i64 @now_secs(ptr) #0
|
||||
|
||||
; Function Attrs: nounwind
|
||||
declare i64 @mono_ms(ptr) #0
|
||||
|
||||
; Function Attrs: nounwind
|
||||
declare void @BuildOptions.add_link_flag.75(i64, ptr) #0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user