Skip to content

Commit

Permalink
Merge branch 'master' into feature/sync-atomic-and-or-mips
Browse files Browse the repository at this point in the history
Change-Id: If641a7c8ca49df75ed48d3269fa1d0c2e5628770
  • Loading branch information
mauri870 committed May 1, 2024
2 parents d739b16 + c5698e3 commit 95dca2a
Show file tree
Hide file tree
Showing 1,522 changed files with 67,399 additions and 21,992 deletions.
1 change: 1 addition & 0 deletions api/next/44940.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
pkg unicode/utf16, func RuneLen(int32) int #44940
1 change: 1 addition & 0 deletions api/next/46443.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
pkg net/http, type Cookie struct, Quoted bool #46443
9 changes: 9 additions & 0 deletions api/next/50102.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
pkg archive/tar, type FileInfoNames interface { Gname, IsDir, ModTime, Mode, Name, Size, Sys, Uname } #50102
pkg archive/tar, type FileInfoNames interface, Gname() (string, error) #50102
pkg archive/tar, type FileInfoNames interface, IsDir() bool #50102
pkg archive/tar, type FileInfoNames interface, ModTime() time.Time #50102
pkg archive/tar, type FileInfoNames interface, Mode() fs.FileMode #50102
pkg archive/tar, type FileInfoNames interface, Name() string #50102
pkg archive/tar, type FileInfoNames interface, Size() int64 #50102
pkg archive/tar, type FileInfoNames interface, Sys() interface{} #50102
pkg archive/tar, type FileInfoNames interface, Uname() (string, error) #50102
1 change: 1 addition & 0 deletions api/next/57151.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
pkg path/filepath, func Localize(string) (string, error) #57151
1 change: 1 addition & 0 deletions api/next/59473.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
pkg net/http/httptest, func NewRequestWithContext(context.Context, string, string, io.Reader) *http.Request #59473
4 changes: 4 additions & 0 deletions api/next/60427.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
pkg reflect, type Type interface, OverflowComplex(complex128) bool #60427
pkg reflect, type Type interface, OverflowFloat(float64) bool #60427
pkg reflect, type Type interface, OverflowInt(int64) bool #60427
pkg reflect, type Type interface, OverflowUint(uint64) bool #60427
1 change: 1 addition & 0 deletions api/next/61308.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
pkg reflect, func SliceAt(Type, unsafe.Pointer, int) Value #61308
1 change: 1 addition & 0 deletions api/next/61472.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
pkg net/http, method (*Request) CookiesNamed(string) []*Cookie #61472
3 changes: 3 additions & 0 deletions api/next/62483.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
pkg unique, func Make[$0 comparable]($0) Handle[$0] #62483
pkg unique, method (Handle[$0]) Value() $0 #62483
pkg unique, type Handle[$0 comparable] struct #62483
1 change: 1 addition & 0 deletions api/next/62484.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
pkg os, func CopyFS(string, fs.FS) error #62484
2 changes: 2 additions & 0 deletions api/next/63116.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
pkg net, type DNSError struct, UnwrapErr error #63116
pkg net, method (*DNSError) Unwrap() error #63116
1 change: 1 addition & 0 deletions api/next/65238.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
pkg slices, func Repeat[$0 interface{ ~[]$1 }, $1 interface{}]($0, int) $0 #65238
1 change: 1 addition & 0 deletions api/next/65772.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
pkg go/types, method (*Func) Signature() *Signature #65772
2 changes: 2 additions & 0 deletions api/next/66008.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
pkg net/http, func ParseCookie(string) ([]*Cookie, error) #66008
pkg net/http, func ParseSetCookie(string) (*Cookie, error) #66008
2 changes: 2 additions & 0 deletions api/next/66054.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
pkg debug/elf, const PT_OPENBSD_NOBTCFI = 1705237480 #66054
pkg debug/elf, const PT_OPENBSD_NOBTCFI ProgType #66054
1 change: 1 addition & 0 deletions api/next/66559.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
pkg go/types, method (*Alias) Rhs() Type #66559
6 changes: 6 additions & 0 deletions api/next/66836.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
pkg debug/elf, const STT_GNU_IFUNC = 10 #66836
pkg debug/elf, const STT_GNU_IFUNC SymType #66836
pkg debug/elf, const STT_RELC = 8 #66836
pkg debug/elf, const STT_RELC SymType #66836
pkg debug/elf, const STT_SRELC = 9 #66836
pkg debug/elf, const STT_SRELC SymType #66836
10 changes: 6 additions & 4 deletions doc/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ The `initial` and `next` subdirectories of this directory are for release notes.

