Rust 1.34 gets errors like this:
```
$ cargo +1.34.0 build --release
Compiling cranelift-wasm v0.32.0 (cranelift/cranelift-wasm)
error[E0259]: the name `std` is defined multiple times
|
= note: `std` must be defined only once in the type namespace of this module
error: aborting due to previous error
For more information about this error, try `rustc --explain E0259`.
error: Could not compile `cranelift-wasm`.
To learn more, run the command again with --verbose.
```
Updating to Rust 1.35 fixes this.
* 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.