* Add partial impl of determine_type_rights fn
* Add draft of fd_fdstat_get hostcall
* Add writev wrapper for writing IoVec in RawHandle
* Move IoVec and writev to separate helper crate
* Add Win error handling
Clean up closing and duplicating RawHandle
* Wrap Win file type result
* Add draft impl of fd_close and fd_read
* Refactor getting file access rights
* Remove winapi from the main Cargo.toml
* Add very rough draft of open_path (very incomplete)
* Clean up WinError with macro
* Ignore dir handle in openat if path absolute
* Decode oflags and advance open_path hostcall
* Clean up AccessRight and FlagsAndAttributes flags
* Implement path_get (without symlink expansion yet!)
* Add ShareMode and fix path_get for nested paths
* Add some error mappings between Win and WASI
* Clean up fdflags conversions
* Fix sharing violation when calling openat at '.'
* Apply Alex's fix of using ManuallyDrop instead forget
* Clean up
* Explicitly specify workspace to avoid comp errors at tests
Now, test binaries are bundled with the repo, and
just like in CraneStation/wasmtime, the test cases
are generated automatically using build.rs. So all
it takes is to drop a new test binary in the
testsuite dir to get the test case for it generated
(with some caveats to do with handling preopens).
Surfaced when running sunfishcode/misc-tests. When trying to
truncate the file without the __WASI_RIGHT_PATH_FILESTAT_SET_SIZE
right, error __WASI_ENOTCAPABLE was correctly returned, however,
the guest fd pointer was not encoded to -1 in that case. This
commit fixes it by taking out the guest fd encoding out of the
conditional branch which turns out obsolete.
This adds the C WASI implementation as a new crate, wasmtime-wasi-c,
and adds a command-line flag to the wasmtime command-line driver to
select which WASI implementation to use.