go/doc/next/3-tools.md

1.5 KiB

Tools

Go command

The go build and go install commands now accept a -json flag that reports build output and failures as structured JSON output on standard output. Furthermore, passing -json to go test now reports build output and failures in addition to test results in JSON. For details of the reporting format, see go help buildjson.

Cgo

Cgo currently refuses to compile calls to a C function which has multiple incompatible declarations. For instance, if f is declared as both void f(int) and void f(double), cgo will report an error instead of possibly generating an incorrect call sequence for f(0). New in this release is a better detector for this error condition when the incompatible declarations appear in different files. See #67699.

Vet

The new tests analyzer reports common mistakes in declarations of tests, fuzzers, benchmarks, and examples in test packages, such as malformed names, incorrect signatures, or examples that document non-existent identifiers. Some of these mistakes may cause tests not to run.

This analyzer is among the subset of analyzers that are run by go test.

GOCACHEPROG

The cmd/go internal binary and test caching mechanism can now be implemented by child processes implementing a JSON protocol between the cmd/go tool and the child process named by the GOCACHEPROG environment variable. This was previously behind a GOEXPERIMENT. For protocol details, see #59719.