2023-02-22 11:17:30 -07:00
|
|
|
<!--{
|
|
|
|
"Title": "Go 1.21 Release Notes",
|
|
|
|
"Path": "/doc/go1.21"
|
|
|
|
}-->
|
|
|
|
|
|
|
|
<!--
|
|
|
|
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.21</h2>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
<strong>
|
|
|
|
Go 1.21 is not yet released. These are work-in-progress
|
|
|
|
release notes. Go 1.21 is expected to be released in August 2023.
|
|
|
|
</strong>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h2 id="language">Changes to the language</h2>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
TODO: complete this section
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h2 id="ports">Ports</h2>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
TODO: complete this section, or delete if not needed
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h2 id="tools">Tools</h2>
|
|
|
|
|
|
|
|
<h3 id="go-command">Go command</h3>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
TODO: complete this section, or delete if not needed
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h2 id="runtime">Runtime</h2>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
TODO: complete this section, or delete if not needed
|
|
|
|
</p>
|
|
|
|
|
2023-03-13 12:02:16 -06:00
|
|
|
<p><!-- https://go.dev/issue/7181 -->
|
|
|
|
When printing very deep stacks, the runtime now prints the first 50
|
|
|
|
(innermost) frames followed by the bottom 50 (outermost) frames,
|
|
|
|
rather than just printing the first 100 frames. This makes it easier
|
|
|
|
to see how deeply recursive stacks started, and is especially
|
|
|
|
valuable for debugging stack overflows.
|
|
|
|
</p>
|
|
|
|
|
2023-02-22 11:17:30 -07:00
|
|
|
<h2 id="compiler">Compiler</h2>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
TODO: complete this section, or delete if not needed
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h2 id="linker">Linker</h2>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
TODO: complete this section, or delete if not needed
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h2 id="library">Core library</h2>
|
|
|
|
|
|
|
|
<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>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
TODO: complete this section
|
|
|
|
</p>
|
2022-11-17 14:00:57 -07:00
|
|
|
|
2023-04-24 07:34:24 -06:00
|
|
|
<dl id="context"><dt><a href="/pkg/context/">context</a></dt>
|
2023-04-19 13:31:27 -06:00
|
|
|
<dd>
|
|
|
|
<p><!-- https://go.dev/issue/40221, CL 479918 -->
|
|
|
|
The new <a href="/pkg/context/#WithoutCancel"><code>WithoutCancel</code></a>
|
|
|
|
function returns a copy of a context that is not canceled when the original
|
|
|
|
context is canceled.
|
|
|
|
</p>
|
|
|
|
<p><!-- https://go.dev/issue/56661, CL 449318 -->
|
|
|
|
The new <a href="/pkg/context/#WithDeadlineCause"><code>WithDeadlineCause</code></a>
|
|
|
|
and <a href="/pkg/context/#WithTimeoutCause"><code>WithTimeoutCause</code></a>
|
|
|
|
functions provide a way to set a context cancellation cause when a deadline or
|
|
|
|
timer expires. The cause may be retrieved with the
|
|
|
|
<a href="/pkg/context/#Cause"><code>Cause</code></a> function.
|
|
|
|
</p>
|
|
|
|
<p><!-- https://go.dev/issue/57928, CL 482695 -->
|
|
|
|
The new <a href="/pkg/context/#AfterFunc"><code>AfterFunc</code></a>
|
|
|
|
function registers a function to run after a context has been cancelled.
|
|
|
|
</p>
|
|
|
|
</dd>
|
|
|
|
</dl>
|
|
|
|
|
2022-11-17 14:00:57 -07:00
|
|
|
<dl id="sync"><dt><a href="/pkg/sync/">sync</a></dt>
|
|
|
|
<dd>
|
|
|
|
<p><!-- https://go.dev/issue/56102, CL 451356 -->
|
|
|
|
The new <a href="/pkg/sync/#OnceFunc"><code>OnceFunc</code></a>,
|
|
|
|
<a href="/pkg/sync/#OnceValue"><code>OnceValue</code></a>, and
|
|
|
|
<a href="/pkg/sync/#OnceValues"><code>OnceValues</code></a>
|
|
|
|
functions capture a common use of <a href="/pkg/sync/#Once">Once</a> to
|
|
|
|
lazily initialize a value on first use.
|
|
|
|
</p>
|
|
|
|
</dd>
|
|
|
|
</dl>
|