* Update Rust codegen for new WIT changes
* Update the markdown generation for new WIT
* more-rust
* Update the C generator for new WIT
* Get Rust guest tests compiling
* Get rust host tests working
* Get all C tests passing
* Turn off teavm-java and Go tests for now
* Fixup lockfile after rebase
* Bump crate versions
* Update dependency sources
* Update to wasmtime dep
* Update the Rust guest generator
This commit updates the `wit-parser` and `wit-component` dependencies to
the latest 0.4.0 versions on crates.io, namely pulling in support for
`use`. This updates the `*.wit` codegen tests and gets all the codegen
tests working for the `gen-guest-rust` crate. This does not get the
entire repository's tests running.
The major changes here are:
* The `WorldGenerator` trait has been adapted for worlds and the new
APIs of `wit-parser`.
* The Rust guest generator now supports bare function imports as well as
bare function exports.
* The syntax in the Rust macro now mirrors the syntax in the Wasmtime
`bindgen!` macro where `generate!("foo")` will look for the document
`foo.wit` in `$CARGO_MANIFEST_DIR/wit/foo.wit` and look for a `default
world` inside there.
* The codegen and runtime macros have been refactored to get separated
and additionally have conditional compilation working so one generator
can be tested in isolation without requiring all others working.
* The `rust-macro-shared` crate is now removed since Wasmtime no longer
resides here and it's merged directly into the `guest-rust-macro`
crate. Note that many changes happened here since the macro syntax and
integration with `wit-parser` has changed.
Note that no new tests were added in this commit, and that'll be a
follow-up.
* Add support for using types across interfaces to Rust
* Support renaming interfaces in imports
* Get all codegen tests for JS passing again
* Fix build of wasi_snapshot_preview1 for this repo
* Get unions tests building again
* Get the flavorful test compiling again
* Get the records test compiling again
* Get the many arguments test compiling again
* Get the smoke test compiling again
* Get numbers test compiling again
* Get list test compiling again
* Get variants test compiling again
* Get results test compiling again
* Get invalid test compiling again
* Get all runtime JS tests passing
Change a few bits and pieces of the JS host generator as necessary and
temporarily disable other guest generators.
* Use git repo for wit-{component,parser} patch
* Update C generator for new WIT
* Get the bare bones of teavm-java working
Runtime tests will need some more work to get passing.
* Get CLI and markdown crate building again
* Update build of demo
* Use updated crates.io dep for wit-component
* fix Java runtime test regressions (#1)
Signed-off-by: Joel Dice <joel.dice@fermyon.com>
Signed-off-by: Joel Dice <joel.dice@fermyon.com>
* Update wasm-tools on CI
* Review comments
Signed-off-by: Joel Dice <joel.dice@fermyon.com>
Co-authored-by: Joel Dice <joel.dice@fermyon.com>
* Update all codegen tests to world syntax
This enables simplifying codegen tests as well by having each test
exercise imports/exports instead of having all code generators have one
case for imports and one for exports.
* Update codegen tests for the C guest generator
* Update teavm codegen tests for worlds
* Remove the `--name` argument from the CLI
No longer needed as the name is inferred from the `*.wit` world.
* Get all js host generator tests working
Update all `runtime/*` tests with new naming conventions, world files,
etc. Minor updates were made to names as I ended up using different
conventions for the `*.wit` world files than were previously exercised.
This also fixes a few minor issues with the output for the JS generator
in the default ESM mode.
* Get all host-wasmtime tests working with worlds
Various small updates here and there to namings and such.
* Get all Python tests working with worlds
Fix support for exported instances by using correct import paths for
various types/intrinsics/etc. Additionally update the codegen tests to
specify a mypy cache dir to avoid racing between tests.
* Update demo build for worlds
Also fix an issue with the Rust host generator where it used an
interface's name instead of the name of the import for import module names.
* Update demo with world files
* remove Canonical ABI name mangling
this reverts a big chunk of the functionality introduced in https://github.com/bytecodealliance/wit-bindgen/pull/309
* multi-return.wit: namespace these export functions
the tests already export functions named a,b,c in strings.wit. We can't
define more functions with that same name.
* remove mangled names from tests/runtime/invalid/wasm.rs
* WIP: Update for component model multireturn and removal of unit
This PR updates wit-bindgen for the latest changes to the component model:
- the return of multireturn
- removal of the `unit` type
- a new syntax for optional types in results, streams, futures and variants
all of which go hand in hand.
This also pulls in the latest versions of wasm-encoder, wasmprinter,
and wasmparser crates to get their updates for these component model changes.
* Get all wit-bindgen tests working
* Implement tests for multi-return
Exercise this throughout the runtime tests and additionally add a few
variants in codegen tests to ensure that this is exercised.
* Update markdown generator
Co-authored-by: George Kulakowski <gkulakowski@fastly.com>