<feed xmlns='http://www.w3.org/2005/Atom'>
<title>go, branch go1.23.2</title>
<subtitle>Fork of Go programming language with my patches.</subtitle>
<id>http://git.kilabit.info/go/atom?h=go1.23.2</id>
<link rel='self' href='http://git.kilabit.info/go/atom?h=go1.23.2'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/'/>
<updated>2024-10-01T17:24:29Z</updated>
<entry>
<title>[release-branch.go1.23] go1.23.2</title>
<updated>2024-10-01T17:24:29Z</updated>
<author>
<name>Gopher Robot</name>
<email>gobot@golang.org</email>
</author>
<published>2024-10-01T16:56:29Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=ed07b321aef7632f956ce991dd10fdd7e1abd827'/>
<id>urn:sha1:ed07b321aef7632f956ce991dd10fdd7e1abd827</id>
<content type='text'>
Change-Id: I904d2e951796dd4142d6e9de4a55af07852bca51
Reviewed-on: https://go-review.googlesource.com/c/go/+/617019
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
Reviewed-by: Michael Knyszek &lt;mknyszek@google.com&gt;
Auto-Submit: Gopher Robot &lt;gobot@golang.org&gt;
Reviewed-by: David Chase &lt;drchase@google.com&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.23] runtime: if stop/reset races with running timer, return correct result</title>
<updated>2024-09-27T18:23:47Z</updated>
<author>
<name>Ian Lance Taylor</name>
<email>iant@golang.org</email>
</author>
<published>2024-09-07T00:19:34Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=3b2e846e11d0c31a556b198f6c700745de5c9780'/>
<id>urn:sha1:3b2e846e11d0c31a556b198f6c700745de5c9780</id>
<content type='text'>
The timer code is careful to ensure that if stop/reset is called
while a timer is being run, we cancel the run. However, the code
failed to ensure that in that case stop/reset returned true,
meaning that the timer had been stopped. In the racing case
stop/reset could see that t.when had been set to zero,
and return false, even though the timer had not and never would fire.

Fix this by tracking whether a timer run is in progress,
and using that to reliably detect that the run was cancelled,
meaning that stop/reset should return true.

For #69312
Fixes #69333

Change-Id: I78e870063eb96650638f12c056e32c931417c84a
Reviewed-on: https://go-review.googlesource.com/c/go/+/611496
Reviewed-by: David Chase &lt;drchase@google.com&gt;
Reviewed-by: Cuong Manh Le &lt;cuong.manhle.vn@gmail.com&gt;
Reviewed-by: Michael Knyszek &lt;mknyszek@google.com&gt;
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
Auto-Submit: Ian Lance Taylor &lt;iant@golang.org&gt;
(cherry picked from commit 2ebaff4890596ed6064e2dcbbe5e68bc93bed882)
Reviewed-on: https://go-review.googlesource.com/c/go/+/616096
Reviewed-by: Ian Lance Taylor &lt;iant@google.com&gt;
Commit-Queue: Ian Lance Taylor &lt;iant@google.com&gt;
Auto-Submit: Ian Lance Taylor &lt;iant@google.com&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.23] cmd/compile: fix wrong esacpe analysis for rangefunc</title>
<updated>2024-09-25T16:22:40Z</updated>
<author>
<name>Cuong Manh Le</name>
<email>cuong.manhle.vn@gmail.com</email>
</author>
<published>2024-09-18T15:39:05Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=fbddfae62f19b5f04555aa593970ac4c6f5a38e5'/>
<id>urn:sha1:fbddfae62f19b5f04555aa593970ac4c6f5a38e5</id>
<content type='text'>
CL 584596 "-range&lt;N&gt;" suffix to the name of closure generated for a
rangefunc loop body. However, this breaks the condition that escape
analysis uses for checking whether a closure contains within function,
which is "F.funcN" for outer function "F" and closure "funcN".

Fixing this by adding new "-rangeN" to the condition.

Updates #69434
Fixes #69511

Change-Id: I411de8f63b69a6514a9e9504d49d62e00ce4115d
Reviewed-on: https://go-review.googlesource.com/c/go/+/614096
Reviewed-by: David Chase &lt;drchase@google.com&gt;
Reviewed-by: Cherry Mui &lt;cherryyz@google.com&gt;
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
Auto-Submit: Cuong Manh Le &lt;cuong.manhle.vn@gmail.com&gt;
Reviewed-on: https://go-review.googlesource.com/c/go/+/614195
</content>
</entry>
<entry>
<title>[release-branch.go1.23] syscall: on exec failure, close pidfd</title>
<updated>2024-09-18T19:41:05Z</updated>
<author>
<name>Ian Lance Taylor</name>
<email>iant@golang.org</email>
</author>
<published>2024-09-06T19:19:01Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=c8c6f9abfbbd2f949285a527036a3d0dbd991e74'/>
<id>urn:sha1:c8c6f9abfbbd2f949285a527036a3d0dbd991e74</id>
<content type='text'>
For #69284
Fixes #69402

