Pat Hickey
9e04c5333c
poll oneoff tests: what if we read a non-empty file?
2021-05-05 13:08:33 -07:00
Pat Hickey
e0f3423161
support windows
2021-05-04 14:28:45 -07:00
Pat Hickey
f76fe8b764
rewrite wasi-tokio as just an task::block_in_place wrapper on cap-std-sync
2021-05-04 14:15:50 -07:00
Pat Hickey
3df9cddf10
better unit test
2021-05-03 11:59:30 -07:00
Pat Hickey
7f34ccb909
various fixes to the design of Poll
2021-04-30 15:38:18 -07:00
Pat Hickey
b7efcbe80f
jump through enough hoops for the poll lifetime to work out
...
you program rust for a few years and you think you're done tearing your
hair out over lifetimes, well, you'll find yourself wrong
2021-04-29 16:50:22 -07:00
Pat Hickey
b3e1ab4553
restructure Poll to hold a Table and fd instead of a RefMut<dyn WasiFile>
...
unfortunately, the borrow checker defeated me: changing the
RwSubscription file form a Ref to a RefMut turned into borrow checker
errors in the impl of the poll_oneoff trait method.
This implementation makes an end run by having Poll hold onto the table
and fd, and borrow the file at the site of use, rather than try to own
the RefMut. I have no idea why this convinces the borrow checker that
anything is different, but it does and I need to get this PR done and
I don't think comprimising on this internal abstraction is worth
fighting against
2021-04-28 11:56:48 -07:00
Pat Hickey
a532d0f379
subscribe to mut fds
2021-04-26 16:42:02 -07:00
Pat Hickey
b307dce2ab
add readable and writable futures to WasiFile trait
2021-04-26 14:43:16 -07:00
Pat Hickey
564e43d1b3
WasiDir: make all operations async
2021-04-14 15:22:25 -07:00
Pat Hickey
00e58567d9
WasiFile: all operations are now async
...
only fn as_any(&self) -> &dyn Any doesnt get to be async.
2021-04-14 15:17:31 -07:00
Pat Hickey
025a1ecff4
wasi-common: snapshots 0 and 1 traits are all async now
2021-04-14 15:05:38 -07:00
Pat Hickey
68daec7e7d
wasi-common: WasiSched is an async trait now; poll_oneoff and sched_yield are async methods
2021-04-13 17:51:18 -07:00
Pat Hickey
1d663bfd71
delete straggler InDataField
2021-03-24 11:19:12 -07:00
Pat Hickey
e6c7e00a52
wiggle-using crates: delete GuestErrorConversion
2021-03-24 10:39:06 -07:00
Pat Hickey
81dfb9c458
wasi: make WasiSched::sleep fallible
...
some systems do not support sleeping and may want to return EINVAL here.
2021-03-23 10:20:03 -07:00
Dan Gohman
2880dab8f8
Add a sleep function to the WasiSched trait.
2021-03-22 12:50:16 -07:00
Dan Gohman
6b40724d18
Support "sleep" forms of poll_oneoff.
...
Add support for `poll_oneoff` calls which just sleep on a relative
timeout. This fixes a bug handling code compiled with WASI libc's `sleep`
family of functions, which call `poll_oneoff` with a `CLOCK_REALTIME`
timer, which wasn't previously implemented.
2021-03-22 12:50:16 -07:00
Dan Gohman
cba0144612
Use min_by instead of sort_by when we only want the minimum element.
...
This is just a minor code simplification I happened to notice while
doing unrelated work on `poll_oneoff`.
2021-03-22 11:08:28 -07:00
Christopher Serr
cc84c693a3
wasi-common: Timestamps should be in nanoseconds ( #2717 )
...
Sleeping takes 1000x longer than it should because the timestamps are
interpreted as microseconds by accident.
2021-03-10 09:09:34 -06:00
Pat Hickey
bcebdd43ef
wiggle use sites: remove ctx argument
2021-03-04 18:16:37 -08:00
Pat Hickey
c9d8ed03c9
wasi-common: fix fdstat of dirfd
...
the fdstat of a dirfd needs to include both the file and dir rights in
the inheriting field.
The wasi-libc path_open bases the base rights of child directories off
the inheriting rights of the parent, so if we only put file rights in
there, opening a child directory will not have any directory operations
permitted.
Fixes https://github.com/bytecodealliance/wasmtime/issues/2638
2021-02-10 16:53:39 -08:00
Pat Hickey
e4ce04bab4
WasiCtx: default to empty/sink stdio files rather than throw
...
the test harness now uses the empty stdin file. I tested manually that
the sink stdout & stderr files work, but theres no test in tree at the
moment
2021-02-05 17:50:20 -08:00
Pat Hickey
e2b67aa9a3
simplify life for readdir implementors
2021-02-03 18:04:26 -08:00
Pat Hickey
d62b0a1f97
table keys can wrap around
2021-02-03 11:09:05 -08:00
Pat Hickey
857ef411b5
upstream fixes are pending for symlink_create & nofollow_errors on windows
2021-02-02 16:23:57 -08:00
Pat Hickey
dec0038ba0
add a readdir unit test to wasi-cap-std-sync
2021-02-01 19:40:24 -08:00
Pat Hickey
7daa7763e0
rustdoc the errors
2021-02-01 18:04:49 -08:00
Pat Hickey
0ef691b74e
rustdocs!!
2021-02-01 18:01:47 -08:00
Pat Hickey
e511dac9ec
rustdoc the table
2021-02-01 17:56:20 -08:00
Pat Hickey
7919b191ed
fix tests and exports
2021-02-01 17:06:00 -08:00
Pat Hickey
f17bff5490
fill in Deterministic impl of RngCore
2021-02-01 16:25:38 -08:00
Pat Hickey
e9ad3611f6
get rid of outdated cfg_attr
2021-02-01 16:16:13 -08:00
Pat Hickey
5ee093e774
Merge remote-tracking branch 'origin/main' into pch/wasi_common_cap_std
2021-02-01 13:21:25 -08:00
Peter Huene
4632228b35
Fix fd_readdir to properly truncate directory entry names.
...
Previously, `fd_readdir` was truncating directory entry names based on the
calculation of `min(name_len, buf_len - bufused)`, but `bufused` was not being
updated after writing in the `dirent` structure to the buffer.
This allowed `bufused` to be incremented beyond `buf_len` and returned as the
number of bytes written to the buffer, which is invalid.
This fix adjusts `bufused` when the buffer is written to for the `dirent` so
that name truncation happens as expected.
Fixes #2618 .
2021-02-01 11:41:12 -08:00
Pat Hickey
bad169dde3
port https://github.com/bytecodealliance/wasmtime/pull/2620 into rewrite
2021-02-01 11:10:26 -08:00
Pat Hickey
e940d31f95
add a noent / not_found errorkind
2021-01-30 13:36:41 -08:00
Pat Hickey
3d406ff50e
Dir::open_file can just pass read/write as bools, centralizing FileCaps decoding
...
this way the impls of File/Dir don't need to know about any caps!
2021-01-29 21:04:34 -08:00
Pat Hickey
95ad13c82d
wasi-common: break dep on system-interface by defining our own Advice enum
2021-01-29 17:03:08 -08:00
Pat Hickey
897b4fb8ab
wasictxbuilder: assert that stdio is provided
2021-01-29 15:48:55 -08:00
Pat Hickey
d738a4a588
preview 0: copy bodies of read, write, and poll_oneoff from snapshot 1
2021-01-29 12:07:21 -08:00
Pat Hickey
ef2cb7b6b7
nearly have snapshot 0 implemented...
2021-01-28 17:00:31 -08:00
Pat Hickey
47fec44c10
move wasi-c2 into wasi-common
2021-01-28 15:15:50 -08:00
Pat Hickey
dd005208b6
delete wasi-common, yanix, winx
2021-01-28 15:13:45 -08:00
Pat Hickey
32f162aa78
fix windows flags
2021-01-12 09:51:09 -08:00
Pat Hickey
b53aecb367
Merge branch 'pch/wiggle_flags_bitflags' into pch/wasi_common_cap_std
2021-01-11 18:31:43 -08:00
Pat Hickey
75a9dc7fe2
wasi-common: wiggle flags are now bitflags!
...
this mostly mechanical change is just getting rid of passing to
`contains` by reference.
2021-01-11 18:27:55 -08:00
Pat Hickey
a900d0431d
Merge remote-tracking branch 'origin/main' into pch/wasi_common_cap_std
2021-01-07 16:39:27 -08:00
Pat Hickey
539058b329
fix windows
2021-01-07 14:57:18 -08:00
Pat Hickey
13cd7a4a8e
Merge branch 'pch/wiggle_trapping' into pch/wasi_common_cap_std
2021-01-07 14:10:59 -08:00