@@ -31,7 +31,7 @@ <h2 id="introduction">DRAFT RELEASE NOTES — Introduction to Go 1.21</h2>
31
31
We expect almost all Go programs to continue to compile and run as before.
32
32
</ p >
33
33
34
- < p >
34
+ < p > <!-- https://go.dev/issue/57631 -->
35
35
Go 1.21 introduces a small change to the numbering of releases.
36
36
In the past, we used Go 1.< i > N</ i > to refer to both the overall Go language version and release family
37
37
as well as the first release in that family.
@@ -368,7 +368,11 @@ <h3 id="slogtest">New testing/slogtest package</h3>
368
368
369
369
< h3 id ="slices "> New slices package</ h3 >
370
370
371
- < p > <!-- https://go.dev/issue/45955, https://go.dev/issue/54768, https://go.dev/issue/57348, https://go.dev/issue/57433, CL 467417, CL 483175 -->
371
+ < p >
372
+ <!-- https://go.dev/issue/45955, https://go.dev/issue/54768 -->
373
+ <!-- https://go.dev/issue/57348, https://go.dev/issue/57433 -->
374
+ <!-- https://go.dev/issue/58565, https://go.dev/issue/60091 -->
375
+ <!-- CL 467417, CL 468855, CL 483175, CL 496078, CL 498175 -->
372
376
The new < a href ="/pkg/slices "> slices</ a > package provides many common
373
377
operations on slices, using generic functions that work with slices
374
378
of any element type.
@@ -382,6 +386,14 @@ <h3 id="maps">New maps package</h3>
382
386
maps of any key or element type.
383
387
</ p >
384
388
389
+ < dl id ="cmp "> < dt > < a href ="/pkg/cmp/ "> cmp</ a > </ dt >
390
+ < dd >
391
+ < p > <!-- CL 496356 -->
392
+ TODO: < a href ="https://go.dev/cl/496356 "> https://go.dev/cl/496356</ a > : cmp: new package; modified api/next/59488.txt
393
+ </ p >
394
+ </ dd >
395
+ </ dl > <!-- cmp -->
396
+
385
397
< h3 id ="minor_library_changes "> Minor changes to the library</ h3 >
386
398
387
399
< p >
@@ -485,6 +497,8 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
485
497
</ dd >
486
498
</ dl > <!-- crypto/rsa -->
487
499
500
+ <!-- CL 483815 reverted -->
501
+
488
502
< dl id ="crypto/sha256 "> < dt > < a href ="/pkg/crypto/sha256/ "> crypto/sha256</ a > </ dt >
489
503
< dd >
490
504
< p > <!-- https://go.dev/issue/50543, CL 408795 -->
@@ -493,6 +507,53 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
493
507
</ dd >
494
508
</ dl > <!-- crypto/sha256 -->
495
509
510
+ <!-- CL 481478 reverted -->
511
+ <!-- CL 483816 reverted -->
512
+
513
+ < dl id ="crypto/tls "> < dt > < a href ="/pkg/crypto/tls/ "> crypto/tls</ a > </ dt >
514
+ < dd >
515
+ < p > <!-- https://go.dev/issue/46308 -->
516
+ TODO: < a href ="https://go.dev/issue/46308 "> https://go.dev/issue/46308</ a > : add VersionName function to return a string version of the TLS Version
517
+ </ p >
518
+
519
+ < p > <!-- https://go.dev/issue/60107 -->
520
+ TODO: < a href ="https://go.dev/issue/60107 "> https://go.dev/issue/60107</ a > : QUIC 0-RTT APIs
521
+ </ p >
522
+
523
+ < p > <!-- CL 493655 -->
524
+ TODO: < a href ="https://go.dev/cl/493655 "> https://go.dev/cl/493655</ a > : crypto/tls: support QUIC as a transport; modified api/next/44886.txt
525
+ </ p >
526
+
527
+ < p > <!-- CL 496818 -->
528
+ TODO: < a href ="https://go.dev/cl/496818 "> https://go.dev/cl/496818</ a > : crypto/tls: add SessionState and use it on the server side; modified api/next/60105.txt
529
+ </ p >
530
+
531
+ < p > <!-- CL 496820 -->
532
+ TODO: < a href ="https://go.dev/cl/496820 "> https://go.dev/cl/496820</ a > : crypto/tls: add ClientSessionState.ResumptionState and NewResumptionState; modified api/next/60105.txt
533
+ </ p >
534
+
535
+ < p > <!-- CL 496821 -->
536
+ TODO: < a href ="https://go.dev/cl/496821 "> https://go.dev/cl/496821</ a > : crypto/tls: add WrapSession and UnwrapSession; modified api/next/60105.txt
537
+ </ p >
538
+
539
+ < p > <!-- CL 496822 -->
540
+ TODO: < a href ="https://go.dev/cl/496822 "> https://go.dev/cl/496822</ a > : crypto/tls: add SessionState.Extra; modified api/next/60105.txt
541
+ </ p >
542
+
543
+ < p > <!-- CL 496995 -->
544
+ TODO: < a href ="https://go.dev/cl/496995 "> https://go.dev/cl/496995</ a > : crypto/tls: add QUIC 0-RTT APIs; modified api/next/44886.txt, api/next/60107.txt
545
+ </ p >
546
+
547
+ < p > <!-- CL 497376 -->
548
+ TODO: < a href ="https://go.dev/cl/497376 "> https://go.dev/cl/497376</ a > : crypto/tls: implement Extended Master Secret; modified api/except.txt
549
+ </ p >
550
+
551
+ < p > <!-- CL 497377 -->
552
+ TODO: < a href ="https://go.dev/cl/497377 "> https://go.dev/cl/497377</ a > : crypto/tls: add VersionName; modified api/next/46308.txt
553
+ </ p >
554
+ </ dd >
555
+ </ dl > <!-- crypto/tls -->
556
+
496
557
< dl id ="crypto/x509 "> < dt > < a href ="/pkg/crypto/x509/ "> crypto/x509</ a > </ dt >
497
558
< dd >
498
559
< p > <!-- https://go.dev/issue/53573, CL 468875 -->
@@ -521,6 +582,11 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
521
582
The package now defines the constant
522
583
< a href ="/pkg/debug/elf/#COMPRESS_ZSTD "> < code > COMPRESS_ZSTD</ code > </ a > .
523
584
</ p >
585
+
586
+ < p > <!-- https://go.dev/issue/60348, CL 496918 -->
587
+ The package now defines the constant
588
+ < a href ="/pkg/debug/elf/#R_PPC64_REL24_P9NOTOC "> < code > R_PPC64_REL24_P9NOTOC</ code > </ a > .
589
+ </ p >
524
590
</ dd >
525
591
</ dl > <!-- debug/elf -->
526
592
@@ -665,6 +731,18 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
665
731
</ dd >
666
732
</ dl > <!-- hash/maphash -->
667
733
734
+ < dl id ="html/template "> < dt > < a href ="/pkg/html/template/ "> html/template</ a > </ dt >
735
+ < dd >
736
+ < p > <!-- https://go.dev/issue/59584 -->
737
+ TODO: < a href ="https://go.dev/issue/59584 "> https://go.dev/issue/59584</ a > : expose ErrJSTemplate
738
+ </ p >
739
+
740
+ < p > <!-- CL 496395 -->
741
+ TODO: < a href ="https://go.dev/cl/496395 "> https://go.dev/cl/496395</ a > : html/template: expose ErrJSTemplate; modified api/next/59584.txt
742
+ </ p >
743
+ </ dd >
744
+ </ dl > <!-- html/template -->
745
+
668
746
< dl id ="io/fs "> < dt > < a href ="/pkg/io/fs/ "> io/fs</ a > </ dt >
669
747
< dd >
670
748
< p > <!-- https://go.dev/issue/54451, CL 489555 -->
@@ -690,13 +768,13 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
690
768
</ dd >
691
769
</ dl > <!-- io/fs -->
692
770
693
- <!-- https://go.dev/issue/56491 rolled back -->
694
- <!-- CL 459435 reverted -->
695
- <!-- CL 467515 reverted -->
771
+ <!-- https://go.dev/issue/56491 rolled back by https://go.dev/issue/60519 -->
772
+ <!-- CL 459435 reverted by CL 467255 -->
773
+ <!-- CL 467515 reverted by CL 499416 -->
696
774
697
775
< dl id ="math/big "> < dt > < a href ="/pkg/math/big/ "> math/big</ a > </ dt >
698
776
< dd >
699
- < p > <!-- https://go.dev/issue/56984, CL 453115 -->
777
+ < p > <!-- https://go.dev/issue/56984, CL 453115, CL 500116 -->
700
778
The new < a href ="/pkg/math/big/#Int.Float64 "> < code > Int.Float64</ code > </ a >
701
779
method returns the nearest floating-point value to a
702
780
multi-precision integer, along with an indication of any
@@ -779,6 +857,10 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
779
857
always returning an error.
780
858
</ p >
781
859
860
+ < p > <!-- CL 495079 -->
861
+ TODO: < a href ="https://go.dev/cl/495079 "> https://go.dev/cl/495079</ a > : os: if descriptor is non-blocking, retain that in Fd method
862
+ </ p >
863
+
782
864
< p > <!-- CL 477215 -->
783
865
On Windows calling
784
866
< a href ="/pkg/os/#Truncate "> < code > Truncate</ code > </ a > on a
@@ -908,7 +990,7 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
908
990
< code > GODEBUG=cgocheck=1</ code > is still available (and is still the default).
909
991
</ p >
910
992
911
- < p > <!-- https://go.dev/issue/46787 -->
993
+ < p > <!-- https://go.dev/issue/46787, CL 367296 -->
912
994
A new type < code > Pinner</ code > has been added to the runtime
913
995
package. < code > Pinner</ code > s may be used to "pin" Go memory
914
996
such that it may be used more freely by non-Go code. For instance,
@@ -919,9 +1001,25 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
919
1001
920
1002
See < a href ="/pkg/runtime#Pinner "> the docs</ a > for more details.
921
1003
</ p >
1004
+
1005
+ < p > <!-- CL 472195 -->
1006
+ TODO: < a href ="https://go.dev/cl/472195 "> https://go.dev/cl/472195</ a > : runtime: remove NOFRAME from asmcgocall, systemstack and mcall
1007
+ </ p >
922
1008
</ dd >
923
1009
</ dl > <!-- runtime -->
924
1010
1011
+ < dl id ="runtime/metrics "> < dt > < a href ="/pkg/runtime/metrics/ "> runtime/metrics</ a > </ dt >
1012
+ < dd >
1013
+ < p > <!-- https://go.dev/issue/56857, CL 497315 -->
1014
+ A few previously-internal GC metrics, such as live heap size, are
1015
+ now available.
1016
+
1017
+ < code > GOGC</ code > and < code > GOMEMLIMIT</ code > are also now
1018
+ available as metrics.
1019
+ </ p >
1020
+ </ dd >
1021
+ </ dl > <!-- runtime/metrics -->
1022
+
925
1023
< dl id ="runtime/trace "> < dt > < a href ="/pkg/runtime/trace/ "> runtime/trace</ a > </ dt >
926
1024
< dd >
927
1025
< p > <!-- https://go.dev/issue/16638 -->
@@ -936,18 +1034,6 @@ <h3 id="minor_library_changes">Minor changes to the library</h3>
936
1034
</ dd >
937
1035
</ dl > <!-- runtime/trace -->
938
1036
939
- < dl id ="runtime/metrics "> < dt > < a href ="/pkg/runtime/metrics/ "> runtime/metrics</ a > </ dt >
940
- < dd >
941
- < p > <!-- https://go.dev/issue/56857 -->
942
- A few previously-internal GC metrics, such as live heap size, are
943
- now available.
944
-
945
- < code > GOGC</ code > and < code > GOMEMLIMIT</ code > are also now
946
- available as metrics.
947
- </ p >
948
- </ dd >
949
- </ dl > <!-- runtime/metrics -->
950
-
951
1037
< dl id ="sync "> < dt > < a href ="/pkg/sync/ "> sync</ a > </ dt >
952
1038
< dd >
953
1039
< p > <!-- https://go.dev/issue/56102, CL 451356 -->
@@ -1042,15 +1128,15 @@ <h2 id="ports">Ports</h2>
1042
1128
1043
1129
< h3 id ="darwin "> Darwin</ h3 >
1044
1130
1045
- < p > <!-- go.dev/issue/57125 -->
1131
+ < p > <!-- https:// go.dev/issue/57125 -->
1046
1132
As < a href ="go1.20#darwin "> announced</ a > in the Go 1.20 release notes,
1047
1133
Go 1.21 requires macOS 10.15 Catalina or later;
1048
1134
support for previous versions has been discontinued.
1049
1135
</ p >
1050
1136
1051
1137
< h3 id ="windows "> Windows</ h3 >
1052
1138
1053
- < p > <!-- go.dev/issue/57003, go.dev/issue/57004 -->
1139
+ < p > <!-- https:// go.dev/issue/57003, https:// go.dev/issue/57004 -->
1054
1140
As < a href ="go1.20#windows "> announced</ a > in the Go 1.20 release notes,
1055
1141
Go 1.21 requires at least Windows 10 or Windows Server 2016;
1056
1142
support for previous versions has been discontinued.
@@ -1100,3 +1186,11 @@ <h3 id="wasip1">WebAssembly System Interface</h3>
1100
1186
<!-- https://go.dev/issue/54232 -->
1101
1187
<!-- https://go.dev/issue/57906 -->
1102
1188
<!-- https://go.dev/issue/58668 -->
1189
+ <!-- https://go.dev/issue/59676 -->
1190
+
1191
+ <!-- changes to cmd/api that don't need release notes. -->
1192
+ <!-- CL 469115, CL 469135, CL 499981 -->
1193
+
1194
+ <!-- proposals that don't need release enotes. -->
1195
+ <!-- https://go.dev/issue/10275 -->
1196
+ <!-- https://go.dev/issue/59719 -->
0 commit comments