Rewrite majority of impl reusing libstd (#34)
* Rewrite FdEntry reusing as much libstd as possible
* Use the new FdEntry, FdObject, Descriptor struct in *nix impl
* Adapt Windows impl
* Remove unnecessary check in fd_read
Check `host_nread == 0` caused premature FdEntry closure and removal
which ultimately was resulting in an attempt at "double closing" of
the same file descriptor at the end of the Wasm program:
...
fd_close(fd=4)
-> errno=WASI_ESUCCESS
fd_close(fd=4)
-> errno=WASI_EBADF
* Use libstd vectored IO
* Use std:🧵:yield_now to implement sched_yield
* Add logging to integration tests
* Add preliminary support for host-specific errors
* Operate on std::fs::File in path_get on *nix
* Add cross-platform RawString type encapsulating OsStrExt
* Fix Windows build
* Update Travis and README to Rust v1.36
* Remove unused winx::handle::close helper
* Refactor Descriptor into raw handles/fds
* Strip readlinkat in prep for path_get host-independent
* Strip openat in prep for path_get host-independent
* Move ManuallyDrop up one level from Descriptor to FdObject
* Make (c)iovec host fns unsafe
* Swap unwraps/expects for Results in fdentry_impl on nix
* Rewrite fd_pread/write and implement for Win
* Use File::sync_all to impl fd_sync
* Use File::sync_data to impl fd_datasync
* Rewind file cursor after fd_p{read, write} on Windows
* Add fd_p{read, write} tests
* Handle errors instead of panicking in path_get
* Use File::set_len to impl fd_allocate
* Add test for fd_allocate
* Replace all panics with Results
* Document the point of RawString
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
# wasi-common
|
||||
[![travis-build-status]][travis] [![appveyor-build-status]][appveyor] [![rustc-1.35]][rustc]
|
||||
[![travis-build-status]][travis] [![appveyor-build-status]][appveyor] [![rustc-1.36]][rustc]
|
||||
|
||||
[travis-build-status]: https://travis-ci.org/CraneStation/wasi-common.svg?branch=master
|
||||
[travis]: https://travis-ci.org/CraneStation/wasi-common
|
||||
[appveyor-build-status]: https://ci.appveyor.com/api/projects/status/github/cranestation/wasi-common?svg=true
|
||||
[appveyor]: https://ci.appveyor.com/project/cranestation/wasi-common
|
||||
[rustc-1.35]: https://img.shields.io/badge/rustc-1.35+-lightgray.svg
|
||||
[rustc]: https://blog.rust-lang.org/2019/05/23/Rust-1.35.0.html
|
||||
[rustc-1.36]: https://img.shields.io/badge/rustc-1.36+-lightgray.svg
|
||||
[rustc]: https://blog.rust-lang.org/2019/07/04/Rust-1.36.0.html
|
||||
[Wasmtime]: https://github.com/CraneStation/wasmtime
|
||||
[Lucet]: https://github.com/fastly/lucet
|
||||
[lucet-wasi]: https://github.com/fastly/lucet/tree/master/lucet-wasi
|
||||
@@ -20,7 +20,7 @@ such as [Wasmtime] and [Lucet].
|
||||
The library is an adaption of [lucet-wasi] crate from the [Lucet] project, and it is
|
||||
currently based on [40ae1df][lucet-wasi-tracker] git revision.
|
||||
|
||||
Please note that the library requires Rust compiler version at least 1.35.0.
|
||||
Please note that the library requires Rust compiler version at least 1.36.0.
|
||||
|
||||
## Supported syscalls
|
||||
|
||||
|
||||
Reference in New Issue
Block a user