bytecodealliance / bytecodealliance/go-modules
The main package contains no worlds
- Lingua principale
- Go
- Stelle
- 148
- Fork
- 20
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
I'm encountering behavior that I don't understand in the latest version of `wit-bindgen-go`.
I've created a [detailed reproduction and summary here](https://github.com/asteurer/repro-go-modules)
Here's a brief summary:
When I run `go tool wit-bindgen-go generate --out internal ./wit` I get the following output:
```text
Generated WIT for custom section:
package wasi:clocks@0.2.0;
interface wall-clock {
/// A time and date in seconds plus nanoseconds.
record datetime {
seconds: u64,
nanoseconds: u32,
}
now: func() -> datetime;
resolution: func() -> datetime;
}
package wasi:filesystem@0.2.0 {
...
}
package wasi:io@0.2.0 {
...
}
error: wasm-tools: error: The main package `wasi:clocks@0.2.0` contains no worlds
```
Something I noticed in the output: Both the `filesystem` package and the `io` package enclose their interfaces with brackets, while the `clocks` package ends with a semicolon and its corresponding interface is placed below it:
```
package wasi:clocks@0.2.0;
package wasi:filesystem@0.2.0 {
}
package wasi:io@0.2.0 {
}
```
I tried manually creating the `wasi:clocks` package in a WIT file and tried inserting the file data in place of the `witText` variable [here](https://github.com/bytecodealliance/go-modules/blob/55a8715c694fb4bbe75c269ffd4a0ca14c80c6f1/wit/bindgen/generator.go#L2416); however, it then complains about not having a package header:
```
error: wasm-tools: error: no `package` header was found in any WIT file for this package
```
If I try to add a generic package header, we get another "package contains no worlds" error:
```
error: wasm-tools: error: The main package `foo:bar@0.0.0` contains no worlds
```
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia dalla riproduzione collegata nell’issue e dal comando `go tool wit-bindgen-go generate --out internal ./wit`. Poi esamina `wit/bindgen/generator.go` intorno alla riga 2416, dove viene assemblato `witText`. Il lavoro è completato quando il WIT generato contiene un package principale valido con un world e il comando non segnala più che il package non contiene world.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- go, wasm
- Ambito
- compilers, tooling
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 38/100