Change-Id: I6350209302778ba5e44fa03d0b9e680d2b4ec192
Reviewed-on: https://go-review.googlesource.com/c/go/+/611495
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
Reviewed-by: roger peppe &lt;rogpeppe@gmail.com&gt;
Reviewed-by: Tim King &lt;taking@google.com&gt;
Auto-Submit: Ian Lance Taylor &lt;iant@golang.org&gt;
Reviewed-by: Dmitri Shuralyov &lt;dmitshur@google.com&gt;
(cherry picked from commit 8926ca9c5ec3ea0b51e413e87f737aeb1422ea48)
Reviewed-on: https://go-review.googlesource.com/c/go/+/613616
Reviewed-by: Ian Lance Taylor &lt;iant@google.com&gt;
Auto-Submit: Ian Lance Taylor &lt;iant@google.com&gt;
Reviewed-by: Tobias Klauser &lt;tobias.klauser@gmail.com&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.23] unique: don't retain uncloned input as key</title>
<updated>2024-09-11T18:11:20Z</updated>
<author>
<name>Michael Anthony Knyszek</name>
<email>mknyszek@google.com</email>
</author>
<published>2024-09-04T16:46:33Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=a74951c5af5498db5d4be0c14dcaa45fb452e23a'/>
<id>urn:sha1:a74951c5af5498db5d4be0c14dcaa45fb452e23a</id>
<content type='text'>
Currently the unique package tries to clone strings that get stored in
its internal map to avoid retaining large strings.

However, this falls over entirely due to the fact that the original
string is *still* stored in the map as a key. Whoops. Fix this by
storing the cloned value in the map instead.

This change also adds a test which fails without this change.

For #69370.
Fixes #69383.

Change-Id: I1a6bb68ed79b869ea12ab6be061a5ae4b4377ddb
Reviewed-on: https://go-review.googlesource.com/c/go/+/610738
Reviewed-by: Michael Pratt &lt;mpratt@google.com&gt;
Auto-Submit: Michael Knyszek &lt;mknyszek@google.com&gt;
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
(cherry picked from commit 21ac23a96f204dfb558a8d3071380c1d105a93ba)
Reviewed-on: https://go-review.googlesource.com/c/go/+/612295
Auto-Submit: Tim King &lt;taking@google.com&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.23] os: dup pidfd if caller sets PidFD manually</title>
<updated>2024-09-06T16:06:09Z</updated>
<author>
<name>Wei Fu</name>
<email>fuweid89@gmail.com</email>
</author>
<published>2024-08-22T08:22:53Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=e6598e7baafa5650f82b9575c053a52c2601bf8f'/>
<id>urn:sha1:e6598e7baafa5650f82b9575c053a52c2601bf8f</id>
<content type='text'>
For #68984.
Fixes #69119.

Change-Id: I16d25777cb38a337cd4204a8147eaf866c3df9e1
Reviewed-on: https://go-review.googlesource.com/c/go/+/607695
Reviewed-by: Kirill Kolyshkin &lt;kolyshkin@gmail.com&gt;
Reviewed-by: Michael Pratt &lt;mpratt@google.com&gt;
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
Commit-Queue: Ian Lance Taylor &lt;iant@golang.org&gt;
Reviewed-by: David Chase &lt;drchase@google.com&gt;
Auto-Submit: Ian Lance Taylor &lt;iant@golang.org&gt;
(cherry picked from commit 239666cd7343d46c40a5b929c8bec8b532dbe83f)
Reviewed-on: https://go-review.googlesource.com/c/go/+/611415
Auto-Submit: Dmitri Shuralyov &lt;dmitshur@google.com&gt;
Reviewed-by: Dmitri Shuralyov &lt;dmitshur@google.com&gt;
TryBot-Bypass: Dmitri Shuralyov &lt;dmitshur@golang.org&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.23] internal/weak: shade pointer in weak-to-strong conversion</title>
<updated>2024-09-06T14:34:16Z</updated>
<author>
<name>Michael Anthony Knyszek</name>
<email>mknyszek@google.com</email>
</author>
<published>2024-09-04T03:08:26Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=82575f76b8473effd6aff0a8690582820380d4d4'/>
<id>urn:sha1:82575f76b8473effd6aff0a8690582820380d4d4</id>
<content type='text'>
There's a bug in the weak-to-strong conversion in that creating the
*only* strong pointer to some weakly-held object during the mark phase
may result in that object not being properly marked.

The exact mechanism for this is that the new strong pointer will always
point to a white object (because it was only weakly referenced up until
this point) and it can then be stored in a blackened stack, hiding it
from the garbage collector.

This "hide a white pointer in the stack" problem is pretty much exactly
what the Yuasa part of the hybrid write barrier is trying to catch, so
we need to do the same thing the write barrier would do: shade the
pointer.

Added a test and confirmed that it fails with high probability if the
pointer shading is missing.

For #69210.
Fixes #69240.

