diff --git a/_content/doc/go1.20.html b/_content/doc/go1.20.html
new file mode 100644
index 0000000..1fef452
--- /dev/null
+++ b/_content/doc/go1.20.html
@@ -0,0 +1,1246 @@
+<!--{
+	"Title": "Go 1.20 Release Notes",
+	"Path":  "/doc/go1.20"
+}-->
+
+<!--
+NOTE: In this document and others in this directory, the convention is to
+set fixed-width phrases with non-fixed-width spaces, as in
+<code>hello</code> <code>world</code>.
+Do not send CLs removing the interior tags from such phrases.
+-->
+
+<style>
+  main ul li { margin: 0.5em 0; }
+</style>
+
+<h2 id="introduction">DRAFT RELEASE NOTES — Introduction to Go 1.20</h2>
+
+<p>
+  <strong>
+    Go 1.20 is not yet released. These are work-in-progress
+    release notes. Go 1.20 is expected to be released in February 2023.
+  </strong>
+</p>
+
+<h2 id="language">Changes to the language</h2>
+
+<p>
+  Go 1.20 includes four changes to the language.
+</p>
+
+<p><!-- https://go.dev/issue/46505 -->
+  Go 1.17 added <a href="/ref/spec#Conversions_from_slice_to_array_or_array_pointer">conversions from slice to an array pointer</a>.
+  Go 1.20 extends this to allow conversions from a slice to an array:
+  given a slice <code>x</code>, <code>[4]byte(x)</code> can now be written
+  instead of <code>*(*[4]byte)(x)</code>.
+</p>
+
+<p><!-- https://go.dev/issue/53003 -->
+  The <a href="/ref/spec/#Package_unsafe"><code>unsafe</code> package</a> defines
+  three new functions <code>SliceData</code>, <code>String</code>, and <code>StringData</code>.
+  Along with Go 1.17's <code>Slice</code>, these functions now provide the complete ability to
+  construct and deconstruct slice and string values, without depending on their exact representation.
+</p>
+
+<p><!-- https://go.dev/issue/8606 -->
+  The specification now defines that struct values are compared one field at a time,
+  considering fields in the order they appear in the struct type definition,
+  and stopping at the first mismatch.
+  The specification could previously have been read as if
+  all fields needed to be compared beyond the first mismatch.
+  Similarly, the specification now defines that array values are compared
+  one element at a time, in increasing index order.
+  In both cases, the difference affects whether certain comparisons must panic.
+  Existing programs are unchanged: the new spec wording describes
+  what the implementations have always done.
+</p>
+
+<p><!-- https://go.dev/issue/56548 -->
+  <a href="/ref/spec#Comparison_operators">Comparable types</a> (such as ordinary interfaces)
+  may now satisfy <code>comparable</code> constraints, even if the type arguments
+  are not strictly comparable (comparison may panic at runtime).
+  This makes it possible to instantiate a type parameter constrained by <code>comparable</code>
+  (e.g., a type parameter for a user-defined generic map key) with a non-strictly comparable type argument
+  such as an interface type, or a composite type containing an interface type.
+</p>
+
+<h2 id="ports">Ports</h2>
+
+<h3 id="windows">Windows</h3>
+
+<p><!-- https://go.dev/issue/57003, https://go.dev/issue/57004 -->
+  Go 1.20 is the last release that will run on any release of Windows 7, 8, Server 2008 and Server 2012.
+  Go 1.21 will require at least Windows 10 or Server 2016.
+</p>
+
+<h3 id="darwin">Darwin and iOS</h3>
+
+<p><!-- https://go.dev/issue/23011 -->
+  Go 1.20 is the last release that will run on macOS 10.13 High Sierra or 10.14 Mojave.
+  Go 1.21 will require macOS 10.15 Catalina or later.
+</p>
+
+<h3 id="freebsd-riscv">FreeBSD/RISC-V</h3>
+
+<p><!-- https://go.dev/issue/53466 -->
+  Go 1.20 adds experimental support for FreeBSD on RISC-V (<code>GOOS=freebsd</code>, <code>GOARCH=riscv64</code>).
+</p>
+
+<h2 id="tools">Tools</h2>
+
+<h3 id="go-command">Go command</h3>
+
+<p><!-- CL 432535, https://go.dev/issue/47257 -->
+  The directory <code>$GOROOT/pkg</code> no longer stores
+  pre-compiled package archives for the standard library:
+  <code>go</code> <code>install</code> no longer writes them,
+  the <code>go</code> build no longer checks for them,
+  and the Go distribution no longer ships them.
+  Instead, packages in the standard library are built as needed
+  and cached in the build cache, just like packages outside <code>GOROOT</code>.
+  This change reduces the size of the Go distribution and also
+  avoids C toolchain skew for packages that use cgo.
+</p>
+
+<p><!-- CL 448357: cmd/go: print test2json start events -->
+  The implementation of <code>go</code> <code>test</code> <code>-json</code>
+  has been improved to make it more robust.
+  Programs that run <code>go</code> <code>test</code> <code>-json</code>
+  do not need any updates.
+  Programs that invoke <code>go</code> <code>tool</code> <code>test2json</code>
+  directly should now run the test binary with <code>-v=test2json</code>
+  (for example, <code>go</code> <code>test</code> <code>-v=test2json</code>
+  or <code>./pkg.test</code> <code>-test.v=test2json</code>)
+  instead of plain <code>-v</code>.
+</p>
+
+<p><!-- CL 448357: cmd/go: print test2json start events -->
+  A related change to <code>go</code> <code>test</code> <code>-json</code>
+  is the addition of an event with <code>Action</code> set to <code>start</code>
+  at the beginning of each test program's execution.
+  When running multiple tests using the <code>go</code> command,
+  these start events are guaranteed to be emitted in the same order as
+  the packages named on the command line.
+</p>
+
+<p><!-- https://go.dev/issue/45454, CL 421434 -->
+  The <code>go</code> command now defines
+  architecture feature build tags, such as <code>amd64.v2</code>,
+  to allow selecting a package implementation file based on the presence
+  or absence of a particular architecture feature.
+  See <a href="/cmd/go#hdr-Build_constraints"><code>go</code> <code>help</code> <code>buildconstraint</code></a> for details.
+</p>
+
+<p><!-- https://go.dev/issue/50332 -->
+  The <code>go</code> subcommands now accept
+  <code>-C</code> <code>&lt;dir&gt;</code> to change directory to &lt;dir&gt;
+  before performing the command, which may be useful for scripts that need to
+  execute commands in multiple different modules.
+</p>
+
+<p><!-- https://go.dev/issue/41696, CL 416094 -->
+  The <code>go</code> <code>build</code> and <code>go</code> <code>test</code>
+  commands no longer accept the <code>-i</code> flag,
+  which has been <a href="https://go.dev/issue/41696">deprecated since Go 1.16</a>.
+</p>
+
+<p><!-- https://go.dev/issue/38687, CL 421440 -->
+  The <code>go</code> <code>generate</code> command now accepts
+  <code>-skip</code> <code>&lt;pattern&gt;</code> to skip <code>//go:generate</code> directives
+  matching <code>&lt;pattern&gt;</code>.
+</p>
+
+<p><!-- https://go.dev/issue/41583 -->
+  The <code>go</code> <code>test</code> command now accepts
+  <code>-skip</code> <code>&lt;pattern&gt;</code> to skip tests, subtests, or examples
+  matching <code>&lt;pattern&gt;</code>.
+</p>
+
+<p><!-- https://go.dev/issue/37015 -->
+  When the main module is located within <code>GOPATH/src</code>,
+  <code>go</code> <code>install</code> no longer installs libraries for
+  non-<code>main</code> packages to <code>GOPATH/pkg</code>,
+  and <code>go</code> <code>list</code> no longer reports a <code>Target</code>
+  field for such packages. (In module mode, compiled packages are stored in the
+  <a href="https://pkg.go.dev/cmd/go#hdr-Build_and_test_caching">build cache</a>
+  only, but <a href="https://go.dev/issue/37015">a bug</a> had caused
+  the <code>GOPATH</code> install targets to unexpectedly remain in effect.)
+</p>
+
+<p><!-- https://go.dev/issue/55022 -->
+  The <code>go</code> <code>build</code>, <code>go</code> <code>install</code>,
+  and other build-related commands now support a <code>-pgo</code> flag that enables
+  profile-guided optimization, which is described in more detail in the
+  <a href="#compiler">Compiler</a> section below.
+  The <code>-pgo</code> flag specifies the file path of the profile.
+  Specifying <code>-pgo=auto</code> causes the <code>go</code> command to search
+  for a file named <code>default.pgo</code> in the main package's directory and
+  use it if present.
+  This mode currently requires a single main package to be specified on the
+  command line, but we plan to lift this restriction in a future release.
+  Specifying <code>-pgo=off</code> turns off profile-guided optimization.
+</p>
+
+<p><!-- https://go.dev/issue/51430 -->
+  The <code>go</code> <code>build</code>, <code>go</code> <code>install</code>,
+  and other build-related commands now support a <code>-cover</code>
+  flag that builds the specified target with code coverage instrumentation.
+  This is described in more detail in the
+  <a href="#cover">Cover</a> section below.
+</p>
+
+<h4 id="go-version"><code>go</code> <code>version</code></h4>
+
+<p><!-- https://go.dev/issue/48187 -->
+  The <code>go</code> <code>version</code> <code>-m</code> command
+  now supports reading more types of Go binaries, most notably, Windows DLLs
+  built with <code>go</code> <code>build</code> <code>-buildmode=c-shared</code>
+  and Linux binaries without execute permission.
+</p>
+
+<h3 id="cgo">Cgo</h3>
+
+<p><!-- CL 450739 -->
+  The <code>go</code> command now disables <code>cgo</code> by default
+  on systems without a C toolchain.
+  More specifically, when the <code>CGO_ENABLED</code> environment variable is unset,
+  the <code>CC</code> environment variable is unset,
+  and the default C compiler (typically <code>clang</code> or <code>gcc</code>)
+  is not found in the path,
+  <code>CGO_ENABLED</code> defaults to <code>0</code>.
+  As always, you can override the default by setting <code>CGO_ENABLED</code> explicitly.
+</p>
+
+<p>
+  The most important effect of the default change is that when Go is installed
+  on a system without a C compiler, it will now use pure Go builds for packages
+  in the standard library that use cgo, instead of using pre-distributed package archives
+  (which have been removed, as <a href="#go-command">noted above</a>)
+  or attempting to use cgo and failing.
+  This makes Go work better in some minimal container environments
+  as well as on macOS, where pre-distributed package archives have
+  not been used for cgo-based packages since Go 1.16.
+</p>
+
+<p>
+  The packages in the standard library that use cgo are <a href="/pkg/net/"><code>net</code></a>,
+  <a href="/pkg/os/user/"><code>os/user</code></a>, and
+  <a href="/pkg/plugin/"><code>plugin</code></a>.
+  On macOS, the <code>net</code> and <code>os/user</code> packages have been rewritten not to use cgo:
+  the same code is now used for cgo and non-cgo builds as well as cross-compiled builds.
+  On Windows, the <code>net</code> and <code>os/user</code> packages have never used cgo.
+  On other systems, builds with cgo disabled will use a pure Go version of these packages.
+</p>
+
+<p>
+  On macOS, the race detector has been rewritten not to use cgo:
+  race-detector-enabled programs can be built and run without Xcode.
+  On Linux and other Unix systems, and on Windows, a host C toolchain
+  is required to use the race detector.
+</p>
+
+<h3 id="cover">Cover</h3>
+
+<p><!-- CL 436236, CL 401236, CL 438503 -->
+  Go 1.20 supports collecting code coverage profiles for programs
+  (applications and integration tests), as opposed to just unit tests.
+</p>
+
+<p>
+  To collect coverage data for a program, build it with <code>go</code>
+  <code>build</code>'s <code>-cover</code> flag, then run the resulting
+  binary with the environment variable <code>GOCOVERDIR</code> set
+  to an output directory for coverage profiles.
+  See the
+  <a href="https://go.dev/testing/coverage">'coverage for integration tests' landing page</a> for more on how to get started.
+  For details on the design and implementation, see the
+  <a href="https://golang.org/issue/51430">proposal</a>.
+</p>
+
+<h3 id="vet">Vet</h3>
+
+<h4 id="vet-loopclosure">Improved detection of loop variable capture by nested functions</h4>
+
+<p><!-- CL 447256, https://go.dev/issue/55972: extend the loopclosure analysis to parallel subtests -->
+  The <code>vet</code> tool now reports references to loop variables following
+  a call to <a href="/pkg/testing/#T.Parallel"><code>T.Parallel()</code></a>
+  within subtest function bodies. Such references may observe the value of the
+  variable from a different iteration (typically causing test cases to be
+  skipped) or an invalid state due to unsynchronized concurrent access.
+</p>
+
+<p><!-- CL 452615 -->
+  The tool also detects reference mistakes in more places. Previously it would
+  only consider the last statement of the loop body, but now it recursively
+  inspects the last statements within if, switch, and select statements.
+</p>
+
+<h4 id="vet-timeformat">New diagnostic for incorrect time formats</h4>
+
+<p><!-- CL 354010, https://go.dev/issue/48801: check for time formats with 2006-02-01 -->
+  The vet tool now reports use of the time format 2006-02-01 (yyyy-dd-mm)
+  with <a href="/pkg/time/#Time.Format"><code>Time.Format</code></a> and
+  <a href="/pkg/time/#Parse"><code>time.Parse</code></a>.
+  This format does not appear in common date standards, but is frequently
+  used by mistake when attempting to use the ISO 8601 date format
+  (yyyy-mm-dd).
+</p>
+
+<h2 id="runtime">Runtime</h2>
+
+<p><!-- CL 422634 -->
+  Some of the garbage collector's internal data structures were reorganized to
+  be both more space and CPU efficient.
+  This change reduces memory overheads and improves overall CPU performance by
+  up to 2%.
+</p>
+
+<p><!-- CL 417558, https://go.dev/issue/53892 -->
+  The garbage collector behaves less erratically with respect to goroutine
+  assists in some circumstances.
+</p>
+
+<p><!-- https://go.dev/issue/51430 -->
+  Go 1.20 adds a new <code>runtime/coverage</code> package
+  containing APIs for writing coverage profile data at
+  runtime from long-running and/or server programs that
+  do not terminate via <code>os.Exit()</code>.
+</p>
+
+<h2 id="compiler">Compiler</h2>
+
+<p><!-- https://go.dev/issue/55022 -->
+  Go 1.20 adds preview support for profile-guided optimization (PGO).
+  PGO enables the toolchain to perform application- and workload-specific
+  optimizations based on run-time profile information.
+  Currently, the compiler supports pprof CPU profiles, which can be collected
+  through usual means, such as the <code>runtime/pprof</code> or
+  <code>net/http/pprof</code> packages.
+  To enable PGO, pass the path of a pprof profile file via the
+  <code>-pgo</code> flag to <code>go</code> <code>build</code>,
+  as mentioned <a href="#go-command">above</a>.
+  Go 1.20 uses PGO to more aggressively inline functions at hot call sites.
+  Benchmarks for a representative set of Go programs show enabling
+  profile-guided inlining optimization improves performance about 3–4%.
+  We plan to add more profile-guided optimizations in future releases.
+  Note that profile-guided optimization is a preview, so please use it
+  with appropriate caution.
+</p>
+
+<p>
+  The Go 1.20 compiler upgraded its front-end to use a new way of handling the
+  compiler's internal data, which fixes several generic-types bugs and enables
+  local types in generic functions and methods.
+</p>
+
+<p><!-- https://go.dev/issue/56103, CL 445598 -->
+  The compiler now <a href="https://go.dev/issue/56103">disallows anonymous interface cycles</a>.
+</p>
+
+<p><!-- https://go.dev/issue/49569 -->
+  Go 1.18 and 1.19 saw regressions in build speed, largely due to the addition
+  of support for generics and follow-on work. Go 1.20 improves build speeds by
+  up to 10%, bringing it back in line with Go 1.17.
+  Relative to Go 1.19, generated code performance is also generally slightly improved.
+</p>
+
+<h2 id="linker">Linker</h2>
+
+<p><!-- https://go.dev/issue/54197, CL 420774 -->
+  On Linux, the linker now selects the dynamic interpreter for <code>glibc</code>
+  or <code>musl</code> at link time.
+</p>
+
+<p><!-- https://go.dev/issue/35006 -->
+  On Windows, the Go linker now supports modern LLVM-based C toolchains.
+</p>
+
+<p><!-- https://go.dev/issue/37762, CL 317917 -->
+  Go 1.20 uses <code>go:</code> and <code>type:</code> prefixes for compiler-generated
+  symbols rather than <code>go.</code> and <code>type.</code>.
+  This avoids confusion for user packages whose name starts with <code>go.</code>.
+  The <a href="/pkg/debug/gosym"><code>debug/gosym</code></a> package understands
+  this new naming convention for binaries built with Go 1.20 and newer.
+</p>
+
+<h2 id="bootstrap">Bootstrap</h2>
+
+<p><!-- https://go.dev/issue/44505 -->
+  When building a Go release from source and <code>GOROOT_BOOTSTRAP</code> is not set,
+  previous versions of Go looked for a Go 1.4 or later bootstrap toolchain in the directory
+  <code>$HOME/go1.4</code> (<code>%HOMEDRIVE%%HOMEPATH%\go1.4</code> on Windows).
+  Go 1.18 and Go 1.19 looked first for <code>$HOME/go1.17</code> or <code>$HOME/sdk/go1.17</code>
+  before falling back to <code>$HOME/go1.4</code>,
+  in anticipation of requiring Go 1.17 for use when bootstrapping Go 1.20.
+  Go 1.20 does require a Go 1.17 release for bootstrapping, but we realized that we should
+  adopt the latest point release of the bootstrap toolchain, so it requires Go 1.17.13.
+  Go 1.20 looks for <code>$HOME/go1.17.13</code> or <code>$HOME/sdk/go1.17.13</code>
+  before falling back to <code>$HOME/go1.4</code>
+  (to support systems that hard-coded the path $HOME/go1.4 but have installed
+  a newer Go toolchain there).
+  In the future, we plan to move the bootstrap toolchain forward approximately once a year,
+  and in particular we expect that Go 1.22 will require the final point release of Go 1.20 for bootstrap.
+</p>
+
+<h2 id="library">Core library</h2>
+
+<h3 id="crypto/ecdh">New crypto/ecdh package</h3>
+
+<p><!-- https://go.dev/issue/52221, CL 398914, CL 450335, https://go.dev/issue/56052 -->
+  Go 1.20 adds a new <a href="/pkg/crypto/ecdh/"><code>crypto/ecdh</code></a> package
+  to provide explicit support for Elliptic Curve Diffie-Hellman key exchanges
+  over NIST curves and Curve25519.
+</p>
+<p>
+  Programs should use <code>crypto/ecdh</code> instead of the lower-level functionality in
+  <a href="/pkg/crypto/elliptic/"><code>crypto/elliptic</code></a> for ECDH, and
+  third-party modules for more advanced use cases.
+</p>
+
+<h3 id="errors">Wrapping multiple errors</h3>
+
+<p><!-- CL 432898 -->
+  Go 1.20 expands support for error wrapping to permit an error to
+  wrap multiple other errors.
+</p>
+<p>
+  An error <code>e</code> can wrap more than one error by providing
+  an <code>Unwrap</code> method that returns a <code>[]error</code>.
+</p>
+<p>
+  The <a href="/pkg/errors/#Is"><code>errors.Is</code></a> and
+  <a href="/pkg/errors/#As"><code>errors.As</code></a> functions
+  have been updated to inspect multiply wrapped errors.
+</p>
+<p>
+  The <a href="/pkg/fmt/#Errorf"><code>fmt.Errorf</code></a> function
+  now supports multiple occurrences of the <code>%w</code> format verb,
+  which will cause it to return an error that wraps all of those error operands.
+</p>
+<p>
+  The new function <a href="/pkg/errors/#Join"><code>errors.Join</code></a>
+  returns an error wrapping a list of errors.
+</p>
+
+<h3 id="http_responsecontroller">HTTP ResponseController</h3>
+
+<p><!-- CL 436890, https://go.dev/issue/54136 -->
+  The new
+  <a href="/pkg/net/http/#ResponseController"><code>"net/http".ResponseController</code></a>
+  type provides access to extended per-request functionality not handled by the
+  <a href="/pkg/net/http/#ResponseWriter"><code>"net/http".ResponseWriter</code></a> interface.
+</p>
+
+<p>
+  Previously, we have added new per-request functionality by defining optional
+  interfaces which a <code>ResponseWriter</code> can implement, such as
+  <a href="/pkg/net/http/#Flusher"><code>Flusher</code></a>. These interfaces
+  are not discoverable and clumsy to use.
+</p>
+
+<p>
+  The <code>ResponseController</code> type provides a clearer, more discoverable way
+  to add per-handler controls. Two such controls also added in Go 1.20 are
+  <code>SetReadDeadline</code> and <code>SetWriteDeadline</code>, which allow setting
+  per-request read and write deadlines. For example:
+</p>
+
+<pre>
+func RequestHandler(w ResponseWriter, r *Request) {
+  rc := http.NewResponseController(w)
+  rc.SetWriteDeadline(time.Time{}) // disable Server.WriteTimeout when sending a large response
+  io.Copy(w, bigData)
+}
+</pre>
+
+<h3 id="reverseproxy_rewrite">New ReverseProxy Rewrite hook</h3>
+
+<p><!-- https://go.dev/issue/53002, CL 407214 -->
+  The <a href="/pkg/net/http/httputil/#ReverseProxy"><code>httputil.ReverseProxy</code></a>
+  forwarding proxy includes a new
+  <a href="/pkg/net/http/httputil/#ReverseProxy.Rewrite"><code>Rewrite</code></a>
+  hook function, superseding the
+  previous <code>Director</code> hook.
+</p>
+
+<p>
+  The <code>Rewrite</code> hook accepts a
+  <a href="/pkg/net/http/httputil/#ProxyRequest"><code>ProxyRequest</code></a> parameter,
+  which includes both the inbound request received by the proxy and the outbound
+  request that it will send.
+  Unlike <code>Director</code> hooks, which only operate on the outbound request,
+  this permits <code>Rewrite</code> hooks to avoid certain scenarios where
+  a malicious inbound request may cause headers added by the hook
+  to be removed before forwarding.
+  See <a href="https://go.dev/issue/50580">issue #50580</a>.
+</p>
+
+<p>
+  The <a href="/pkg/net/http/httputil/#ProxyRequest.SetURL"><code>ProxyRequest.SetURL</code></a>
+  method routes the outbound request to a provided destination
+  and supersedes the <code>NewSingleHostReverseProxy</code> function.
+  Unlike <code>NewSingleHostReverseProxy</code>, <code>SetURL</code>
+  also sets the <code>Host</code> header of the outbound request.
+</p>
+
+<p><!-- https://go.dev/issue/50465, CL 407414 -->
+  The
+  <a href="/pkg/net/http/httputil/#ProxyRequest.SetXForwarded"><code>ProxyRequest.SetXForwarded</code></a>
+  method sets the <code>X-Forwarded-For</code>, <code>X-Forwarded-Host</code>,
+  and <code>X-Forwarded-Proto</code> headers of the outbound request.
+  When using a <code>Rewrite</code>, these headers are not added by default.
+</p>
+
+<p>
+  An example of a <code>Rewrite</code> hook using these features is:
+</p>
+
+<pre>
+proxyHandler := &httputil.ReverseProxy{
+  Rewrite: func(r *httputil.ProxyRequest) {
+    r.SetURL(outboundURL) // Forward request to outboundURL.
+    r.SetXForwarded()     // Set X-Forwarded-* headers.
+    r.Out.Header.Set("X-Additional-Header", "header set by the proxy")
+  },
+}
+</pre>
+
+<p><!-- CL 407375 -->
+ <a href="/pkg/net/http/httputil/#ReverseProxy"><code>ReverseProxy</code></a> no longer adds a <code>User-Agent</code> header
+  to forwarded requests when the incoming request does not have one.
+</p>
+
+<h3 id="minor_library_changes">Minor changes to the library</h3>
+
+<p>
+  As always, there are various minor changes and updates to the library,
+  made with the Go 1 <a href="/doc/go1compat">promise of compatibility</a>
+  in mind.
+  There are also various performance improvements, not enumerated here.
+</p>
+
+<dl id="archive/tar"><dt><a href="/pkg/archive/tar/">archive/tar</a></dt>
+  <dd>
+    <p><!-- https://go.dev/issue/55356, CL 449937 -->
+      When the <code>GODEBUG=tarinsecurepath=0</code> environment variable is set,
+      <a href="/pkg/archive/tar/#Reader.Next"><code>Reader.Next</code></a> method
+      will now return the error <a href="/pkg/archive/tar/#ErrInsecurePath"><code>ErrInsecurePath</code></a>
+      for an entry with a file name that is an absolute path,
+      refers to a location outside the current directory, contains invalid
+      characters, or (on Windows) is a reserved name such as <code>NUL</code>.
+      A future version of Go may disable insecure paths by default.
+    </p>
+  </dd>
+</dl><!-- archive/tar -->
+
+<dl id="archive/zip"><dt><a href="/pkg/archive/zip/">archive/zip</a></dt>
+  <dd>
+    <p><!-- https://go.dev/issue/55356 -->
+      When the <code>GODEBUG=zipinsecurepath=0</code> environment variable is set,
+      <a href="/pkg/archive/zip/#NewReader"><code>NewReader</code></a> will now return the error
+      <a href="/pkg/archive/zip/#ErrInsecurePath"><code>ErrInsecurePath</code></a>
+      when opening an archive which contains any file name that is an absolute path,
+      refers to a location outside the current directory, contains invalid
+      characters, or (on Windows) is a reserved names such as <code>NUL</code>.
+      A future version of Go may disable insecure paths by default.
+    </p>
+    <p><!-- CL 449955 -->
+      Reading from a directory file that contains file data will now return an error.
+      The zip specification does not permit directory files to contain file data,
+      so this change only affects reading from invalid archives.
+    </p>
+  </dd>
+</dl><!-- archive/zip -->
+
+<dl id="bytes"><dt><a href="/pkg/bytes/">bytes</a></dt>
+  <dd>
+    <p><!-- CL 407176 -->
+      The new
+      <a href="/pkg/bytes/#CutPrefix"><code>CutPrefix</code></a> and
+      <a href="/pkg/bytes/#CutSuffix"><code>CutSuffix</code></a> functions
+      are like <a href="/pkg/bytes/#TrimPrefix"><code>TrimPrefix</code></a>
+      and <a href="/pkg/bytes/#TrimSuffix"><code>TrimSuffix</code></a>
+      but also report whether the string was trimmed.
+    </p>
+
+    <p><!-- CL 359675, https://go.dev/issue/45038 -->
+      The new <a href="/pkg/bytes/#Clone"><code>Clone</code></a> function
+      allocates a copy of a byte slice.
+    </p>
+  </dd>
+</dl><!-- bytes -->
+
+<dl id="context"><dt><a href="/pkg/context/">context</a></dt>
+  <dd>
+    <p><!-- https://go.dev/issue/51365, CL 375977 -->
+      The new <a href="/pkg/context/#WithCancelCause"><code>WithCancelCause</code></a> function
+      provides a way to cancel a context with a given error.
+      That error can be retrieved by calling the new <a href="/pkg/context/#Cause"><code>Cause</code></a> function.
+    </p>
+  </dd>
+</dl><!-- context -->
+
+<dl id="crypto/ecdsa"><dt><a href="/pkg/crypto/ecdsa/">crypto/ecdsa</a></dt>
+  <dd>
+    <p><!-- CL 353849 -->
+      When using supported curves, all operations are now implemented in constant time.
+      This led to an increase in CPU time between 5% and 30%, mostly affecting P-384 and P-521.
+    </p>
+
+    <p><!-- https://go.dev/issue/56088, CL 450816 -->
+      The new <a href="/pkg/crypto/ecdsa/#PrivateKey.ECDH"><code>PrivateKey.ECDH</code></a> method
+      converts an <code>ecdsa.PrivateKey</code> to an <code>ecdh.PrivateKey</code>.
+    </p>
+  </dd>
+</dl><!-- crypto/ecdsa -->
+
+<dl id="crypto/ed25519"><dt><a href="/pkg/crypto/ed25519/">crypto/ed25519</a></dt>
+  <dd>
+    <p><!-- CL 373076, CL 404274, https://go.dev/issue/31804 -->
+      The <a href="/pkg/crypto/ed25519/#PrivateKey.Sign"><code>PrivateKey.Sign</code></a> method
+      and the
+      <a href="/pkg/crypto/ed25519/#VerifyWithOptions"><code>VerifyWithOptions</code></a> function
+      now support signing pre-hashed messages with Ed25519ph,
+      indicated by an
+      <a href="/pkg/crypto/ed25519/#Options.HashFunc"><code>Options.HashFunc</code></a>
+      that returns
+      <a href="/pkg/crypto/#SHA512"><code>crypto.SHA512</code></a>.
+      They also now support Ed25519ctx and Ed25519ph with context,
+      indicated by setting the new
+      <a href="/pkg/crypto/ed25519/#Options.Context"><code>Options.Context</code></a>
+      field.
+    </p>
+  </dd>
+</dl><!-- crypto/ed25519 -->
+
+<dl id="crypto/rsa"><dt><a href="/pkg/crypto/rsa/">crypto/rsa</a></dt>
+  <dd>
+    <p><!-- CL 418874, https://go.dev/issue/19974 -->
+      The new field <a href="/pkg/crypto/rsa/#OAEPOptions.MGFHash"><code>OAEPOptions.MGFHash</code></a>
+      allows configuring the MGF1 hash separately for OAEP decryption.
+    </p>
+
+    <p><!-- https://go.dev/issue/20654 -->
+      crypto/rsa now uses a new, safer, constant-time backend. This causes a CPU
+      runtime increase for decryption operations between approximately 15%
+      (RSA-2048 on amd64) and 45% (RSA-4096 on arm64), and more on 32-bit architectures.
+      Encryption operations are approximately 20x slower than before (but still 5-10x faster than decryption).
+      Performance is expected to improve in future releases.
+      Programs must not modify or manually generate the fields of
+      <a href="/pkg/crypto/rsa/#PrecomputedValues"><code>PrecomputedValues</code></a>.
+    </p>
+  </dd>
+</dl><!-- crypto/rsa -->
+
+<dl id="crypto/subtle"><dt><a href="/pkg/crypto/subtle/">crypto/subtle</a></dt>
+  <dd>
+    <p><!-- https://go.dev/issue/53021, CL 421435 -->
+      The new function <a href="/pkg/crypto/subtle/#XORBytes"><code>XORBytes</code></a>
+      XORs two byte slices together.
+    </p>
+  </dd>
+</dl><!-- crypto/subtle -->
+
+<dl id="crypto/tls"><dt><a href="/pkg/crypto/tls/">crypto/tls</a></dt>
+  <dd>
+    <p><!-- CL 426455, CL 427155, CL 426454, https://go.dev/issue/46035 -->
+      Parsed certificates are now shared across all clients actively using that certificate.
+      The memory savings can be significant in programs that make many concurrent connections to a
+      server or collection of servers sharing any part of their certificate chains.
+    </p>
+
+    <p><!-- https://go.dev/issue/48152, CL 449336 -->
+      For a handshake failure due to a certificate verification failure,
+      the TLS client and server now return an error of the new type
+      <a href="/pkg/crypto/tls/#CertificateVerificationError"><code>CertificateVerificationError</code></a>,
+      which includes the presented certificates.
+    </p>
+  </dd>
+</dl><!-- crypto/tls -->
+
+<dl id="crypto/x509"><dt><a href="/pkg/crypto/x509/">crypto/x509</a></dt>
+  <dd>
+    <p><!-- CL 450816, CL 450815 -->
+      <a href="/pkg/crypto/x509/#ParsePKCS8PrivateKey"><code>ParsePKCS8PrivateKey</code></a>
+      and
+      <a href="/pkg/crypto/x509/#MarshalPKCS8PrivateKey"><code>MarshalPKCS8PrivateKey</code></a>
+      now support keys of type <a href="/pkg/crypto/ecdh.PrivateKey"><code>*crypto/ecdh.PrivateKey</code></a>.
+      <a href="/pkg/crypto/x509/#ParsePKIXPublicKey"><code>ParsePKIXPublicKey</code></a>
+      and
+      <a href="/pkg/crypto/x509/#MarshalPKIXPublicKey"><code>MarshalPKIXPublicKey</code></a>
+      now support keys of type <a href="/pkg/crypto/ecdh.PublicKey"><code>*crypto/ecdh.PublicKey</code></a>.
+      Parsing NIST curve keys still returns values of type
+      <code>*ecdsa.PublicKey</code> and <code>*ecdsa.PrivateKey</code>.
+      Use their new <code>ECDH</code> methods to convert to the <code>crypto/ecdh</code> types.
+    </p>
+    <p><!-- CL 449235 -->
+      The new <a href="/pkg/crypto/x509/#SetFallbackRoots"><code>SetFallbackRoots</code></a>
+      function allows a program to define a set of fallback root certificates in case an
+      operating system verifier or standard platform root bundle is unavailable at runtime.
+      It will most commonly be used with a new package, <a href="/pkg/golang.org/x/crypto/x509roots/fallback">golang.org/x/crypto/x509roots/fallback</a>,
+      which will provide an up to date root bundle.
+    </p>
+  </dd>
+</dl><!-- crypto/x509 -->
+
+<dl id="debug/elf"><dt><a href="/pkg/debug/elf/">debug/elf</a></dt>
+  <dd>
+    <p><!-- CL 429601 -->
+      Attempts to read from a <code>SHT_NOBITS</code> section using
+      <a href="/pkg/debug/elf/#Section.Data"><code>Section.Data</code></a>
+      or the reader returned by <a href="/pkg/debug/elf/#Section.Open"><code>Section.Open</code></a>
+      now return an error.
+    </p>
+    <p><!-- CL 420982 -->
+      Additional <a href="/pkg/debug/elf/#R_LARCH"><code>R_LARCH_*</code></a> constants are defined for use with LoongArch systems.
+    </p>
+    <p><!-- CL 420982, CL 435415, CL 425555 -->
+      Additional <a href="/pkg/debug/elf/#R_PPC64"><code>R_PPC64_*</code></a> constants are defined for use with PPC64 ELFv2 relocations.
+    </p>
+    <p><!-- CL 411915 -->
+      The constant value for <a href="/pkg/debug/elf/#R_PPC64_SECTOFF_LO_DS"><code>R_PPC64_SECTOFF_LO_DS</code></a> is corrected, from 61 to 62.
+    </p>
+  </dd>
+</dl><!-- debug/elf -->
+
+<dl id="debug/gosym"><dt><a href="/pkg/debug/gosym/">debug/gosym</a></dt>
+  <dd>
+    <p><!-- https://go.dev/issue/37762, CL 317917 -->
+      Due to a change of <a href="#linker">Go's symbol naming conventions</a>, tools that
+      process Go binaries should use Go 1.20's <code>debug/gosym</code> package to
+      transparently handle both old and new binaries.
+    </p>
+  </dd>
+</dl><!-- debug/gosym -->
+
+<dl id="debug/pe"><dt><a href="/pkg/debug/pe/">debug/pe</a></dt>
+  <dd>
+    <p><!-- CL 421357 -->
+      Additional <a href="/pkg/debug/pe/#IMAGE_FILE_MACHINE_RISCV128"><code>IMAGE_FILE_MACHINE_RISCV*</code></a> constants are defined for use with RISC-V systems.
+    </p>
+  </dd>
+</dl><!-- debug/pe -->
+
+<dl id="encoding/binary"><dt><a href="/pkg/encoding/binary/">encoding/binary</a></dt>
+  <dd>
+    <p><!-- CL 420274 -->
+      The <a href="/pkg/encoding/binary/#ReadVarint"><code>ReadVarint</code></a> and
+      <a href="/pkg/encoding/binary/#ReadUvarint"><code>ReadUvarint</code></a>
+      functions will now return <code>io.ErrUnexpectedEOF</code> after reading a partial value,
+      rather than <code>io.EOF</code>.
+    </p>
+  </dd>
+</dl><!-- encoding/binary -->
+
+<dl id="encoding/xml"><dt><a href="/pkg/encoding/xml/">encoding/xml</a></dt>
+  <dd>
+    <p><!-- https://go.dev/issue/53346, CL 424777 -->
+      The new <a href="/pkg/encoding/xml/#Encoder.Close"><code>Encoder.Close</code></a> method
+      can be used to check for unclosed elements when finished encoding.
+    </p>
+
+    <p><!-- CL 103875, CL 105636 -->
+      The decoder now rejects element and attribute names with more than one colon,
+      such as <code>&lt;a:b:c&gt;</code>,
+      as well as namespaces that resolve to an empty string, such as <code>xmlns:a=""</code>.
+    </p>
+
+    <p><!-- CL 107255 -->
+      The decoder now rejects elements that use different namespace prefixes in the opening and closing tag,
+      even if those prefixes both denote the same namespace.
+    </p>
+  </dd>
+</dl><!-- encoding/xml -->
+
+<dl id="errors"><dt><a href="/pkg/errors/">errors</a></dt>
+  <dd>
+    <p><!-- https://go.dev/issue/53435 -->
+      The new <a href="/pkg/errors/#Join"><code>Join</code></a> function returns an error wrapping a list of errors.
+    </p>
+  </dd>
+</dl><!-- errors -->
+
+<dl id="fmt"><dt><a href="/pkg/fmt/">fmt</a></dt>
+  <dd>
+    <p><!-- https://go.dev/issue/53435 -->
+      The <a href="/pkg/fmt/#Errorf"><code>Errorf</code></a> function supports multiple occurrences of
+      the <code>%w</code> format verb, returning an error that unwraps to the list of all arguments to <code>%w</code>.
+    </p>
+    <p><!-- https://go.dev/issue/51668, CL 400875 -->
+      The new <a href="/pkg/fmt/#FormatString"><code>FormatString</code></a> function recovers the
+      formatting directive corresponding to a <a href="/pkg/fmt/#State"><code>State</code></a>,
+      which can be useful in <a href="/pkg/fmt/#Formatter"><code>Formatter</code></a>.
+      implementations.
+    </p>
+  </dd>
+</dl><!-- fmt -->
+
+<dl id="go/ast"><dt><a href="/pkg/go/ast/">go/ast</a></dt>
+  <dd>
+    <p><!-- CL 426091, https://go.dev/issue/50429 -->
+      The new <a href="/pkg/go/ast/#RangeStmt.Range"><code>RangeStmt.Range</code></a> field
+      records the position of the <code>range</code> keyword in a range statement.
+    </p>
+    <p><!-- CL 427955, https://go.dev/issue/53202 -->
+      The new <a href="/pkg/go/ast/#File.FileStart"><code>File.FileStart</code></a>
+      and <a href="/pkg/go/ast/#File.FileEnd"><code>File.FileEnd</code></a> fields
+      record the position of the start and end of the entire source file.
+    </p>
+  </dd>
+</dl><!-- go/ast -->
+
+<dl id="go/token"><dt><a href="/pkg/go/token/">go/token</a></dt>
+  <dd>
+    <p><!-- CL 410114, https://go.dev/issue/53200 -->
+      The new <a href="/pkg/go/token/#FileSet.RemoveFile"><code>FileSet.RemoveFile</code></a> method
+      removes a file from a <code>FileSet</code>.
+      Long-running programs can use this to release memory associated
+      with files they no longer need.
+    </p>
+  </dd>
+</dl><!-- go/token -->
+
+<dl id="go/types"><dt><a href="/pkg/go/types/">go/types</a></dt>
+  <dd>
+    <p><!-- CL 454575 -->
+      The new <a href="/pkg/go/types/#Satisfies"><code>Satisfies</code></a> function reports
+      whether a type satisfies a constraint.
+      This change aligns with the <a href="#language">new language semantics</a>
+      that distinguish satisfying a constraint from implementing an interface.
+    </p>
+  </dd>
+</dl><!-- go/types -->
+
+<dl id="io"><dt><a href="/pkg/io/">io</a></dt>
+  <dd>
+    <p><!-- https://go.dev/issue/45899, CL 406776 -->
+      The new <a href="/pkg/io/#OffsetWriter"><code>OffsetWriter</code></a> wraps an underlying
+      <a href="/pkg/io/#WriterAt"><code>WriterAt</code></a>
+      and provides <code>Seek</code>, <code>Write</code>, and <code>WriteAt</code> methods
+      that adjust their effective file offset position by a fixed amount.
+    </p>
+  </dd>
+</dl><!-- io -->
+
+<dl id="io/fs"><dt><a href="/pkg/io/fs/">io/fs</a></dt>
+  <dd>
+    <p><!-- CL 363814, https://go.dev/issue/47209 -->
+      The new error <a href="/pkg/io/fs/#SkipAll"><code>SkipAll</code></a>
+      terminates a <a href="/pkg/io/fs/#WalkDir"><code>WalkDir</code></a>
+      immediately but successfully.
+    </p>
+  </dd>
+</dl><!-- io -->
+
+<dl id="math/big"><dt><a href="/pkg/math/big/">math/big</a></dt>
+  <dd>
+    <p><!-- https://go.dev/issue/52182 -->
+      The <a href="/pkg/math/big/">math/big</a> package's wide scope and
+      input-dependent timing make it ill-suited for implementing cryptography.
+      The cryptography packages in the standard library no longer call non-trivial
+      <a href="/pkg/math/big#Int">Int</a> methods on attacker-controlled inputs.
+      In the future, the determination of whether a bug in math/big is
+      considered a security vulnerability will depend on its wider impact on the
+      standard library.
+    </p>
+  </dd>
+</dl><!-- math/big -->
+
+<dl id="math/rand"><dt><a href="/pkg/math/rand/">math/rand</a></dt>
+  <dd>
+    <p><!-- https://go.dev/issue/54880, CL 436955, https://go.dev/issue/56319 -->
+      The <a href="/pkg/math/rand/">math/rand</a> package now automatically seeds
+      the global random number generator
+      (used by top-level functions like <code>Float64</code> and <code>Int</code>) with a random value,
+      and the top-level <a href="/pkg/math/rand/#Seed"><code>Seed</code></a> function has been deprecated.
+      Programs that need a reproducible sequence of random numbers
+      should prefer to allocate their own random source, using <code>rand.New(rand.NewSource(seed))</code>.
+    </p>
+    <p>
+      Programs that need the earlier consistent global seeding behavior can set
+      <code>GODEBUG=randautoseed=0</code> in their environment.
+    </p>
+    <p><!-- https://go.dev/issue/20661 -->
+      The top-level <a href="/pkg/math/rand/#Read"><code>Read</code></a> function has been deprecated.
+      In almost all cases,  <a href="/pkg/crypto/rand/#Read"><code>crypto/rand.Read</code></a> is more appropriate.
+    </p>
+  </dd>
+</dl><!-- math/rand -->
+
+<dl id="mime"><dt><a href="/pkg/mime/">mime</a></dt>
+  <dd>
+    <p><!-- https://go.dev/issue/48866 -->
+      The <a href="/pkg/mime/#ParseMediaType"><code>ParseMediaType</code></a> function now allows duplicate parameter names,
+      so long as the values of the names are the same.
+    </p>
+  </dd>
+</dl><!-- mime -->
+
+<dl id="mime/multipart"><dt><a href="/pkg/mime/multipart/">mime/multipart</a></dt>
+  <dd>
+    <p><!-- CL 431675 -->
+      Methods of the <a href="/pkg/mime/multipart/#Reader"><code>Reader</code></a> type now wrap errors
+      returned by the underlying <code>io.Reader</code>.
+    </p>
+  </dd>
+</dl><!-- mime/multipart -->
+
+<dl id="net"><dt><a href="/pkg/net/">net</a></dt>
+  <dd>
+    <p><!-- https://go.dev/issue/50101, CL 446179 -->
+      The <a href="/pkg/net/#LookupCNAME"><code>LookupCNAME</code></a>
+      function now consistently returns the contents
+      of a <code>CNAME</code> record when one exists. Previously on Unix systems and
+      when using the pure Go resolver, <code>LookupCNAME</code> would return an error
+      if a <code>CNAME</code> record referred to a name that with no <code>A</code>,
+      <code>AAAA</code>, or <code>CNAME</code> record. This change modifies
+      <code>LookupCNAME</code> to match the previous behavior on Windows,
+      allowing <code>LookupCNAME</code> to succeed whenever a
+      <code>CNAME</code> exists.
+    </p>
+
+    <p><!-- https://go.dev/issue/53482, CL 413454 -->
+      <a href="/pkg/net/#Interface.Flags"><code>Interface.Flags</code></a> now includes the new flag <code>FlagRunning</code>,
+      indicating an operationally active interface. An interface which is administratively
+      configured but not active (for example, because the network cable is not connected)
+      will have <code>FlagUp</code> set but not <code>FlagRunning</code>.
+    </p>
+
+    <p><!-- https://go.dev/issue/55301, CL 444955 -->
+      The new <a href="/pkg/net/#Dialer.ControlContext"><code>Dialer.ControlContext</code></a> field contains a callback function
+      similar to the existing <a href="/pkg/net/#Dialer.Control"><code>Dialer.Control</code></a> hook, that additionally
+      accepts the dial context as a parameter.
+      <code>Control</code> is ignored when <code>ControlContext</code> is not nil.
+    </p>
+
+    <p><!-- CL 428955 -->
+      The Go DNS resolver recognizes the <code>trust-ad</code> resolver option.
+      When <code>options trust-ad</code> is set in <code>resolv.conf</code>,
+      the Go resolver will set the AD bit in DNS queries. The resolver does not
+      make use of the AD bit in responses.
+    </p>
+
+    <p><!-- CL 448075 -->
+      DNS resolution will detect changes to <code>/etc/nsswitch.conf</code>
+      and reload the file when it changes. Checks are made at most once every
+      five seconds, matching the previous handling of <code>/etc/hosts</code>
+      and <code>/etc/resolv.conf</code>.
+    </p>
+  </dd>
+</dl><!-- net -->
+
+<dl id="net/http"><dt><a href="/pkg/net/http/">net/http</a></dt>
+  <dd>
+    <p><!-- https://go.dev/issue/51914 -->
+      The <a href="/pkg/net/http/#ResponseWriter.WriteHeader"><code>ResponseWriter.WriteHeader</code></a> function now supports sending
+      <code>1xx</code> status codes.
+    </p>
+
+    <p><!-- https://go.dev/issue/41773, CL 356410 -->
+      The new <a href="/pkg/net/http/#Server.DisableGeneralOptionsHandler"><code>Server.DisableGeneralOptionsHandler</code></a> configuration setting
+      allows disabling the default <code>OPTIONS *</code> handler.
+    </p>
+
+    <p><!-- https://go.dev/issue/54299, CL 447216 -->
+      The new <a href="/pkg/net/http/#Transport.OnProxyConnectResponse"><code>Transport.OnProxyConnectResponse</code></a> hook is called
+      when a <code>Transport</code> receives an HTTP response from a proxy
+      for a <code>CONNECT</code> request.
+    </p>
+
+    <p><!-- https://go.dev/issue/53960, CL 418614  -->
+      The HTTP server now accepts HEAD requests containing a body,
+      rather than rejecting them as invalid.
+    </p>
+
+    <p><!-- https://go.dev/issue/53896 -->
+      HTTP/2 stream errors returned by <code>net/http</code> functions may be converted
+      to a <a href="/pkg/golang.org/x/net/http2/#StreamError"><code>golang.org/x/net/http2.StreamError</code></a> using
+      <a href="/pkg/errors/#As"><code>errors.As</code></a>.
+    </p>
+
+    <p><!-- https://go.dev/cl/397734 -->
+      Leading and trailing spaces are trimmed from cookie names,
+      rather than being rejected as invalid.
+      For example, a cookie setting of "name =value"
+      is now accepted as setting the cookie "name".
+    </p>
+  </dd>
+</dl><!-- net/http -->
+
+<dl id="net/netip"><dt><a href="/pkg/net/netip/">net/netip</a></dt>
+  <dd>
+    <p><!-- https://go.dev/issue/51766, https://go.dev/issue/51777, CL 412475 -->
+      The new <a href="/pkg/net/netip/#IPv6LinkLocalAllRouters"><code>IPv6LinkLocalAllRouters</code></a>
+      and <a href="/pkg/net/netip/#IPv6Loopback"><code>IPv6Loopback</code></a> functions
+      are the <code>net/netip</code> equivalents of
+      <a href="/pkg/net/#IPv6loopback"><code>net.IPv6loopback</code></a> and
+      <a href="/pkg/net/#IPv6linklocalallrouters"><code>net.IPv6linklocalallrouters</code></a>.
+    </p>
+  </dd>
+</dl><!-- net/netip -->
+
+<dl id="os"><dt><a href="/pkg/os/">os</a></dt>
+  <dd>
+    <p><!-- CL 448897 -->
+      On Windows, the name <code>NUL</code> is no longer treated as a special case in
+      <a href="/pkg/os/#Mkdir"><code>Mkdir</code></a> and
+      <a href="/pkg/os/#Stat"><code>Stat</code></a>.
+    </p>
+    <p><!-- https://go.dev/issue/52747, CL 405275 -->
+      On Windows, <a href="/pkg/os/#File.Stat"><code>File.Stat</code></a>
+      now uses the file handle to retrieve attributes when the file is a directory.
+      Previously it would use the path passed to
+      <a href="/pkg/os/#Open"><code>Open</code></a>, which may no longer be the file
+      represented by the file handle if the file has been moved or replaced.
+      This change modifies <code>Open</code> to open directories without the
+      <code>FILE_SHARE_DELETE</code> access, which match the behavior of regular files.
+    </p>
+    <p><!-- https://go.dev/issue/36019, CL 405275 -->
+      On Windows, <a href="/pkg/os/#File.Seek"><code>File.Seek</code></a> now supports
+      seeking to the beginning of a directory.
+    </p>
+  </dd>
+</dl><!-- os -->
+
+<dl id="os/exec"><dt><a href="/pkg/os/exec/">os/exec</a></dt>
+  <dd>
+    <p><!-- https://go.dev/issue/50436, CL 401835 -->
+      The new <a href="/pkg/os/exec/#Cmd"><code>Cmd</code></a> fields
+      <a href="/pkg/os/exec/#Cmd.Cancel"><code>Cancel</code></a> and
+      <a href="/pkg/os/exec/#Cmd.WaitDelay"><code>WaitDelay</code></a>
+      specify the behavior of the <code>Cmd</code> when its associated
+      <code>Context</code> is canceled or its process exits with I/O pipes still
+      held open by a child process.
+    </p>
+  </dd>
+</dl><!-- os/exec -->
+
+<dl id="path/filepath"><dt><a href="/pkg/path/filepath/">path/filepath</a></dt>
+  <dd>
+    <p><!-- CL 363814, https://go.dev/issue/47209 -->
+      The new error <a href="/pkg/path/filepath/#SkipAll"><code>SkipAll</code></a>
+      terminates a <a href="/pkg/path/filepath/#Walk"><code>Walk</code></a>
+      immediately but successfully.
+    </p>
+    <p><!-- https://go.dev/issue/56219, CL 449239 -->
+      The new <a href="/pkg/path/filepath/#IsLocal"><code>IsLocal</code></a> function reports whether a path is
+      lexically local to a directory.
+      For example, if <code>IsLocal(p)</code> is <code>true</code>,
+      then <code>Open(p)</code> will refer to a file that is lexically
+      within the subtree rooted at the current directory.
+    </p>
+  </dd>
+</dl><!-- io -->
+
+<dl id="reflect"><dt><a href="/pkg/reflect/">reflect</a></dt>
+  <dd>
+    <p><!-- https://go.dev/issue/46746, CL 423794 -->
+      The new <a href="/pkg/reflect/#Value.Comparable"><code>Value.Comparable</code></a> and
+      <a href="/pkg/reflect/#Value.Equal"><code>Value.Equal</code></a> methods
+      can be used to compare two <code>Value</code>s for equality.
+      <code>Comparable</code> reports whether <code>Equal</code> is a valid operation for a given <code>Value</code> receiver.
+    </p>
+
+    <p><!-- https://go.dev/issue/48000, CL 389635 -->
+      The new <a href="/pkg/reflect/#Value.Grow"><code>Value.Grow</code></a> method
+      extends a slice to guarantee space for another <code>n</code> elements.
+    </p>
+
+    <p><!-- https://go.dev/issue/52376, CL 411476 -->
+      The new <a href="/pkg/reflect/#Value.SetZero"><code>Value.SetZero</code></a> method
+      sets a value to be the zero value for its type.
+    </p>
+
+    <p><!-- CL 425184 -->
+      Go 1.18 introduced <a href="/pkg/reflect/#Value.SetIterKey"><code>Value.SetIterKey</code></a>
+      and <a href="/pkg/reflect/#Value.SetIterValue"><code>Value.SetIterValue</code></a> methods.
+      These are optimizations: <code>v.SetIterKey(it)</code> is meant to be equivalent to <code>v.Set(it.Key())</code>.
+      The implementations incorrectly omitted a check for use of unexported fields that was present in the unoptimized forms.
+      Go 1.20 corrects these methods to include the unexported field check.
+    </p>
+  </dd>
+</dl><!-- reflect -->
+
+<dl id="regexp"><dt><a href="/pkg/regexp/">regexp</a></dt>
+  <dd>
+    <p><!-- CL 444817 -->
+      Go 1.19.2 and Go 1.18.7 included a security fix to the regular expression parser,
+      making it reject very large expressions that would consume too much memory.
+      Because Go patch releases do not introduce new API,
+      the parser returned <a href="/pkg/regexp/syntax/#ErrInternalError"><code>syntax.ErrInternalError</code></a> in this case.
+      Go 1.20 adds a more specific error, <a href="/pkg/regexp/syntax/#ErrLarge"><code>syntax.ErrLarge</code></a>,
+      which the parser now returns instead.
+    </p>
+  </dd>
+</dl><!-- regexp -->
+
+<dl id="runtime/cgo"><dt><a href="/pkg/runtime/cgo/">runtime/cgo</a></dt>
+  <dd>
+    <p><!-- https://go.dev/issue/46731, CL 421879 -->
+      Go 1.20 adds new <a href="/pkg/runtime/cgo/#Incomplete"><code>Incomplete</code></a> marker type.
+      Code generated by cgo will use <code>cgo.Incomplete</code> to mark an incomplete C type.
+    </p>
+  </dd>
+</dl><!-- runtime/cgo -->
+
+<dl id="runtime/metrics"><dt><a href="/pkg/runtime/metrics/">runtime/metrics</a></dt>
+  <dd>
+    <p><!-- https://go.dev/issue/47216, https://go.dev/issue/49881 -->
+      Go 1.20 adds new <a href="/pkg/runtime/metrics/#hdr-Supported_metrics">supported metrics</a>,
+      including the current <code>GOMAXPROCS</code> setting (<code>/sched/gomaxprocs:threads</code>),
+      the number of cgo calls executed (<code>/cgo/go-to-c-calls:calls</code>),
+      total mutex block time (<code>/sync/mutex/wait/total</code>), and various measures of time
+      spent in garbage collection.
+    </p>
+
+    <p><!-- CL 427615 -->
+      Time-based histogram metrics are now less precise, but take up much less memory.
+    </p>
+  </dd>
+</dl><!-- runtime/metrics -->
+
+<dl id="runtime/pprof"><dt><a href="/pkg/runtime/pprof/">runtime/pprof</a></dt>
+  <dd>
+    <p><!-- CL 443056 -->
+      Mutex profile samples are now pre-scaled, fixing an issue where old mutex profile
+      samples would be scaled incorrectly if the sampling rate changed during execution.
+    </p>
+
+    <p><!-- CL 416975 -->
+      Profiles collected on Windows now include memory mapping information that fixes
+      symbolization issues for position-independent binaries.
+    </p>
+  </dd>
+</dl><!-- runtime/pprof -->
+
+<dl id="runtime/trace"><dt><a href="/pkg/runtime/trace/">runtime/trace</a></dt>
+  <dd>
+    <p><!-- CL 447135, https://go.dev/issue/55022 -->
+      The garbage collector's background sweeper now yields less frequently,
+      resulting in many fewer extraneous events in execution traces.
+    </p>
+  </dd>
+</dl><!-- runtime/trace -->
+
+<dl id="strings"><dt><a href="/pkg/strings/">strings</a></dt>
+  <dd>
+    <p><!-- CL 407176, https://go.dev/issue/42537 -->
+      The new
+      <a href="/pkg/strings/#CutPrefix"><code>CutPrefix</code></a> and
+      <a href="/pkg/strings/#CutSuffix"><code>CutSuffix</code></a> functions
+      are like <a href="/pkg/strings/#TrimPrefix"><code>TrimPrefix</code></a>
+      and <a href="/pkg/strings/#TrimSuffix"><code>TrimSuffix</code></a>
+      but also report whether the string was trimmed.
+    </p>
+
+    <p><!-- CL 359675, https://go.dev/issue/45038 -->
+      The new <a href="/pkg/strings/#Clone"><code>Clone</code></a> function
+      allocates a copy of a string.
+    </p>
+  </dd>
+</dl><!-- strings -->
+
+<dl id="sync"><dt><a href="/pkg/sync/">sync</a></dt>
+  <dd>
+    <p><!-- CL 399094, https://go.dev/issue/51972 -->
+      The new <a href="/pkg/sync/#Map"><code>Map</code></a> methods <a href="/pkg/sync/#Map.Swap"><code>Swap</code></a>,
+      <a href="/pkg/sync/#Map.CompareAndSwap"><code>CompareAndSwap</code></a>, and
+      <a href="/pkg/sync/#Map.CompareAndDelete"><code>CompareAndDelete</code></a>
+      allow existing map entries to be updated atomically.
+    </p>
+  </dd>
+</dl><!-- sync -->
+
+<dl id="syscall"><dt><a href="/pkg/syscall/">syscall</a></dt>
+  <dd>
+    <p><!-- CL 411596 -->
+      On FreeBSD, compatibility shims needed for FreeBSD 11 and earlier have been removed.
+    </p>
+    <p><!-- CL 407574 -->
+      On Linux, additional <a href="/pkg/syscall/#CLONE_CLEAR_SIGHAND"><code>CLONE_*</code></a> constants
+      are defined for use with the <a href="/pkg/syscall/#SysProcAttr.Cloneflags"><code>SysProcAttr.Cloneflags</code></a> field.
+    </p>
+    <p><!-- CL 417695 -->
+      On Linux, the new <a href="/pkg/syscall/#SysProcAttr.CgroupFD"><code>SysProcAttr.CgroupFD</code></a>
+      and <a href="/pkg/syscall/#SysProcAttr.UseCgroupFD"><code>SysProcAttr.UseCgroupFD</code></a> fields
+      provide a way to place a child process into a specific cgroup.
+    </p>
+  </dd>
+</dl><!-- syscall -->
+
+<dl id="testing"><dt><a href="/pkg/testing/">testing</a></dt>
+  <dd>
+    <p><!-- https://go.dev/issue/43620, CL 420254 -->
+      The new method <a href="/pkg/testing/#B.Elapsed"><code>B.Elapsed</code></a>
+      reports the current elapsed time of the benchmark, which may be useful for
+      calculating rates to report with <code>ReportMetric</code>.
+    </p>
+  </dd>
+</dl><!-- testing -->
+
+<dl id="time"><dt><a href="/pkg/time/">time</a></dt>
+  <dd>
+    <p><!-- https://go.dev/issue/52746, CL 412495 -->
+      The new time layout constants <a href="/pkg/time/#DateTime"><code>DateTime</code></a>,
+      <a href="/pkg/time/#DateOnly"><code>DateOnly</code></a>, and
+      <a href="/pkg/time/#TimeOnly"><code>TimeOnly</code></a>
+      provide names for three of the most common layout strings used in a survey of public Go source code.
+    </p>
+
+    <p><!-- CL 382734, https://go.dev/issue/50770 -->
+      The new <a href="/pkg/time/#Time.Compare"><code>Time.Compare</code></a> method
+      compares two times.
+    </p>
+
+    <p><!-- CL 425037 -->
+      <a href="/pkg/time/#Parse"><code>Parse</code></a>
+      now ignores sub-nanosecond precision in its input,
+      instead of reporting those digits as an error.
+    </p>
+
+    <p><!-- CL 444277 -->
+      The <a href="/pkg/time/#Time.MarshalJSON"><code>Time.MarshalJSON</code></a> method
+      is now more strict about adherence to RFC 3339.
+    </p>
+  </dd>
+</dl><!-- time -->
+
+<dl id="unicode/utf16"><dt><a href="/pkg/unicode/utf16/">unicode/utf16</a></dt>
+  <dd>
+    <p><!-- https://go.dev/issue/51896, CL 409054 -->
+      The new  <a href="/pkg/unicode/utf16/#AppendRune"><code>AppendRune</code></a>
+      function appends the UTF-16 encoding of a given rune to a uint16 slice,
+      analogous to <a href="/pkg/unicode/utf8/#AppendRune"><code>utf8.AppendRune</code></a>.
+    </p>
+  </dd>
+</dl><!-- unicode/utf16 -->
+
+<!-- Silence false positives from x/build/cmd/relnote: -->
+<!-- https://go.dev/issue/45964 was documented in Go 1.18 release notes but closed recently -->
+<!-- https://go.dev/issue/52114 is an accepted proposal to add golang.org/x/net/http2.Transport.DialTLSContext; it's not a part of the Go release -->
+<!-- CL 431335: cmd/api: make check pickier about api/*.txt -->
+<!-- CL 447896 api: add newline to 55301.txt; modified api/next/55301.txt -->
+<!-- CL 449215 api/next/54299: add missing newline; modified api/next/54299.txt -->
+<!-- CL 433057 cmd: update vendored golang.org/x/tools for multiple error wrapping -->
+<!-- CL 423362 crypto/internal/boring: update to newer boringcrypto, add arm64 -->
+<!-- https://go.dev/issue/53481 x/cryptobyte ReadUint64, AddUint64 -->
+<!-- https://go.dev/issue/51994 x/crypto/ssh -->
+<!-- https://go.dev/issue/55358 x/exp/slices -->
+<!-- https://go.dev/issue/54714 x/sys/unix -->
+<!-- https://go.dev/issue/50035 https://go.dev/issue/54237 x/time/rate -->
+<!-- CL 345488 strconv optimization -->
+<!-- CL 428757 reflect deprecation, rolled back -->
+<!-- https://go.dev/issue/49390 compile -l -N is fully supported -->
+<!-- https://go.dev/issue/54619 x/tools -->
+<!-- CL 448898 reverted -->
+<!-- https://go.dev/issue/54850 x/net/http2 Transport.MaxReadFrameSize -->
+<!-- https://go.dev/issue/56054 x/net/http2 SETTINGS_HEADER_TABLE_SIZE -->
+<!-- CL 450375 reverted -->
+<!-- CL 453259 tracking deprecations in api -->
+<!-- CL 453260 tracking darwin port in api -->
+<!-- CL 453615 fix deprecation comment in archive/tar -->
+<!-- CL 453616 fix deprecation comment in archive/zip -->
+<!-- CL 453617 fix deprecation comment in encoding/csv -->
+<!-- https://go.dev/issue/54661 x/tools/go/analysis -->
+<!-- CL 423359, https://go.dev/issue/51317 arena -->
