4 Commits

Author SHA1 Message Date
Alex Crichton
a2935a4fa4 Update wit-bindgen for upcoming WIT changes (#580)
* 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
2023-05-26 12:30:24 -05:00
Jiaxiao Zhou
5ed959e9a2 fix: enriched the keyword set and fixed Cgen keyword resolution (#483)
* enriched the keyword set and fixed Cgen keyword resolution

Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>

* added name resolution for java-bindgen

Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>

* fix keywords.wit test for Java generator

Signed-off-by: Joel Dice <joel.dice@fermyon.com>

* run cargo fmt

Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>

---------

Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
Signed-off-by: Joel Dice <joel.dice@fermyon.com>
Co-authored-by: Joel Dice <joel.dice@fermyon.com>
2023-02-08 08:51:10 -06:00
Alex Crichton
d7b870268e Update the wit-{component,parser} crates (#457)
* 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>
2023-01-20 15:41:38 -06:00
Dan Gohman
dde0dc92a3 Use to_rust_ident to generate identifiers in Rust code. (#441)
This handles keywords which collide with identifiers.
2022-11-23 17:50:11 -06:00