]> Cypherpunks.ru repositories - gostls13.git/blob - doc/go1.21.html
slices: add in-place Reverse function
[gostls13.git] / doc / go1.21.html
1 <!--{
2         "Title": "Go 1.21 Release Notes",
3         "Path":  "/doc/go1.21"
4 }-->
5
6 <!--
7 NOTE: In this document and others in this directory, the convention is to
8 set fixed-width phrases with non-fixed-width spaces, as in
9 <code>hello</code> <code>world</code>.
10 Do not send CLs removing the interior tags from such phrases.
11 -->
12
13 <style>
14   main ul li { margin: 0.5em 0; }
15 </style>
16
17 <h2 id="introduction">DRAFT RELEASE NOTES — Introduction to Go 1.21</h2>
18
19 <p>
20   <strong>
21     Go 1.21 is not yet released. These are work-in-progress
22     release notes. Go 1.21 is expected to be released in August 2023.
23   </strong>
24 </p>
25
26 <h2 id="language">Changes to the language</h2>
27
28 <p><!-- https://go.dev/issue/56986 -->
29   TODO: <a href="https://go.dev/issue/56986">https://go.dev/issue/56986</a>: extended backwards compatibility for Go
30 </p>
31
32 <!-- https://go.dev/issue/57969 -->
33 <p>
34   <!-- add GOEXPERIMENT=loopvar -->
35 </p>
36
37
38 <p>
39   TODO: complete this section
40 </p>
41
42 <h2 id="ports">Ports</h2>
43
44 <!-- CL 470695 -->
45 <p>
46   <!-- cmd/dist: default to GOARM=7 on all non-arm systems -->
47 </p>
48
49 <!-- https://go.dev/issue/38248 -->
50 <p>
51   <!-- replace CallImport with go:wasmimport directive -->
52 </p>
53
54 <!-- https://go.dev/issue/59149 -->
55 <p>
56   <!-- allow the use of go:wasmimport globally -->
57 </p>
58
59 <!-- CL 489255 -->
60 <p>
61   <!-- cmd/compile: remove go:wasmimport restriction -->
62 </p>
63
64
65 <h3 id="wasip1">WebAssembly System Interface</h3>
66
67 <p><!-- https://go.dev/issue/58141 -->
68   Go 1.21 adds an experimental port to the <a href="https://wasi.dev/">
69   WebAssembly System Interface (WASI)</a>, Preview 1
70   (<code>GOOS=wasip1</code>, <code>GOARCH=wasm</code>).
71 </p>
72
73 <p>
74   As a result of the addition of the new <code>GOOS</code> value
75   "<code>wasip1</code>", Go files named <code>*_wasip1.go</code>
76   will now be <a href="/pkg/go/build/#hdr-Build_Constraints">ignored
77   by Go tools</a> except when that <code>GOOS</code> value is being
78   used.
79   If you have existing filenames matching that pattern, you will
80   need to rename them.
81 </p>
82
83 <h2 id="tools">Tools</h2>
84
85 <!-- https://go.dev/issue/15513 -->
86 <p>
87   <!-- support compiling all tests without running -->
88 </p>
89
90 <h3 id="go-command">Go command</h3>
91
92 <p><!-- https://go.dev/issue/58099, CL 474236 -->
93   The <code>-pgo</code> build flag now defaults to <code>-pgo=auto</code>,
94   and the restriction of specifying a single main package on the command
95   line is now removed. If a file named <code>default.pgo</code> is present
96   in the main package's directory, the <code>go</code> command will use
97   it to enable profile-guided optimization for building the corresponding
98   program.
99 </p>
100
101 <p><!-- CL 453603 -->
102   TODO: <a href="https://go.dev/cl/453603">https://go.dev/cl/453603</a>: cmd/go, go/build: parse directives in file headers; modified api/next/56986.txt
103 </p>
104
105 <!-- CL 466397 -->
106 <p>
107   <!-- cmd/go: make go test build multiple executables; The go test command now supports using the -c flag with multiple packages. -->
108 </p>
109
110 <h2 id="runtime">Runtime</h2>
111
112 <p>
113   TODO: complete this section, or delete if not needed
114 </p>
115
116 <p><!-- https://go.dev/issue/7181 -->
117   When printing very deep stacks, the runtime now prints the first 50
118   (innermost) frames followed by the bottom 50 (outermost) frames,
119   rather than just printing the first 100 frames. This makes it easier
120   to see how deeply recursive stacks started, and is especially
121   valuable for debugging stack overflows.
122 </p>
123
124 <h2 id="compiler">Compiler</h2>
125
126 <!-- CL 490819 -->
127 <p>
128   <!-- cmd/cgo: reject attempts to declare methods on C types -->
129 </p>
130
131 <!-- CL 461315 -->
132 <p>
133   <!-- cmd/compile: enable deadcode of unreferenced large global maps -->
134 </p>
135
136 <p>
137   TODO: complete this section, or delete if not needed
138 </p>
139
140 <h2 id="linker">Linker</h2>
141
142 <!-- CL 457455 -->
143 <p>
144   <!-- cmd/link: generate .xdata PE section -->
145 </p>
146 <!-- CL 463395 -->
147 <p>
148   <!-- cmd/link: linker portion of dead map removal -->
149 </p>
150
151 <p>
152   TODO: complete this section, or delete if not needed
153 </p>
154
155 <h2 id="library">Core library</h2>
156
157 <h3 id="minor_library_changes">Minor changes to the library</h3>
158
159 <p>
160   As always, there are various minor changes and updates to the library,
161   made with the Go 1 <a href="/doc/go1compat">promise of compatibility</a>
162   in mind.
163   There are also various performance improvements, not enumerated here.
164 </p>
165
166 <p><!-- CL 456837 -->
167   TODO: <a href="https://go.dev/cl/456837">https://go.dev/cl/456837</a>: all: upgrade Unicode from 13.0.0 to 15.0.0; modified api/except.txt, api/next/55079.txt
168 </p>
169
170 <p>
171   TODO: complete this section
172 </p>
173
174 <dl id="bytes"><dt><a href="/pkg/bytes/">bytes</a></dt>
175   <dd>
176     <p><!-- https://go.dev/issue/53685 -->
177       TODO: <a href="https://go.dev/issue/53685">https://go.dev/issue/53685</a>: add Buffer.Available and Buffer.AvailableBuffer
178     </p>
179
180     <p><!-- CL 474635 -->
181       TODO: <a href="https://go.dev/cl/474635">https://go.dev/cl/474635</a>: bytes: add Buffer.Available and Buffer.AvailableBuffer; modified api/next/53685.txt
182     </p>
183   </dd>
184 </dl><!-- bytes -->
185
186 <dl id="context"><dt><a href="/pkg/context/">context</a></dt>
187   <dd>
188     <p><!-- https://go.dev/issue/40221, CL 479918 -->
189       The new <a href="/pkg/context/#WithoutCancel"><code>WithoutCancel</code></a>
190       function returns a copy of a context that is not canceled when the original
191       context is canceled.
192     </p>
193     <p><!-- https://go.dev/issue/56661, CL 449318 -->
194       The new <a href="/pkg/context/#WithDeadlineCause"><code>WithDeadlineCause</code></a>
195       and <a href="/pkg/context/#WithTimeoutCause"><code>WithTimeoutCause</code></a>
196       functions provide a way to set a context cancellation cause when a deadline or
197       timer expires. The cause may be retrieved with the
198       <a href="/pkg/context/#Cause"><code>Cause</code></a> function.
199     </p>
200     <p><!-- https://go.dev/issue/57928, CL 482695 -->
201       The new <a href="/pkg/context/#AfterFunc"><code>AfterFunc</code></a>
202       function registers a function to run after a context has been cancelled.
203     </p>
204   </dd>
205 </dl>
206
207 <dl id="crypto/elliptic"><dt><a href="/pkg/crypto/elliptic/">crypto/elliptic</a></dt>
208   <dd>
209     <p><!-- CL 459977 -->
210       TODO: <a href="https://go.dev/cl/459977">https://go.dev/cl/459977</a>: crypto/elliptic: deprecate unsafe APIs; modified api/next/34648.txt, api/next/52221.txt
211     </p>
212   </dd>
213 </dl><!-- crypto/elliptic -->
214
215 <dl id="crypto/rsa"><dt><a href="/pkg/crypto/rsa/">crypto/rsa</a></dt>
216   <dd>
217     <p><!-- https://go.dev/issue/56921 -->
218       TODO: <a href="https://go.dev/issue/56921">https://go.dev/issue/56921</a>: deprecate GenerateMultiPrimeKey and PrecomputedValues.CRTValues
219     </p>
220
221     <p><!-- CL 459976 -->
222       TODO: <a href="https://go.dev/cl/459976">https://go.dev/cl/459976</a>: crypto/rsa: deprecate multiprime RSA support; modified api/next/56921.txt
223     </p>
224   </dd>
225 </dl><!-- crypto/rsa -->
226
227 <dl id="crypto/sha1"><dt><a href="/pkg/crypto/sha1/">crypto/sha1</a></dt>
228   <dd>
229     <p><!-- CL 483815 -->
230       TODO: <a href="https://go.dev/cl/483815">https://go.dev/cl/483815</a>: crypto/sha1: add WriteString and WriteByte method
231     </p>
232   </dd>
233 </dl><!-- crypto/sha1 -->
234
235 <dl id="crypto/sha256"><dt><a href="/pkg/crypto/sha256/">crypto/sha256</a></dt>
236   <dd>
237     <p><!-- https://go.dev/issue/50543 -->
238       TODO: <a href="https://go.dev/issue/50543">https://go.dev/issue/50543</a>: add native SHA256 instruction implementation for AMD64
239     </p>
240
241     <p><!-- CL 408795 -->
242       TODO: <a href="https://go.dev/cl/408795">https://go.dev/cl/408795</a>: crypto/sha256: add sha-ni implementation; crypto/sha256 uses Intel SHA extensions on new enough x86 processors, making it 3-4X faster.
243     </p>
244
245     <p><!-- CL 481478 -->
246       TODO: <a href="https://go.dev/cl/481478">https://go.dev/cl/481478</a>: crypto/sha256: add WriteString and WriteByte method
247     </p>
248   </dd>
249 </dl><!-- crypto/sha256 -->
250
251 <dl id="crypto/sha512"><dt><a href="/pkg/crypto/sha512/">crypto/sha512</a></dt>
252   <dd>
253     <p><!-- CL 483816 -->
254       TODO: <a href="https://go.dev/cl/483816">https://go.dev/cl/483816</a>: crypto/sha512: add WriteString and WriteByte method
255     </p>
256   </dd>
257 </dl><!-- crypto/sha512 -->
258
259 <dl id="crypto/x509"><dt><a href="/pkg/crypto/x509/">crypto/x509</a></dt>
260   <dd>
261     <p><!-- https://go.dev/issue/53573 -->
262       TODO: <a href="https://go.dev/issue/53573">https://go.dev/issue/53573</a>: surface ReasonCode inside x509.RevocationList entries
263     </p>
264
265     <p><!-- CL 468875 -->
266       TODO: <a href="https://go.dev/cl/468875">https://go.dev/cl/468875</a>: crypto/x509: surface ReasonCode in RevocationList API; modified api/next/53573.txt
267     </p>
268   </dd>
269 </dl><!-- crypto/x509 -->
270
271 <dl id="debug/elf"><dt><a href="/pkg/debug/elf/">debug/elf</a></dt>
272   <dd>
273     <p><!-- https://go.dev/issue/56887 -->
274       TODO: <a href="https://go.dev/issue/56887">https://go.dev/issue/56887</a>: add DT_FLAGS_1 (dynamic flags) constants
275     </p>
276
277     <p><!-- https://go.dev/issue/56892 -->
278       TODO: <a href="https://go.dev/issue/56892">https://go.dev/issue/56892</a>: add (*File).DynValue
279     </p>
280
281     <p><!-- CL 452496 -->
282       TODO: <a href="https://go.dev/cl/452496">https://go.dev/cl/452496</a>: debug/elf: add DT_FLAGS_1 constants; modified api/next/56887.txt
283     </p>
284
285     <p><!-- CL 452617 -->
286       TODO: <a href="https://go.dev/cl/452617">https://go.dev/cl/452617</a>: debug/elf: retrieve values for dynamic section tags; modified api/next/56892.txt
287     </p>
288
289     <p><!-- CL 473256 -->
290       TODO: <a href="https://go.dev/cl/473256">https://go.dev/cl/473256</a>: debug/elf: support zstd compression; modified api/next/55107.txt
291     </p>
292   </dd>
293 </dl><!-- debug/elf -->
294
295 <dl id="debug/pe"><dt><a href="/pkg/debug/pe/">debug/pe</a></dt>
296   <dd>
297     <p><!-- CL 488475 -->
298       TODO: <a href="https://go.dev/cl/488475">https://go.dev/cl/488475</a>: debug/pe: return error on reading from section with uninitialized data
299     </p>
300   </dd>
301 </dl><!-- debug/pe -->
302
303 <dl id="embed"><dt><a href="/pkg/embed/">embed</a></dt>
304   <dd>
305     <p><!-- https://go.dev/issue/57803 -->
306       TODO: <a href="https://go.dev/issue/57803">https://go.dev/issue/57803</a>: openFile should implement ReaderAt
307     </p>
308
309     <p><!-- CL 483235 -->
310       TODO: <a href="https://go.dev/cl/483235">https://go.dev/cl/483235</a>: embed: implement openFile.ReadAt
311     </p>
312   </dd>
313 </dl><!-- embed -->
314
315 <dl id="errors"><dt><a href="/pkg/errors/">errors</a></dt>
316   <dd>
317     <p><!-- https://go.dev/issue/41198 -->
318       TODO: <a href="https://go.dev/issue/41198">https://go.dev/issue/41198</a>: add ErrUnsupported
319     </p>
320
321     <p><!-- CL 473935 -->
322       TODO: <a href="https://go.dev/cl/473935">https://go.dev/cl/473935</a>: errors: add ErrUnsupported; modified api/next/41198.txt
323     </p>
324   </dd>
325 </dl><!-- errors -->
326
327 <dl id="flag"><dt><a href="/pkg/flag/">flag</a></dt>
328   <dd>
329     <p><!-- https://go.dev/issue/53747 -->
330       TODO: <a href="https://go.dev/issue/53747">https://go.dev/issue/53747</a>: add BoolFunc(name, usage string, fn func(string)error)
331     </p>
332
333     <p><!-- CL 476015 -->
334       TODO: <a href="https://go.dev/cl/476015">https://go.dev/cl/476015</a>: flag: add BoolFunc; FlagSet.BoolFunc; modified api/next/53747.txt
335     </p>
336
337     <p><!-- CL 480215 -->
338       TODO: <a href="https://go.dev/cl/480215">https://go.dev/cl/480215</a>: flag: panic if a flag is defined after being set
339     </p>
340   </dd>
341 </dl><!-- flag -->
342
343 <dl id="fs"><dt><a href="/pkg/fs/">fs</a></dt>
344   <dd>
345     <p><!-- https://go.dev/issue/54451 -->
346       TODO: <a href="https://go.dev/issue/54451">https://go.dev/issue/54451</a>: standard implementations of FileInfo and DirEntry should implement fmt.Stringer
347     </p>
348   </dd>
349 </dl><!-- fs -->
350
351 <dl id="go/ast"><dt><a href="/pkg/go/ast/">go/ast</a></dt>
352   <dd>
353     <p><!-- https://go.dev/issue/28089 -->
354       TODO: <a href="https://go.dev/issue/28089">https://go.dev/issue/28089</a>: add func IsGenerated(*File) bool
355     </p>
356
357     <p><!-- CL 476276 -->
358       TODO: <a href="https://go.dev/cl/476276">https://go.dev/cl/476276</a>: go/ast: add File.GoVersion; modified api/next/59033.txt
359     </p>
360
361     <p><!-- CL 487935 -->
362       TODO: <a href="https://go.dev/cl/487935">https://go.dev/cl/487935</a>: go/ast: add IsGenerated(*File) predicate; modified api/next/28089.txt
363     </p>
364   </dd>
365 </dl><!-- go/ast -->
366
367 <dl id="go/build"><dt><a href="/pkg/go/build/">go/build</a></dt>
368   <dd>
369     <p><!-- CL 453603 -->
370       TODO: <a href="https://go.dev/cl/453603">https://go.dev/cl/453603</a>: cmd/go, go/build: parse directives in file headers; modified api/next/56986.txt
371     </p>
372   </dd>
373 </dl><!-- go/build -->
374
375 <dl id="go/build/constraint"><dt><a href="/pkg/go/build/constraint/">go/build/constraint</a></dt>
376   <dd>
377     <p><!-- CL 476275 -->
378       TODO: <a href="https://go.dev/cl/476275">https://go.dev/cl/476275</a>: go/build/constraint: add GoVersion; modified api/next/59033.txt
379     </p>
380   </dd>
381 </dl><!-- go/build/constraint -->
382
383 <dl id="go/token"><dt><a href="/pkg/go/token/">go/token</a></dt>
384   <dd>
385     <p><!-- CL 464515 -->
386       TODO: <a href="https://go.dev/cl/464515">https://go.dev/cl/464515</a>: go/token: add (*File).Lines method; modified api/next/57708.txt
387     </p>
388   </dd>
389 </dl><!-- go/token -->
390
391 <dl id="hash/maphash"><dt><a href="/pkg/hash/maphash/">hash/maphash</a></dt>
392   <dd>
393     <p><!-- https://go.dev/issue/47342 -->
394       TODO: <a href="https://go.dev/issue/47342">https://go.dev/issue/47342</a>: Provide a `purego` implementation
395     </p>
396
397     <p><!-- CL 468795 -->
398       TODO: <a href="https://go.dev/cl/468795">https://go.dev/cl/468795</a>: hash/maphash: add purego implementation
399     </p>
400   </dd>
401 </dl><!-- hash/maphash -->
402
403 <dl id="io/fs"><dt><a href="/pkg/io/fs/">io/fs</a></dt>
404   <dd>
405     <p><!-- CL 489555 -->
406       TODO: <a href="https://go.dev/cl/489555">https://go.dev/cl/489555</a>: io/fs: add FormatFileInfo and FormatDirEntry functions; modified api/next/54451.txt
407     </p>
408   </dd>
409 </dl><!-- io/fs -->
410
411 <dl id="log/slog"><dt><a href="/pkg/log/slog/">log/slog</a></dt>
412   <dd>
413     <p><!-- https://go.dev/issue/59060 -->
414       TODO: <a href="https://go.dev/issue/59060">https://go.dev/issue/59060</a>: arg to Record.Attrs should return bool
415     </p>
416
417     <p><!-- https://go.dev/issue/59141 -->
418       TODO: <a href="https://go.dev/issue/59141">https://go.dev/issue/59141</a>: handle panics in LogValuer.LogValue
419     </p>
420
421     <p><!-- https://go.dev/issue/59204 -->
422       TODO: <a href="https://go.dev/issue/59204">https://go.dev/issue/59204</a>: change slog.Group signature to ...any
423     </p>
424
425     <p><!-- https://go.dev/issue/59280 -->
426       TODO: <a href="https://go.dev/issue/59280">https://go.dev/issue/59280</a>: ReplaceAttr gets Source struct instead of file:line
427     </p>
428
429     <p><!-- https://go.dev/issue/59282 -->
430       TODO: <a href="https://go.dev/issue/59282">https://go.dev/issue/59282</a>: drop only completely empty Attrs
431     </p>
432
433     <p><!-- https://go.dev/issue/59339 -->
434       TODO: <a href="https://go.dev/issue/59339">https://go.dev/issue/59339</a>: change constructors to NewXXXHandler(io.Writer, *HandlerOptions)
435     </p>
436
437     <p><!-- https://go.dev/issue/59345 -->
438       TODO: <a href="https://go.dev/issue/59345">https://go.dev/issue/59345</a>: JSONHandler should format everything like json.Marshal
439     </p>
440
441     <p><!-- CL 477295 -->
442       TODO: <a href="https://go.dev/cl/477295">https://go.dev/cl/477295</a>: log/slog: initial commit; modified api/next/56345.txt
443     </p>
444
445     <p><!-- CL 484096 -->
446       TODO: <a href="https://go.dev/cl/484096">https://go.dev/cl/484096</a>: log/slog: function argument to Record.Attrs returns bool; modified api/next/59060.txt
447     </p>
448
449     <p><!-- CL 486376 -->
450       TODO: <a href="https://go.dev/cl/486376">https://go.dev/cl/486376</a>: log/slog: add Source type for source location; modified api/next/59280.txt
451     </p>
452
453     <p><!-- CL 486415 -->
454       TODO: <a href="https://go.dev/cl/486415">https://go.dev/cl/486415</a>: log/slog: built-in handler constructors take options as a second arg; modified api/next/56345.txt, api/next/59339.txt
455     </p>
456
457     <p><!-- CL 487855 -->
458       TODO: <a href="https://go.dev/cl/487855">https://go.dev/cl/487855</a>: log/slog: Group takes ...any; modified api/next/56345.txt, api/next/59204.txt
459     </p>
460   </dd>
461 </dl><!-- log/slog -->
462
463 <dl id="maps"><dt><a href="/pkg/maps/">maps</a></dt>
464   <dd>
465     <p><!-- https://go.dev/issue/57436 -->
466       TODO: <a href="https://go.dev/issue/57436">https://go.dev/issue/57436</a>: new standard library package based on x/exp/maps
467     </p>
468
469     <p><!-- CL 464343 -->
470       TODO: <a href="https://go.dev/cl/464343">https://go.dev/cl/464343</a>: maps: new package; modified api/next/57436.txt
471     </p>
472   </dd>
473 </dl><!-- maps -->
474
475 <dl id="math"><dt><a href="/pkg/math/">math</a></dt>
476   <dd>
477     <p><!-- https://go.dev/issue/56491 -->
478       TODO: <a href="https://go.dev/issue/56491">https://go.dev/issue/56491</a>: add Compare and Compare32
479     </p>
480
481     <p><!-- CL 459435 -->
482       TODO: <a href="https://go.dev/cl/459435">https://go.dev/cl/459435</a>: math: add Compare and Compare32; modified api/next/56491.txt
483     </p>
484
485     <p><!-- CL 467515 -->
486       TODO: <a href="https://go.dev/cl/467515">https://go.dev/cl/467515</a>: math: add Compare and Compare32; modified api/next/56491.txt
487     </p>
488   </dd>
489 </dl><!-- math -->
490
491 <dl id="math/big"><dt><a href="/pkg/math/big/">math/big</a></dt>
492   <dd>
493     <p><!-- https://go.dev/issue/56984 -->
494       TODO: <a href="https://go.dev/issue/56984">https://go.dev/issue/56984</a>: add Int.Float64 conversion (was initially: {ToInt64,ToUint64,Float64})
495     </p>
496
497     <p><!-- CL 453115 -->
498       TODO: <a href="https://go.dev/cl/453115">https://go.dev/cl/453115</a>: math/big: add Int.Float64 conversion; modified api/next/56984.txt
499     </p>
500   </dd>
501 </dl><!-- math/big -->
502
503 <dl id="net"><dt><a href="/pkg/net/">net</a></dt>
504   <dd>
505     <p><!-- https://go.dev/issue/56539 -->
506       TODO: <a href="https://go.dev/issue/56539">https://go.dev/issue/56539</a>: add support for MPTCP
507     </p>
508
509     <p><!-- https://go.dev/issue/59166 -->
510       TODO: <a href="https://go.dev/issue/59166">https://go.dev/issue/59166</a>: add func (*TCPConn) MultipathTCP() (bool, error)
511     </p>
512
513     <p><!-- CL 471136 -->
514       TODO: <a href="https://go.dev/cl/471136">https://go.dev/cl/471136</a>: net: mptcp: implement dialMPTCP; modified api/next/56539.txt
515     </p>
516
517     <p><!-- CL 471137 -->
518       TODO: <a href="https://go.dev/cl/471137">https://go.dev/cl/471137</a>: net: mptcp: implement listenMPTCP; modified api/next/56539.txt
519     </p>
520
521     <p><!-- CL 471140 -->
522       TODO: <a href="https://go.dev/cl/471140">https://go.dev/cl/471140</a>: net: mptcp: add TCPConn&#39;s MultipathTCP checker; modified api/next/59166.txt
523     </p>
524   </dd>
525 </dl><!-- net -->
526
527 <dl id="net/http"><dt><a href="/pkg/net/http/">net/http</a></dt>
528   <dd>
529     <p><!-- https://go.dev/issue/44855 -->
530       TODO: <a href="https://go.dev/issue/44855">https://go.dev/issue/44855</a>: add ErrSchemeMismatch
531     </p>
532
533     <p><!-- CL 382117 -->
534       TODO: <a href="https://go.dev/cl/382117">https://go.dev/cl/382117</a>: net/http: expose &#34;http: server gave HTTP response to HTTPS client&#34; error; modified api/next/44855.txt
535     </p>
536
537     <p><!-- CL 472636 -->
538       TODO: <a href="https://go.dev/cl/472636">https://go.dev/cl/472636</a>: net/http: support full-duplex HTTP/1 responses; modified api/next/57786.txt
539     </p>
540
541     <p><!-- CL 494122 -->
542       TODO: <a href="https://go.dev/cl/494122">https://go.dev/cl/494122</a>: net/http: let ErrNotSupported match errors.ErrUnsupported; modified api/next/41198.txt
543     </p>
544   </dd>
545 </dl><!-- net/http -->
546
547 <dl id="os"><dt><a href="/pkg/os/">os</a></dt>
548   <dd>
549     <p><!-- https://go.dev/issue/32558 -->
550       TODO: <a href="https://go.dev/issue/32558">https://go.dev/issue/32558</a>: allow Chtimes with time.Time{} to avoid setting time
551     </p>
552
553     <p><!-- CL 219638 -->
554       TODO: <a href="https://go.dev/cl/219638">https://go.dev/cl/219638</a>: os: make Chtimes accept empty time values to skip file time modification
555     </p>
556
557     <p><!-- CL 477215 -->
558       TODO: <a href="https://go.dev/cl/477215">https://go.dev/cl/477215</a>: os: avoid creating a new file in Truncate on Windows; os.Truncate on Windows no longer now fails if the file does not exist, consistent with other platforms
559     </p>
560
561     <p><!-- CL 493036 -->
562       TODO: <a href="https://go.dev/cl/493036">https://go.dev/cl/493036</a>: os, syscall: support ill-formed UTF-16 strings on Windows
563     </p>
564   </dd>
565 </dl><!-- os -->
566
567 <dl id="os/user"><dt><a href="/pkg/os/user/">os/user</a></dt>
568   <dd>
569     <p><!-- CL 459455 -->
570       TODO: <a href="https://go.dev/cl/459455">https://go.dev/cl/459455</a>: os/user: lookup Linux users and groups via systemd userdb
571     </p>
572   </dd>
573 </dl><!-- os/user -->
574
575 <dl id="reflect"><dt><a href="/pkg/reflect/">reflect</a></dt>
576   <dd>
577     <p><!-- CL 408826, CL 413474 -->
578       In Go 1.21, <a href="/pkg/reflect/#ValueOf"><code>ValueOf</code></a>
579       no longer forces its argument to be allocated on the heap, allowing
580       a <code>Value</code>'s content to be allocated on the stack. Most
581       operations on a <code>Value</code> also allow the underlying value
582       to be stack allocated.
583     </p>
584
585     <p><!-- https://go.dev/issue/55002 -->
586       TODO: <a href="https://go.dev/issue/55002">https://go.dev/issue/55002</a>: add Value.Clear
587     </p>
588
589     <p><!-- https://go.dev/issue/56906 -->
590       TODO: <a href="https://go.dev/issue/56906">https://go.dev/issue/56906</a>: deprecate SliceHeader and StringHeader
591     </p>
592
593     <p><!-- CL 452762 -->
594       TODO: <a href="https://go.dev/cl/452762">https://go.dev/cl/452762</a>: reflect: deprecate SliceHeader and StringHeader; modified api/next/56906.txt
595     </p>
596   </dd>
597 </dl><!-- reflect -->
598
599 <dl id="regexp"><dt><a href="/pkg/regexp/">regexp</a></dt>
600   <dd>
601     <p><!-- https://go.dev/issue/46159 -->
602       TODO: <a href="https://go.dev/issue/46159">https://go.dev/issue/46159</a>: support encoding.TextMarshaler
603     </p>
604
605     <p><!-- CL 479401 -->
606       TODO: <a href="https://go.dev/cl/479401">https://go.dev/cl/479401</a>: regexp: add Regexp.TextMarshaler/TextUnmarshaler; modified api/next/46159.txt
607     </p>
608   </dd>
609 </dl><!-- regexp -->
610
611 <dl id="runtime"><dt><a href="/pkg/runtime/">runtime</a></dt>
612   <dd>
613     <p><!-- https://go.dev/issue/38651 -->
614       TODO: <a href="https://go.dev/issue/38651">https://go.dev/issue/38651</a>: add &#39;created by goroutine number&#39; to stack traces
615     </p>
616
617     <p><!-- https://go.dev/issue/57441 -->
618       TODO: <a href="https://go.dev/issue/57441">https://go.dev/issue/57441</a>: use WER for GOTRACEBACK=wer on Windows
619     </p>
620
621     <p><!-- CL 447778 -->
622       TODO: <a href="https://go.dev/cl/447778">https://go.dev/cl/447778</a>: runtime: reimplement GODEBUG=cgocheck=2 as a GOEXPERIMENT
623     </p>
624
625     <p><!-- CL 472195 -->
626       TODO: <a href="https://go.dev/cl/472195">https://go.dev/cl/472195</a>: runtime: remove NOFRAME from asmcgocall, systemstack and mcall
627     </p>
628
629     <p><!-- CL 474915 -->
630       TODO: <a href="https://go.dev/cl/474915">https://go.dev/cl/474915</a>: runtime: support GOTRACEBACK=wer on Windows
631     </p>
632   </dd>
633 </dl><!-- runtime -->
634
635 <dl id="slices"><dt><a href="/pkg/slices/">slices</a></dt>
636   <dd>
637     <p><!-- https://go.dev/issue/54768 -->
638       TODO: <a href="https://go.dev/issue/54768">https://go.dev/issue/54768</a>: add DeleteFunc
639     </p>
640
641     <p><!-- https://go.dev/issue/57433 -->
642       TODO: <a href="https://go.dev/issue/57433">https://go.dev/issue/57433</a>: new standard library package based on x/exp/slices
643     </p>
644
645     <p><!-- CL 467417 -->
646       TODO: <a href="https://go.dev/cl/467417">https://go.dev/cl/467417</a>: slices: new package; modified api/next/57433.txt
647     </p>
648
649     <p><!-- CL 483175 -->
650       TODO: <a href="https://go.dev/cl/483175">https://go.dev/cl/483175</a>: slices: add DeleteFunc; modified api/next/54768.txt
651     </p>
652   </dd>
653 </dl><!-- slices -->
654
655 <dl id="spec"><dt><a href="/pkg/spec/">spec</a></dt>
656   <dd>
657     <p><!-- https://go.dev/issue/56351 -->
658       TODO: <a href="https://go.dev/issue/56351">https://go.dev/issue/56351</a>: add clear(x) builtin, to clear map, zero content of slice
659     </p>
660
661     <p><!-- https://go.dev/issue/57411 -->
662       TODO: <a href="https://go.dev/issue/57411">https://go.dev/issue/57411</a>: define initialization order more precisely
663     </p>
664
665     <p><!-- https://go.dev/issue/59338 -->
666       TODO: <a href="https://go.dev/issue/59338">https://go.dev/issue/59338</a>: infer type arguments from assignments of generic functions (reverse type inference)
667     </p>
668   </dd>
669 </dl><!-- spec -->
670
671 <dl id="slices"><dt><a href="/pkg/slices/">slices</a></dt>
672   <dd>
673     <p><!-- https://go.dev/issue/45955 -->
674       The new <a href="/pkg/slices/"><code>slices</code></a> package
675       provides many common operations on slices, using generic
676       functions that work with slices of any element type.
677     </p>
678   </dd>
679 </dl>
680
681 <dl id="sync"><dt><a href="/pkg/sync/">sync</a></dt>
682   <dd>
683     <p><!-- https://go.dev/issue/56102, CL 451356 -->
684       The new <a href="/pkg/sync/#OnceFunc"><code>OnceFunc</code></a>,
685       <a href="/pkg/sync/#OnceValue"><code>OnceValue</code></a>, and
686       <a href="/pkg/sync/#OnceValues"><code>OnceValues</code></a>
687       functions capture a common use of <a href="/pkg/sync/#Once">Once</a> to
688       lazily initialize a value on first use.
689     </p>
690   </dd>
691 </dl>
692
693 <dl id="syscall"><dt><a href="/pkg/syscall/">syscall</a></dt>
694   <dd>
695     <p><!-- https://go.dev/issue/46259 -->
696       TODO: <a href="https://go.dev/issue/46259">https://go.dev/issue/46259</a>: add Jail int32 to SysProcAttr on FreeBSD
697     </p>
698
699     <p><!-- CL 458335 -->
700       TODO: <a href="https://go.dev/cl/458335">https://go.dev/cl/458335</a>: syscall: add jail support to ForkExec on FreeBSD; modified api/next/46259.txt
701     </p>
702
703     <p><!-- CL 480135 -->
704       TODO: <a href="https://go.dev/cl/480135">https://go.dev/cl/480135</a>: syscall: implement Fchdir on Windows
705     </p>
706   </dd>
707 </dl><!-- syscall -->
708
709 <dl id="testing"><dt><a href="/pkg/testing/">testing</a></dt>
710   <dd>
711     <p><!-- https://go.dev/issue/37708 -->
712       TODO: <a href="https://go.dev/issue/37708">https://go.dev/issue/37708</a>: optionally include full (or relative) path name
713     </p>
714
715     <p><!-- https://go.dev/issue/52600, CL 475496 -->
716       The new <a href="/pkg/testing/#Testing"><code>Testing</code></a> function reports whether the program is a test created by <code>go</code> <code>test</code>.
717     </p>
718   </dd>
719 </dl><!-- testing -->
720
721 <dl id="testing/slogtest"><dt><a href="/pkg/testing/slogtest/">testing/slogtest</a></dt>
722   <dd>
723     <p><!-- CL 487895 -->
724       TODO: <a href="https://go.dev/cl/487895">https://go.dev/cl/487895</a>: testing/slogtest: tests for slog handlers; modified api/next/56345.txt
725     </p>
726   </dd>
727 </dl><!-- testing/slogtest -->
728
729 <dl id="x/exp/slices"><dt><a href="/pkg/x/exp/slices/">x/exp/slices</a></dt>
730   <dd>
731     <p><!-- https://go.dev/issue/57348 -->
732       TODO: <a href="https://go.dev/issue/57348">https://go.dev/issue/57348</a>: Allow different types for haystack/needle in BinarySearchFunc
733     </p>
734   </dd>
735 </dl><!-- x/exp/slices -->
736
737 <dl id="x/sys/windows"><dt><a href="/pkg/x/sys/windows/">x/sys/windows</a></dt>
738   <dd>
739     <p><!-- https://go.dev/issue/54232 -->
740       TODO: <a href="https://go.dev/issue/54232">https://go.dev/issue/54232</a>: Add WSALookupService
741     </p>
742   </dd>
743 </dl><!-- x/sys/windows -->
744
745 <dl id="x/tools/go/analysis"><dt><a href="/pkg/x/tools/go/analysis/">x/tools/go/analysis</a></dt>
746   <dd>
747     <p><!-- https://go.dev/issue/57906 -->
748       TODO: <a href="https://go.dev/issue/57906">https://go.dev/issue/57906</a>: add Analyzer.URL and Diagnostic.URL fields
749     </p>
750   </dd>
751 </dl><!-- x/tools/go/analysis -->
752
753 <dl id="x/tools/go/types/objectpath"><dt><a href="/pkg/x/tools/go/types/objectpath/">x/tools/go/types/objectpath</a></dt>
754   <dd>
755     <p><!-- https://go.dev/issue/58668 -->
756       TODO: <a href="https://go.dev/issue/58668">https://go.dev/issue/58668</a>: add Encoder type, to amortize Scope.Names
757     </p>
758   </dd>
759 </dl><!-- x/tools/go/types/objectpath -->