-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sync wasi-cli with wit definitions in standards repo #6806
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pchickey
force-pushed
the
pch/sync_wasi_cli
branch
2 times, most recently
from
August 14, 2023 21:03
8ef69e5
to
0e59b26
Compare
pchickey
requested review from
fitzgen and
elliottt
and removed request for
a team and
fitzgen
August 14, 2023 23:25
elliottt
approved these changes
Aug 14, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks great!
…si-cli wasi-cli import is sum of WebAssembly/wasi-cli#19 and WebAssembly/wasi-cli#20
it turns out this isnt semantically meaningful, since the package name is in the document itself now, but lets be consistient
…rminal CI environments vary - let the test runner make sure the host process's stdio is in fact a terminal before asserting that the guest sees it is a terminal.
which means making a newtype around Stdout and Stderr instead of using a type alias there. and then use the is-terminal impl to fill in the isatty field in the builder when inheriting. if you need to override it you can always builder.stdin(stdio::stdin(), your_own_idea_of_isatty)
elliottt
force-pushed
the
pch/sync_wasi_cli
branch
from
August 15, 2023 00:16
d2e445a
to
faa8e61
Compare
(I rebased the branch on main to resolve the merge conflict.) |
eduardomourar
pushed a commit
to eduardomourar/wasmtime
that referenced
this pull request
Aug 18, 2023
…e#6806) * rename wasi-cli-base to wasi-cli, delete `preview` package, import wasi-cli wasi-cli import is sum of WebAssembly/wasi-cli#19 and WebAssembly/wasi-cli#20 * wasi impl: change bindgen arguments and mod paths from cli_base to cli * correct name of wasi-cli deps dir to just `deps/cli/` it turns out this isnt semantically meaningful, since the package name is in the document itself now, but lets be consistient * track whether stdio isatty in ctx, and impl the cli/terminal-* interfaces * rebase fixup * wasi wits: define the reactor adapter's world * component adapter: fixes * test-programs/command-tests: fix renaming cli_base to cli * component adapter: fix manually-defined export and import names * test harness fixes * preview1 component adapter: fill in isatty detection * implement isatty in preview2-to-preview1 host adapter * test-programs: cover both when stdio isatty and not prtest:full * split isatty test for regular file and stdio, detect host stdio is_terminal CI environments vary - let the test runner make sure the host process's stdio is in fact a terminal before asserting that the guest sees it is a terminal. * provide an is-terminal impl for all preview2's stdio types which means making a newtype around Stdout and Stderr instead of using a type alias there. and then use the is-terminal impl to fill in the isatty field in the builder when inheriting. if you need to override it you can always builder.stdin(stdio::stdin(), your_own_idea_of_isatty) * finally, rename IsATTY variants to Yes and No * Fix the reference to IsATTY::No * more forgotten renamings --------- Co-authored-by: Trevor Elliott <telliott@fastly.com>
geekbeast
pushed a commit
to geekbeast/wasmtime
that referenced
this pull request
Aug 18, 2023
…time into feature/wasi-nn-preview-2 * 'feature/wasi-nn-preview-2' of github.com:geekbeast/wasmtime: Memcheck for Wasm guests in Wasmtime (bytecodealliance#6820) CI: upgrade to qemu 8.0.4. (bytecodealliance#6849) Sync wasi-cli with wit definitions in standards repo (bytecodealliance#6806) Rename `preview2::preview2` to `preview2::host` (bytecodealliance#6847) winch: Simplify the MacroAssembler and Assembler interfaces (bytecodealliance#6841) There are no files in `preview1` other than `mod.rs` (bytecodealliance#6845) Update stdio on Unix to fall back to worker threads (bytecodealliance#6833) Update RELEASES.md (bytecodealliance#6838) Minor documentation updates to docs/WASI-tutorial.md (bytecodealliance#6839) Add support for vector in DataValueExt::int() (bytecodealliance#6844)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR synchronizes the wasi:cli package with the upstream spec definition.
As part of this PR I upstreamed changes from the wasmtime repo:
WebAssembly/wasi-cli#19
WebAssembly/wasi-cli#20
The changes arriving downstream in this change are
terminal-{input, output, stdin, stdout, stderr}
functions to the cli implementation, which allows us to implementisatty
, bringing preview2's view of stdio to parity with preview 1, where fd_filestat_get could be used to determine whether stdio were ttys. I made some changes in wasi-tests to exercise this functionality to show that it works in all 5 of our WASI implementations. (yes i roll my eyes every time i type all 5 wasi implementations too. because i wrote them. what have i done. what did they do to us)