Change-Id: Iaae64ae95ea7e975c2f2c3d4d1960e74e1bd1c3f
Reviewed-on: https://go-review.googlesource.com/c/go/+/610396
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
Reviewed-by: Cherry Mui &lt;cherryyz@google.com&gt;
Reviewed-by: Michael Pratt &lt;mpratt@google.com&gt;
Auto-Submit: Michael Knyszek &lt;mknyszek@google.com&gt;
(cherry picked from commit 79fd633632cdbaf9ca38f7559e5abb5c07fbbd9d)
Reviewed-on: https://go-review.googlesource.com/c/go/+/610696
Auto-Submit: Dmitri Shuralyov &lt;dmitshur@google.com&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.23] runtime: size maps.Clone destination bucket array safely</title>
<updated>2024-09-06T14:32:57Z</updated>
<author>
<name>Keith Randall</name>
<email>khr@golang.org</email>
</author>
<published>2024-08-29T22:08:33Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=a886959aa2fb1115096a937d3d8a2e921388752f'/>
<id>urn:sha1:a886959aa2fb1115096a937d3d8a2e921388752f</id>
<content type='text'>
In rare situations, like during same-sized grows, the source map for
maps.Clone may be overloaded (has more than 6.5 entries per
bucket). This causes the runtime to allocate a larger bucket array for
the destination map than for the source map. The maps.Clone code
walks off the end of the source array if it is smaller than the
destination array.

This is a pretty simple fix, ensuring that the destination bucket
array is never longer than the source bucket array. Maybe a better fix
is to make the Clone code handle shorter source arrays correctly, but
this fix is deliberately simple to reduce the risk of backporting this
fix.

Fixes #69156

Change-Id: I824c93d1db690999f25a3c43b2816fc28ace7509
Reviewed-on: https://go-review.googlesource.com/c/go/+/610377
Reviewed-by: Dmitri Shuralyov &lt;dmitshur@google.com&gt;
Reviewed-by: Cuong Manh Le &lt;cuong.manhle.vn@gmail.com&gt;
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
Auto-Submit: Dmitri Shuralyov &lt;dmitshur@google.com&gt;
Reviewed-by: Keith Randall &lt;khr@google.com&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.23] cmd/cgo: correct padding required by alignment</title>
<updated>2024-09-05T21:57:44Z</updated>
<author>
<name>Ian Lance Taylor</name>
<email>iant@golang.org</email>
</author>
<published>2024-08-27T17:19:17Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=80ff7cd35ad35e6518b539f4eb2517928c2f8945'/>
<id>urn:sha1:80ff7cd35ad35e6518b539f4eb2517928c2f8945</id>
<content type='text'>
If the aligned offset isn't sufficient for the field offset,
we were padding based on the aligned offset. We need to pad
based on the original offset instead.

Also set the Go alignment correctly for int128. We were defaulting
to the maximum alignment, but since we translate int128 into an
array of uint8 the correct Go alignment is 1.

For #69086
Fixes #69219

Change-Id: I23ce583335c81beac2ac51f7f9336ac97ccebf09
Reviewed-on: https://go-review.googlesource.com/c/go/+/608815
Reviewed-by: Damien Neil &lt;dneil@google.com&gt;
LUCI-TryBot-Result: Go LUCI &lt;golang-scoped@luci-project-accounts.iam.gserviceaccount.com&gt;
Reviewed-by: Cherry Mui &lt;cherryyz@google.com&gt;
Auto-Submit: Ian Lance Taylor &lt;iant@golang.org&gt;
(cherry picked from commit c2098929056481d0dc09f5f42b8959f4db8878f2)
Reviewed-on: https://go-review.googlesource.com/c/go/+/611296
Reviewed-by: Ian Lance Taylor &lt;iant@google.com&gt;
Auto-Submit: Ian Lance Taylor &lt;iant@google.com&gt;
Commit-Queue: Ian Lance Taylor &lt;iant@google.com&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.23] go1.23.1</title>
<updated>2024-09-05T15:20:23Z</updated>
<author>
<name>Gopher Robot</name>
<email>gobot@golang.org</email>
</author>
<published>2024-09-05T15:06:10Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=69234ded30614a471c35cef5d87b0e0d3c136cd9'/>
<id>urn:sha1:69234ded30614a471c35cef5d87b0e0d3c136cd9</id>
<content type='text'>
Change-Id: I1f2dab5560d3214c8934074a53f7750d8d431936
Reviewed-on: https://go-review.googlesource.com/c/go/+/611196
Reviewed-by: Michael Pratt &lt;mpratt@google.com&gt;
Reviewed-by: Dmitri Shuralyov &lt;dmitshur@google.com&gt;
Commit-Queue: Gopher Robot &lt;gobot@golang.org&gt;
TryBot-Bypass: Dmitri Shuralyov &lt;dmitshur@google.com&gt;
Auto-Submit: Gopher Robot &lt;gobot@golang.org&gt;
</content>
</entry>
</feed>
