diff --git a/go.mod b/go.mod index 4498fa0e1f57..7a09799c8fa5 100644 --- a/go.mod +++ b/go.mod @@ -58,7 +58,7 @@ require ( github.com/spf13/viper v1.12.0 github.com/stretchr/testify v1.8.0 github.com/testcontainers/testcontainers-go v0.13.0 - github.com/tetratelabs/wazero v0.0.0-20220701105919-891761ac1ee2 + github.com/tetratelabs/wazero v1.0.0-beta.2 github.com/twitchtv/twirp v8.1.2+incompatible github.com/xlab/treeprint v1.1.0 go.etcd.io/bbolt v1.3.6 diff --git a/go.sum b/go.sum index 8367dcddc730..4d9ed155272f 100644 --- a/go.sum +++ b/go.sum @@ -1556,8 +1556,8 @@ github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I= github.com/testcontainers/testcontainers-go v0.13.0 h1:OUujSlEGsXVo/ykPVZk3KanBNGN0TYb/7oKIPVn15JA= github.com/testcontainers/testcontainers-go v0.13.0/go.mod h1:z1abufU633Eb/FmSBTzV6ntZAC1eZBYPtaFsn4nPuDk= -github.com/tetratelabs/wazero v0.0.0-20220701105919-891761ac1ee2 h1:mm9H2anFWwJE64jUuvKr6CbJzupcUcec+AScrdgxtbY= -github.com/tetratelabs/wazero v0.0.0-20220701105919-891761ac1ee2/go.mod h1:Y4X/zO4sC2dJjZG9GDYNRbJGogfqFYJY/BbyKlOxXGI= +github.com/tetratelabs/wazero v1.0.0-beta.2 h1:Qa1R1oizAYHcmy8PljgINdXUZ/nRQkxUBbYfGSb4IBE= +github.com/tetratelabs/wazero v1.0.0-beta.2/go.mod h1:CD5smBN5rGZo7UNe8aUiWyYE3bDWED/CQSonog9NSEg= github.com/thoas/go-funk v0.9.1 h1:O549iLZqPpTUQ10ykd26sZhzD+rmR5pWhuElrhbC20M= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= diff --git a/pkg/module/module.go b/pkg/module/module.go index fdfc723a72d7..2b96cdece9e5 100644 --- a/pkg/module/module.go +++ b/pkg/module/module.go @@ -15,7 +15,7 @@ import ( "github.com/tetratelabs/wazero" "github.com/tetratelabs/wazero/api" "github.com/tetratelabs/wazero/experimental" - wasi "github.com/tetratelabs/wazero/wasi_snapshot_preview1" + wasi "github.com/tetratelabs/wazero/imports/wasi_snapshot_preview1" "golang.org/x/exp/slices" "golang.org/x/xerrors" @@ -84,15 +84,11 @@ type Manager struct { func NewManager(ctx context.Context) (*Manager, error) { m := &Manager{} - // The runtime must enable the following features because Tinygo uses these features to build. - // cf. https://github.com/tinygo-org/tinygo/blob/b65447c7d567eea495805656f45472cc3c483e03/targets/wasi.json#L4 - c := wazero.NewRuntimeConfig(). - WithFeatureBulkMemoryOperations(true). - WithFeatureNonTrappingFloatToIntConversion(true). - WithFeatureSignExtensionOps(true) + // WebAssembly 2.0 allows use of any version of TinyGo, including 0.24+. + c := wazero.NewRuntimeConfig().WithWasmCore2() // Create a new WebAssembly Runtime. - m.runtime = wazero.NewRuntimeWithConfig(c) + m.runtime = wazero.NewRuntimeWithConfig(ctx, c) // Load WASM modules in local if err := m.loadModules(ctx); err != nil { @@ -610,7 +606,7 @@ func moduleVersion(ctx context.Context, mod api.Module) (int, error) { return 0, xerrors.New("invalid signature: version") } - return int(versionRes[0]), nil + return int(uint32(versionRes[0])), nil } func moduleAPIVersion(ctx context.Context, mod api.Module) (int, error) { @@ -626,7 +622,7 @@ func moduleAPIVersion(ctx context.Context, mod api.Module) (int, error) { return 0, xerrors.New("invalid signature: api_version") } - return int(versionRes[0]), nil + return int(uint32(versionRes[0])), nil } func moduleRequiredFiles(ctx context.Context, mod api.Module) ([]*regexp.Regexp, error) {