## For developers

Release notes should be added to `next` by editing existing files or creating new files.
Release notes should be added to `next` by editing existing files or creating
new files. **Do not add RELNOTE=yes comments in CLs.** Instead, add a file to
the CL (or ask the author to do so).

At the end of the development cycle, the files will be merged by being
concatenated in sorted order by pathname. Files in the directory matching the
Expand All @@ -27,9 +29,9 @@ ideally referring to a person with the responsibility to complete the note.

Use the following forms in your markdown:

[`http.Request`](/pkg/net/http#Request) # symbol documentation
[#12345](/issue/12345) # GitHub issues
[CL 6789](/cl/6789) # Gerrit changelists
[http.Request] # symbol documentation; auto-linked as in Go doc strings
[#12345](/issue/12345) # GitHub issues
[CL 6789](/cl/6789) # Gerrit changelists

## For the release team

Expand Down
12 changes: 6 additions & 6 deletions doc/go1.17_spec.html
Original file line number Diff line number Diff line change
Expand Up @@ -656,7 +656,7 @@ <h2 id="Constants">Constants</h2>

<p>
Numeric constants represent exact values of arbitrary precision and do not overflow.
Consequently, there are no constants denoting the IEEE-754 negative zero, infinity,
Consequently, there are no constants denoting the IEEE 754 negative zero, infinity,
and not-a-number values.
</p>

Expand Down Expand Up @@ -882,8 +882,8 @@ <h3 id="Numeric_types">Numeric types</h3>
int32 the set of all signed 32-bit integers (-2147483648 to 2147483647)
int64 the set of all signed 64-bit integers (-9223372036854775808 to 9223372036854775807)

float32 the set of all IEEE-754 32-bit floating-point numbers
float64 the set of all IEEE-754 64-bit floating-point numbers
float32 the set of all IEEE 754 32-bit floating-point numbers
float64 the set of all IEEE 754 64-bit floating-point numbers

complex64 the set of all complex numbers with float32 real and imaginary parts
complex128 the set of all complex numbers with float64 real and imaginary parts
Expand Down Expand Up @@ -3814,7 +3814,7 @@ <h4 id="Floating_point_operators">Floating-point operators</h4>
<code>+x</code> is the same as <code>x</code>,
while <code>-x</code> is the negation of <code>x</code>.
The result of a floating-point or complex division by zero is not specified beyond the
IEEE-754 standard; whether a <a href="#Run_time_panics">run-time panic</a>
IEEE 754 standard; whether a <a href="#Run_time_panics">run-time panic</a>
occurs is implementation-specific.
</p>

Expand Down Expand Up @@ -3904,7 +3904,7 @@ <h3 id="Comparison_operators">Comparison operators</h3>

<li>
Floating-point values are comparable and ordered,
as defined by the IEEE-754 standard.
as defined by the IEEE 754 standard.
</li>

<li>
Expand Down Expand Up @@ -4252,7 +4252,7 @@ <h4>Conversions between numeric types</h4>
or a complex number to another complex type, the result value is rounded
to the precision specified by the destination type.
For instance, the value of a variable <code>x</code> of type <code>float32</code>
may be stored using additional precision beyond that of an IEEE-754 32-bit number,
may be stored using additional precision beyond that of an IEEE 754 32-bit number,
but float32(x) represents the result of rounding <code>x</code>'s value to
32-bit precision. Similarly, <code>x + 0.1</code> may use more than 32 bits
of precision, but <code>float32(x + 0.1)</code> does not.
Expand Down
16 changes: 8 additions & 8 deletions doc/go_mem.html
Original file line number Diff line number Diff line change
Expand Up @@ -98,12 +98,12 @@ <h2 id="model">Memory Model</h2>
A <i>memory operation</i> is modeled by four details:
</p>
<ul>
<li>its kind, indicating whether it is an ordinary data read, an ordinary data write,
or a <i>synchronizing operation</i> such as an atomic data access,
a mutex operation, or a channel operation,
<li>its location in the program,
<li>the memory location or variable being accessed, and
<li>the values read or written by the operation.
<li>its kind, indicating whether it is an ordinary data read, an ordinary data write,
or a <i>synchronizing operation</i> such as an atomic data access,
a mutex operation, or a channel operation,</li>
<li>its location in the program,</li>
<li>the memory location or variable being accessed, and</li>
<li>the values read or written by the operation.</li>
</ul>
<p>
Some memory operations are <i>read-like</i>, including read, atomic read, mutex lock, and channel receive.
Expand Down Expand Up @@ -162,8 +162,8 @@ <h2 id="model">Memory Model</h2>
</p>

<ol>
<li><i>w</i> happens before <i>r</i>.
<li><i>w</i> does not happen before any other write <i>w'</i> (to <i>x</i>) that happens before <i>r</i>.
<li><i>w</i> happens before <i>r</i>.</li>
<li><i>w</i> does not happen before any other write <i>w'</i> (to <i>x</i>) that happens before <i>r</i>.</li>
</ol>

<p>
Expand Down
57 changes: 32 additions & 25 deletions doc/go_spec.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<!--{
"Title": "The Go Programming Language Specification",
"Subtitle": "Language version go1.22 (Feb 6, 2024)",
"Subtitle": "Language version go1.22 (April 25, 2024)",
"Path": "/ref/spec"
}-->

Expand Down Expand Up @@ -674,7 +674,7 @@ <h2 id="Constants">Constants</h2>

<p>
Numeric constants represent exact values of arbitrary precision and do not overflow.
Consequently, there are no constants denoting the IEEE-754 negative zero, infinity,
Consequently, there are no constants denoting the IEEE 754 negative zero, infinity,
and not-a-number values.
</p>

Expand Down Expand Up @@ -861,8 +861,8 @@ <h3 id="Numeric_types">Numeric types</h3>
int32 the set of all signed 32-bit integers (-2147483648 to 2147483647)
int64 the set of all signed 64-bit integers (-9223372036854775808 to 9223372036854775807)

float32 the set of all IEEE-754 32-bit floating-point numbers
float64 the set of all IEEE-754 64-bit floating-point numbers
float32 the set of all IEEE 754 32-bit floating-point numbers
float64 the set of all IEEE 754 64-bit floating-point numbers

complex64 the set of all complex numbers with float32 real and imaginary parts
complex128 the set of all complex numbers with float64 real and imaginary parts
Expand Down Expand Up @@ -1682,6 +1682,7 @@ <h3 id="Map_types">Map types</h3>
stored in them, with the exception of <code>nil</code> maps.
A <code>nil</code> map is equivalent to an empty map except that no elements
may be added.
</p>

<h3 id="Channel_types">Channel types</h3>

Expand Down Expand Up @@ -5021,7 +5022,7 @@ <h4 id="Floating_point_operators">Floating-point operators</h4>
<code>+x</code> is the same as <code>x</code>,
while <code>-x</code> is the negation of <code>x</code>.
The result of a floating-point or complex division by zero is not specified beyond the
IEEE-754 standard; whether a <a href="#Run_time_panics">run-time panic</a>
IEEE 754 standard; whether a <a href="#Run_time_panics">run-time panic</a>
occurs is implementation-specific.
</p>

Expand Down Expand Up @@ -5111,7 +5112,7 @@ <h3 id="Comparison_operators">Comparison operators</h3>

<li>
Floating-point types are comparable and ordered.
Two floating-point values are compared as defined by the IEEE-754 standard.
Two floating-point values are compared as defined by the IEEE 754 standard.
</li>

<li>
Expand Down Expand Up @@ -5541,7 +5542,7 @@ <h4>Conversions between numeric types</h4>
or a <a href="#Numeric_types">complex number</a> to another complex type, the result value is rounded
to the precision specified by the destination type.
For instance, the value of a variable <code>x</code> of type <code>float32</code>
may be stored using additional precision beyond that of an IEEE-754 32-bit number,
may be stored using additional precision beyond that of an IEEE 754 32-bit number,
but float32(x) represents the result of rounding <code>x</code>'s value to
32-bit precision. Similarly, <code>x + 0.1</code> may use more than 32 bits
of precision, but <code>float32(x + 0.1)</code> does not.
Expand Down Expand Up @@ -6643,8 +6644,8 @@ <h4 id="For_range">For statements with <code>range</code> clause</h4>

<p>
The range expression <code>x</code> is evaluated once before beginning the loop,
with one exception: if at most one iteration variable is present and
<code>len(x)</code> is <a href="#Length_and_capacity">constant</a>,
with one exception: if at most one iteration variable is present and <code>x</code> or
<a href="#Length_and_capacity"><code>len(x)</code></a> is <a href="#Constants">constant</a>,
the range expression is not evaluated.
</p>

Expand All @@ -6655,13 +6656,13 @@ <h4 id="For_range">For statements with <code>range</code> clause</h4>
</p>

<pre class="grammar">
Range expression 1st value 2nd value
Range expression 1st value 2nd value

array or slice a [n]E, *[n]E, or []E index i int a[i] E
string s string type index i int see below rune
map m map[K]V key k K m[k] V
channel c chan E, &lt;-chan E element e E
integer n integer type value i see below
array or slice a [n]E, *[n]E, or []E index i int a[i] E
string s string type index i int see below rune
map m map[K]V key k K m[k] V
channel c chan E, &lt;-chan E element e E
integer value n integer type, or untyped int value i see below
</pre>

<ol>
Expand Down Expand Up @@ -6702,8 +6703,17 @@ <h4 id="For_range">For statements with <code>range</code> clause</h4>
</li>

<li>
For an integer value <code>n</code>, the iteration values 0 through <code>n-1</code>
For an integer value <code>n</code>, where <code>n</code> is of <a href="#Numeric_types">integer type</a>
or an untyped <a href="#Constants">integer constant</a>, the iteration values 0 through <code>n-1</code>
are produced in increasing order.
If <code>n</code> is of integer type, the iteration values have that same type.
Otherwise, the type of <code>n</code> is determined as if it were assigned to the
iteration variable.
Specifically:
if the iteration variable is preexisting, the type of the iteration values is the type of the iteration
variable, which must be of integer type.
Otherwise, if the iteration variable is declared by the "range" clause or is absent,
the type of the iteration values is the <a href="#Constants">default type</a> for <code>n</code>.
If <code>n</code> &lt= 0, the loop does not run any iterations.
</li>
</ol>
Expand All @@ -6715,21 +6725,14 @@ <h4 id="For_range">For statements with <code>range</code> clause</h4>
In this case their <a href="#Declarations_and_scope">scope</a> is the block of the "for" statement
and each iteration has its own new variables [<a href="#Go_1.22">Go 1.22</a>]
(see also <a href="#For_clause">"for" statements with a ForClause</a>).
If the range expression is a (possibly untyped) integer expression <code>n</code>,
the variable has the same type as if it was
<a href="#Variable_declarations">declared</a> with initialization
expression <code>n</code>.
Otherwise, the variables have the types of their respective iteration values.
The variables have the types of their respective iteration values.
</p>

<p>
If the iteration variables are not explicitly declared by the "range" clause,
they must be preexisting.
In this case, the iteration values are assigned to the respective variables
as in an <a href="#Assignment_statements">assignment statement</a>.
If the range expression is a (possibly untyped) integer expression <code>n</code>,
<code>n</code> too must be <a href="#Assignability">assignable</a> to the iteration variable;
if there is no iteration variable, <code>n</code> must be assignable to <code>int</code>.
</p>

<pre>
Expand Down Expand Up @@ -6777,6 +6780,10 @@ <h4 id="For_range">For statements with <code>range</code> clause</h4>
var u uint8
for u = range 256 {
}

// invalid: 1e3 is a floating-point constant
for range 1e3 {
}
</pre>


Expand Down Expand Up @@ -7300,7 +7307,7 @@ <h3 id="Appending_and_copying_slices">Appending to and copying slices</h3>
<code>len(src)</code> and <code>len(dst)</code>.
As a special case, if the destination's core type is <code>[]byte</code>,
<code>copy</code> also accepts a source argument with core type
</a> <a href="#Core_types"><code>bytestring</code></a>.
<a href="#Core_types"><code>bytestring</code></a>.
This form copies the bytes from the byte slice or string into the byte slice.
</p>

Expand Down
29 changes: 25 additions & 4 deletions doc/godebug.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,8 +128,29 @@ and the [go command documentation](/cmd/go#hdr-Build_and_test_caching).

### Go 1.23

Go 1.23 enabled Linux pidfd support for process lookup. This feature can be
disabled by using the [`osfinderr` setting](/pkg/os#FindProcess).
Go 1.23 changed the channels created by package time to be unbuffered
(synchronous), which makes correct use of the [`Timer.Stop`](/pkg/time/#Timer.Stop)
and [`Timer.Reset`](/pkg/time/#Timer.Reset) method results much easier.
The [`asynctimerchan` setting](/pkg/time/#NewTimer) disables this change.
There are no runtime metrics for this change,
This setting may be removed in a future release, Go 1.27 at the earliest.

Go 1.23 changed the mode bits reported by [`os.Lstat`](/pkg/os#Lstat) and [`os.Stat`](/pkg/os#Stat)
for reparse points, which can be controlled with the `winsymlink` setting.
As of Go 1.23 (`winsymlink=1`), mount points no longer have [`os.ModeSymlink`](/pkg/os#ModeSymlink)
set, and reparse points that are not symlinks, Unix sockets, or dedup files now
always have [`os.ModeIrregular`](/pkg/os#ModeIrregular) set. As a result of these changes,
[`filepath.EvalSymlinks`](/pkg/path/filepath#EvalSymlinks) no longer evaluates
mount points, which was a source of many inconsistencies and bugs.
At previous versions (`winsymlink=0`), mount points are treated as symlinks,
and other reparse points with non-default [`os.ModeType`](/pkg/os#ModeType) bits
(such as [`os.ModeDir`](/pkg/os#ModeDir)) do not have the `ModeIrregular` bit set.

Go 1.23 changed [`os.Readlink`](/pkg/os#Readlink) and [`filepath.EvalSymlinks`](/pkg/path/filepath#EvalSymlinks)
to avoid trying to normalize volumes to drive letters, which was not always even possible.
This behavior is controlled by the `winreadlinkvolume` setting.
For Go 1.23, it defaults to `winreadlinkvolume=1`.
Previous versions default to `winreadlinkvolume=0`.

### Go 1.22

Expand All @@ -153,7 +174,7 @@ for the explicit representation of [type aliases](/ref/spec#Type_declarations).
Whether the type checker produces `Alias` types or not is controlled by the
[`gotypesalias` setting](/pkg/go/types#Alias).
For Go 1.22 it defaults to `gotypesalias=0`.
For Go 1.23, `gotypealias=1` will become the default.
For Go 1.23, `gotypesalias=1` will become the default.
This setting will be removed in a future release, Go 1.24 at the earliest.

Go 1.22 changed the default minimum TLS version supported by both servers
Expand All @@ -162,7 +183,7 @@ and clients to TLS 1.2. The default can be reverted to TLS 1.0 using the

Go 1.22 changed the default TLS cipher suites used by clients and servers when
not explicitly configured, removing the cipher suites which used RSA based key
exchange. The default can be revert using the [`tlsrsakex` setting](/pkg/crypto/tls/#Config).
exchange. The default can be reverted using the [`tlsrsakex` setting](/pkg/crypto/tls/#Config).

Go 1.22 disabled
[`ConnectionState.ExportKeyingMaterial`](/pkg/crypto/tls/#ConnectionState.ExportKeyingMaterial)
Expand Down
4 changes: 4 additions & 0 deletions doc/next/5-toolchain.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
## Compiler {#compiler}

The build time overhead to building with [Profile Guided Optimization](/doc/pgo) has been reduced significantly.
Previously, large builds could see 100%+ build time increase from enabling PGO.
In Go 1.23, overhead should be in the single digit percentages.

## Assembler {#assembler}

## Linker {#linker}
Expand Down
2 changes: 1 addition & 1 deletion doc/next/6-stdlib/0-heading.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
## Standard library {#library}
## Core library {#library}

Loading

0 comments on commit 95dca2a

Please sign in to comment.