WebAssembly/wasi-libc

why no dedicated __wasi_snapshot_preview1_fd_openat syscall?

Opened this issue · 2 comments

I just realized the open(2) is too complicated on wasm and even this syscall is too complicated
https://github.com/trcrsired/wasi-libc/blob/c8352f8c145fe1fc21db79893f45ed7aa4d9eef2/libc-bottom-half/sources/__wasilibc_real.c#L437

There are no reasons to be so complicated tbh. Why no just a dedicated __wasi_snapshot_preview1_fd_openat syscall?

int __wasilibc_find_relpath(const char *path,

This is too complicated and not thread safe probably

sbc100 commented

I just realized the open(2) is too complicated on wasm and even this syscall is too complicated https://github.com/trcrsired/wasi-libc/blob/c8352f8c145fe1fc21db79893f45ed7aa4d9eef2/libc-bottom-half/sources/__wasilibc_real.c#L437

There are no reasons to be so complicated tbh. Why no just a dedicated __wasi_snapshot_preview1_fd_openat syscall?

IIUC correctly __wasi_snapshot_preview1_path_open is effectively syscall_openat. Its first argument is a file descriptor which is non-optional. What preview1 does not have (by design) is syscall_open (without the fd argument).