Skip to content

bindgen 0.5.0 fails to handle (transitive?) versioned imports #281

@rvolosatovs

Description

@rvolosatovs

It appears that the 0.5.0 version of the bindgen has introduced a regression

go run go.bytecodealliance.org/cmd/wit-bindgen-go generate -vv -w imports -o bindings wit

fails on e.g. wasi:http, examples:

$ git clone https://github.com/WebAssembly/wasi-http
$ cd wasi-http
$ go mod init repro
$ go get go.bytecodealliance.org/cmd/wit-bindgen-go@v0.5.0
$ go run go.bytecodealliance.org/cmd/wit-bindgen-go@v0.5.0 generate -vv -w imports -o bindings wit

observe:

Output dir: bindings
Package root: repro/bindings
Generating Go for 9 world(s)
wasm-tools: error: failed to process feature gate for world [wasi-io-WORLD-imports-v023] in package [go:bindgen]

Caused by:
    0: package [go:bindgen] contains a feature gate with a version specifier, so it must have a version
wasm-tools: error: failed to process feature gate for world [wasi-io-WORLD-imports-INTERFACE-error-v023] in package [go:bindgen]

Caused by:
    0: package [go:bindgen] contains a feature gate with a version specifier, so it must have a version
Type:	wasi:io/error@0.2.3.error
	repro/bindings/wasi/io/error.Error
wasm-tools: error: failed to process feature gate for world [wasi-io-WORLD-imports-INTERFACE-poll-v023] in package [go:bindgen]

Caused by:
    0: package [go:bindgen] contains a feature gate with a version specifier, so it must have a version
Type:	wasi:io/poll@0.2.3.pollable
	repro/bindings/wasi/io/poll.Pollable
wasm-tools: error: failed to process feature gate for world [wasi-io-WORLD-imports-INTERFACE-streams-v023] in package [go:bindgen]

Caused by:
    0: package [go:bindgen] contains a feature gate with a version specifier, so it must have a version
Type:	wasi:io/streams@0.2.3.error
	repro/bindings/wasi/io/streams.Error
Type:	wasi:io/streams@0.2.3.pollable
	repro/bindings/wasi/io/streams.Pollable
Type:	wasi:io/streams@0.2.3.stream-error
	repro/bindings/wasi/io/streams.StreamError
Type:	wasi:io/streams@0.2.3.input-stream
	repro/bindings/wasi/io/streams.InputStream
Type:	wasi:io/streams@0.2.3.output-stream
	repro/bindings/wasi/io/streams.OutputStream
Generated 4 Go package(s)
Generated package: repro/bindings/wasi/io/error
	bindings/wasi/io/error/empty.s
	bindings/wasi/io/error/error.wit.go
	bindings/wasi/io/error/ioerror.wasm.go
Generated package: repro/bindings/wasi/io/imports
	bindings/wasi/io/imports/imports.wit.go
Generated package: repro/bindings/wasi/io/poll
	bindings/wasi/io/poll/empty.s
	bindings/wasi/io/poll/poll.wasm.go
	bindings/wasi/io/poll/poll.wit.go
Generated package: repro/bindings/wasi/io/streams
	bindings/wasi/io/streams/empty.s
	bindings/wasi/io/streams/streams.wasm.go
	bindings/wasi/io/streams/streams.wit.go

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions