bytecodealliance / bytecodealliance/go-modules

The main package contains no worlds

Aperta
#377 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.