* Basic changes for RISC-V support
* RISC-V in compiler LLVM
* RISC-V support in dylib engine
* RISC-V support in universal engine
* Various small fixes
* [RISCV] LLVM-riscv working, with some ignored tests to be worked on later
* Update rustc to 4.65 (1.64 has some issue with riscv64 target)
* Fixed some (new) Linting issues
* Updated Cargo.toml and remove split-debuginfo for Windows build
* Removed profile.dev from Cargo.toml as it cannot be per platform (breaks Windows). split-debug info is now the default value
* Enable Cranelift compiler for RISCV
* Update crates and fixed all the new clippy errors
* Taken review remarks into account
* Removed change from deny.toml, it's not needed anymore
* Added some more comment about llvm abi hack
* Added doc about current state of RISCV support
* Fixed (newer) linter
---------
Co-authored-by: Toru Nayuki <tnayuki@icloud.com>
We don't want this impl anymore, because the user should be forced to
supply the virtual task manager manually so they are cognizent of the
fact they WASIX is running on an async runtime.
We already depend on `tempfile`, which also provides temp dir
functionality.
This gets rid of a cargo-deny error due to a race condition in
remove_dir_all, which is a dependency of the removed "tempdir" crate.
Also bumps the minimum tempfile version in Cargo.toml files to be
consistent.
* Rename BidiPipe to DuplexPipe, because the name is better
* Make the fields private: gives us more flexibility in the future
* Add a split() method and accessors for send and receive
Makes the WasiState type private, and replaces it's usage with WasiEnv
where needed.
WasiState is a complex type with many implementation details, it should
not be public.
Introduces a new WasiEnvInit type that should hold all information
required for initializing an instance.
An instance can then be created with WasiEnv::instantiate().
This method takes care of all the required setup steps to properly run a
wasi(X) module.
- 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