This commit extracts changes to core libraries made in the WASIX branch.
It is not reasonable to extract the partial commit history, so this is
just a batch commit.
The history will make a bit more sense again if we decide to merge the
WASIX branch with full commit history.
- Fixed an issue with tokio missing io-util on JS builds
- Fixed an issue where duplicate stdio file descriptors was not preserving the is_stdio flag
- Added a text file that describes a suite of integration tests for WASIX
- Added compiled WASIX programs used for testing purposes
- Fixed the wasi_wast unit tests which were not async
- Fixed an issue with the stack capture and restore syscalls
- Fixed a deadlock on the event notification read syscall
- Fixed some missing stderr messages on execution failures
- Implemented some cleanup calls when a WASI process exits
- Fixed an issue where too many file descriptors were being opened when vforking
- Fixed the stdin and stdout host implementations which were not working
- Removed wai-bindgen-rust as a dependency as it does not compile on the browser (even when optional)
- Implemented multi-threading for both JS and SYS, plus other WASIX implementations
- Added a longjmp capability required for bash and other WASIX implementations
- Added real signals to WASIX
- Added a stack unwinding and winding functionality
- Implemented memory forking which will be used for process forking
- Added the ability to fork the current process
- Added the vfork functionality
- Moved over to the WasiPipe implementation
- Added more syscalls needed for bash on WASIX
- Ported wasmer-os into wasmer
- Added a union file system and the character devices
- Moved the cursors to the file handles rather than the file so that they are multithread safe and can handle concurrent IO
- Reimplemented the poll_oneoff functionality to support full ASYNC
- Added support for mapping directories in the host file system into WASIX sandbox file systems
- Implemented fully ASYNC sockets and emulated ASYNC files
- Made the file locks more granular to allow for concurrent poll and accept operations
- Fixed a race condition on the event notifications