Commit 16994da
authored
feat: add guest binding generator for TinyGo/Go (#471)
* created wit-bindgen-gen-guest-go crate and added to the clap CLI
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* rewrote import and export using a more generic conversion method
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* milestone: records working
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* simply code
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* milestone: tuple works
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* milestone: list works
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* milestone: string works
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* milestone: option works
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* implemented result type
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* milestone: result works
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* milestone: result option work
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* added codegen for go bindgen. Further work needs to pass all the tests
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* get more tests passed, including conventions
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* now flags and alias are working
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* milestone: implemented multi-return
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
cargo clippy
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* milestone: implemented union, enum and variantss
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* rewrite lower's Result for imports
* avoid Go keywords conflict with wit's variable names
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* milestone: all codegen tests passed.
The issue with "fragment is larger than or outside of variable" is
a known issue and has been resolved in tinygo v0.26.
However, tinygo v0.26 introduces a regression for wasm/wasi target
where the compiler panics when size 0 passed to malloc. See
tinygo-org/tinygo#3303 for details
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* refactor: add gen-guest-c dependency to gen-guest-go.
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* cargo lock file
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* milestone: passed new tests associated cross-interface feature
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* formatted code
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* gh action: installed tinygo
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* install go 1.19
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* generate C files together with Go files
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* added option-result test
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* fix a typo in wit-bindgen-cli doc
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* updated README to include gen-guest-go
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* removed option-result.wit
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* fix the broken CLI
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* added go to runtime test
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* free C parameters and variables
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* removed memory free for return variables in export and invoke arguments in import
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* implemented lists
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* fixed a small bug around lowering nested option types
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* improve readability of code
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* changed the variant's package name to the world's name.
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* milestone: re-implement results
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* Fixed a small reference issue for lowering result
* re-implement variants and unions
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* fixed a few small bugs around variants and union types. Added variant runtime tests
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* turn off gc-leaking in tinygo 0.26
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* simplify code and add multi-return to lowering
* Added runtime tests for list, number and variant
* Added flavorful runtime test
* Added tests for many_aguments, records and smoke
* Added strings and unions runtime tests
* removed http from runtime test
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* added go bindgen build step to ci
* updated tinygo to 0.27. All tests should pass now
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* fixed go version to 1.20 instead of 1.2
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* disable string test because unicode hasn't been handled properly
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* deleted wasm abi flag
* merged main
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* Move go's files to it's own subfolder
* move C gen files to its own folder
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* update go from 1.19 to 1.20
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* changed tinygo crate version to 0.1.0
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* diable variants test for go
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* Fixed a missing argument to encode
* Fix referring to foreign imported paths in go
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* disable lift-foreign tests for now
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
* run rustfmt
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>
---------
Signed-off-by: Jiaxiao Zhou <jiazho@microsoft.com>1 parent 751fd66 commit 16994da
File tree
18 files changed
+4011
-163
lines changed- .github/workflows
- crates
- gen-guest-c/src
- gen-guest-go
- src
- tests
- src/bin
- tests/runtime
- flavorful
- lists
- many_arguments
- numbers
- records
- serverless
- smoke
- unions
18 files changed
+4011
-163
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
55 | 61 | | |
56 | 62 | | |
57 | 63 | | |
58 | 64 | | |
59 | 65 | | |
60 | 66 | | |
| 67 | + | |
61 | 68 | | |
62 | 69 | | |
63 | 70 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
| 42 | + | |
42 | 43 | | |
43 | 44 | | |
44 | 45 | | |
| |||
55 | 56 | | |
56 | 57 | | |
57 | 58 | | |
| 59 | + | |
58 | 60 | | |
59 | 61 | | |
| 62 | + | |
60 | 63 | | |
61 | 64 | | |
62 | | - | |
| 65 | + | |
63 | 66 | | |
64 | 67 | | |
65 | 68 | | |
66 | 69 | | |
| 70 | + | |
67 | 71 | | |
68 | 72 | | |
69 | 73 | | |
| |||
0 commit comments