The Go toolchain
# The single go command as the entire build system — distribution, environment, and the catalog of built-in and companion tools.
❯ cat documents/
-
The Go toolchain
Concept
2026-08-09
The single go command as the entire build system — distribution, environment, and the catalog of built-in and companion tools.
-
Delve — the Go debugger
Concept
2026-08-09
Delve (dlv), the goroutine-aware Go debugger — debug/attach/test/core modes, DAP for IDEs, conditional breakpoints, and remote debugging in containers.
-
Execution tracer — go tool trace
Concept
2026-08-09
The runtime execution tracer — scheduler-level event recording, go tool trace analysis, flight-recorder capture, and when tracing beats profiling.
-
go build, go run, go install
Concept
2026-08-09
The compile trio — build cache, build tags, ldflags stamping, first-class cross-compilation, race builds, and PGO.
-
go doc & pkg.go.dev — documentation
Concept
2026-08-09
Doc comments, go doc on the CLI, testable ExampleXxx functions, and pkg.go.dev as the ecosystem's shared API reference.
-
go generate
Concept
2026-08-09
Explicit, committed code generation via //go:generate directives — Go's answer to annotation processing and reflection-heavy magic.
-
go mod
Concept
2026-08-09
The daily dependency interface — init, tidy, download, why, graph, vendor, edit — over go.mod and go.sum.
-
go test
Concept
2026-08-09
The built-in test runner — test binary model, run/bench/fuzz selectors, caching, race detection, and coverage flags.
-
go tool cover — coverage
Concept
2026-08-09
Test coverage in Go — coverprofile collection, HTML reports, coverage modes, binary coverage via GOCOVERDIR, and what the numbers actually mean.
-
go vet
Concept
2026-08-09
The static analyzer shipped with the toolchain — catches likely-wrong code, runs under go test, extensible via go/analysis.
-
go work
Concept
2026-08-09
Workspaces (Go 1.18+) — go.work wires multiple local modules together for development, replacing the replace-directive dance.
-
gofmt & goimports
Concept
2026-08-09
Canonical, non-configurable formatting as a language feature, goimports for import blocks, and gofumpt as the stricter superset.
-
gopls — the language server
Concept
2026-08-09
gopls, Go's single official LSP server — completion, refactors, inlay hints, diagnostics, and module-aware workspace handling for every editor.
-
govulncheck — vulnerability scanning
Concept
2026-08-09
Call-graph-aware vulnerability scanning against the Go vulnerability database — only reachable vulns reported, in source or binary mode.
-
pprof — profiling
Concept
2026-08-09
Go's built-in profiler — profile kinds, runtime/pprof and net/http/pprof collection, go tool pprof analysis, continuous profiling, and PGO.
-
staticcheck & golangci-lint — the lint ecosystem
Concept
2026-08-09
Static analysis beyond go vet — staticcheck's check catalogue, golangci-lint as the meta-runner, and keeping lint sets small and intentional.