The implementations were previously already replaced with stub impls.
After ensuring that the current wasix modules don't actually import the
syscalls, we can now safely remove all the plumbing, including:
* syscalls
* types
- Removed generation_arena which was causing some serious leakages of files and sockets
- Added OsError for NetworkErrors so that "Too Many Open Files" is properly passed
- Local networking will now cap at 10 sockets in the backlog
- Added the missing shutdown error code
- Removed the inodes lock around most of the WASI syscalls
- Fixed some race conditions in the event notifications for WASI
- The polling loop will now only notify a closed socket once
- Event notifications now uses Wakers rather than MPSC
- Some socket errors now return the right codes which prevents panics in WASM
- Fixed a bug where the file read and write guards might release the file before the lock
- The inode seed is now much safer preventing overlaps
- The fd seed is now much safer preventing overlaps
- Closing files is now implicit rather than explicit reducing possibliities for error
- Forking of file descriptors is now much simplier
- Polling events will now be returned in random order to prevent some race conditions
- Removed a number of memory allocations which were wasting memory and performance
- Sockets now only copy the send and recv data once rather than multiple times
Initial step towards implementing wasix http client support for Wasm
instances using WAI generated bindings.
Adds a "wasix_http_client_v1.wai" schema for http clients.
Extends the wasi-types type generator to also generate Wasmer host
bindings for the wasix_http_client_v1 bindings.
These are written to wasi-types/src/wasix.
Some custom fixup of the bindings is needed.
Also adds a patch to Cargo.toml that forces wai-bindgen-wasmer to use
the repo-local wasmer crate.
Also adds generation of Rust client bindings.
Replace the lib/wasi-types/regenerate.sh shell script with a Rust
implementation.
We already had some Rust fixup code in lib/wasi-types/wasi-types-generator-extra.
This mostly just converts the "wai-bindgen" CLI invokation into Rust
code that uses the wai-bindgen crates as a dependency.
Also moves the .wit files from "wit-clean" to ./schema/wasi and uses the
.wai extension.
The ./schema dir will also hold Wasix-specific definitions in the future.