Files
Jiaxiao Zhou 16994da9d5 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
https://github.com/tinygo-org/tinygo/pull/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>
2023-02-16 12:38:39 -06:00
..