---
title: Go 1.21 Release Candidate
date: 2023-06-21
by:
- Eli Bendersky, on behalf of the Go team
summary: Go 1.21 RC brings language improvements, new standard library packages, PGO GA, backward and forward compatibility in the toolchain and faster builds.
---

The Go 1.21 first Release Candidate (RC) is available today on the [download
page](/dl/#go1.21rc2)! Go 1.21 is packed with new features and improvements.
Getting the RC (release candidate) allows you to experiment with it early, try
it on your workloads, and report any issues before the final release (scheduled
for August). Here are some notable changes and features in Go 1.21; for the full
list, refer to the [full release notes](https://tip.golang.org/doc/go1.21).

*(Please note that the first RC for Go 1.21 is called `go1.21rc2`
because a bug was found and fixed after tagging `go1.21rc1`)*

## Tool improvements

- The Profile Guided Optimization (PGO) feature we [announced for preview in
  1.20](/blog/pgo-preview) is now generally available! If a file named
  `default.pgo` is present in the main package’s directory, the `go` command
  will use it to enable a PGO build. See the [PGO documentation](/doc/pgo) for
  more details. We’ve measured the impact of PGO on a wide set of Go programs and
  see performance improvements of 2-7%.
- The [`go` tool](/cmd/go) now supports [backward](https://tip.golang.org/doc/godebug)
  and [forward](/doc/toolchain) language compatibility.

## Language changes

- New built-in functions: [min, max](https://tip.golang.org/ref/spec#Min_and_max)
  and [clear](https://tip.golang.org/ref/spec#Clear).
- Several improvements to type inference for generic functions. The description of
  [type inference in the spec](https://tip.golang.org/ref/spec#Type_inference)
  has been expanded and clarified.
- In a future version of Go we’re planning to address one of the most common
  gotchas of Go programming:
  [loop variable capture](/wiki/CommonMistakes).
  Go 1.21 comes with a preview of this feature that you can enable in your code
  using an environment variable. See [this LoopvarExperiment wiki
  page](/wiki/LoopvarExperiment) for more details.

## Standard library additions

- New [log/slog](https://tip.golang.org/pkg/log/slog) package for structured logging.
- New [slices](https://tip.golang.org/pkg/slices) package for common operations
  on slices of any element type. This includes sorting functions that are generally
  faster and more ergonomic than the [sort](https://tip.golang.org/pkg/sort) package.
- New [maps](https://tip.golang.org/pkg/maps) package for common operations on maps
  of any key or element type.
- New [cmp](https://tip.golang.org/pkg/cmp) package with new utilities for comparing
  ordered values.

## Improved performance

In addition to the performance improvements when enabling PGO:

- The Go compiler itself has been rebuilt with PGO enabled for 1.21, and as a
  result it builds Go programs 2-4% faster, depending on the host architecture.
- Due to tuning of the garbage collector, some applications may see up to a 40%
  reduction in tail latency.
- Collecting traces with [runtime/trace](https://pkg.go.dev/runtime/trace) now
  incurs a substantially smaller CPU cost on amd64 and arm64.

## A new port to WASI

Go 1.21 adds an experimental port for [WebAssembly System Interface (WASI)](https://wasi.dev/),
Preview 1 (`GOOS=wasip1`, `GOARCH=wasm`).

To facilitate writing more general WebAssembly (WASM) code, the compiler also
supports a new directive for importing functions from the WASM host:
`go:wasmimport`.

Please [download the Go 1.21 RC](/dl/#go1.21rc2) and try it! If you notice any
problems, please [file an issue](/issue/new).
