digitalocean / digitalocean/go-libvirt
Document minimum (or maximum) supported toolchain requirements
- Dominant language
- Go
- Stars
- 1.1k
- Forks
- 143
- PR merge metrics
- No merged PRs in 30d
Description
Newer versions of `goyacc` try to optimize the representation of certain things. If using the latest `goyacc`, one of the generated files will be updated to use thinner ints which breaks the build like so:
```diff
diff --git a/internal/lvgen/y.go b/internal/lvgen/y.go
index 1ea031b..389c36a 100644
--- a/internal/lvgen/y.go
+++ b/internal/lvgen/y.go
@@ -118,7 +118,7 @@ const yyInitialStackSize = 16
//line sunrpc.y:279
//line yacctab:1
-var yyExca = [...]int{
+var yyExca = [...]int8{
-1, 1,
1, -1,
-2, 0,
@@ -128,7 +128,7 @@ const yyPrivate = 57344
```
```console
$ go generate ./...
processing libvirt.yml done.
# github.com/digitalocean/go-libvirt/internal/lvgen
./lvlexer.go:75:12: cannot use yyTok2[tokType - yyPrivate] (type int8) as type int in assignment
internal/lvgen/lv-gen.go:29: running "go": exit status 2
```
For now, I've installed `goyacc@c6776771dde7a49828feb54fd8be11695a32b558` for local development.
`goyacc` seems to perform this optimization since commit [59f1f2c5a8fd844a6cc55e9a773a7003bd8e5480](https://go.googlesource.com/tools/+/59f1f2c5a8fd844a6cc55e9a773a7003bd8e5480).
---
edit: the following components could be addressed:
- [ ] goyacc
- [ ] go/go-get/go-install (the CI seems to be pinned to 1.16.2 and uses go-get, as does ./scripts/gen-consts.sh; go-get is deprecated in Go 1.17)
Contributor guide
Assessment
This issue has not been assessed yet.