<feed xmlns='http://www.w3.org/2005/Atom'>
<title>go, branch go1.18.5</title>
<subtitle>Fork of Go programming language with my patches.</subtitle>
<id>http://git.kilabit.info/go/atom?h=go1.18.5</id>
<link rel='self' href='http://git.kilabit.info/go/atom?h=go1.18.5'/>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/'/>
<updated>2022-08-01T15:12:43Z</updated>
<entry>
<title>[release-branch.go1.18] go1.18.5</title>
<updated>2022-08-01T15:12:43Z</updated>
<author>
<name>Gopher Robot</name>
<email>gobot@golang.org</email>
</author>
<published>2022-08-01T14:51:58Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=be59153dd8e67d83428e18a44dd29df3059c21fe'/>
<id>urn:sha1:be59153dd8e67d83428e18a44dd29df3059c21fe</id>
<content type='text'>
Change-Id: I4ca2e873fa21fb4676bc1d0e382bd8fd407a2986
Reviewed-on: https://go-review.googlesource.com/c/go/+/420555
Reviewed-by: Cherry Mui &lt;cherryyz@google.com&gt;
Reviewed-by: Dmitri Shuralyov &lt;dmitshur@golang.org&gt;
Run-TryBot: Gopher Robot &lt;gobot@golang.org&gt;
Auto-Submit: Gopher Robot &lt;gobot@golang.org&gt;
Reviewed-by: Heschi Kreinick &lt;heschi@google.com&gt;
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.18] math/big: check buffer lengths in GobDecode</title>
<updated>2022-07-29T14:06:25Z</updated>
<author>
<name>Roland Shoemaker</name>
<email>roland@golang.org</email>
</author>
<published>2022-07-15T17:43:44Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=9240558e4f342fc6e98fec22de17c04b45089349'/>
<id>urn:sha1:9240558e4f342fc6e98fec22de17c04b45089349</id>
<content type='text'>
In Float.GobDecode and Rat.GobDecode, check buffer sizes before
indexing slices.

Updates #53871
Fixes #54095

Change-Id: I1b652c32c2bc7a0e8aa7620f7be9b2740c568b0a
Reviewed-on: https://go-review.googlesource.com/c/go/+/417774
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
Reviewed-by: Tatiana Bradley &lt;tatiana@golang.org&gt;
Run-TryBot: Roland Shoemaker &lt;roland@golang.org&gt;
(cherry picked from commit 055113ef364337607e3e72ed7d48df67fde6fc66)
Reviewed-on: https://go-review.googlesource.com/c/go/+/419815
Reviewed-by: Julie Qiu &lt;julieqiu@google.com&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.18] cmd/go: avoid re-enqueuing workspace dependencies with errors</title>
<updated>2022-07-27T17:20:18Z</updated>
<author>
<name>Bryan C. Mills</name>
<email>bcmills@google.com</email>
</author>
<published>2022-07-14T14:51:56Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=be7c68147870c3574cbee5c110e89a2ba5f2f267'/>
<id>urn:sha1:be7c68147870c3574cbee5c110e89a2ba5f2f267</id>
<content type='text'>
Fixes #53875.
Updates #53874.

Change-Id: I41ab15cb9b86b807a9d9ad21fe21fb7aa5fbb46f
Reviewed-on: https://go-review.googlesource.com/c/go/+/417594
Run-TryBot: Bryan Mills &lt;bcmills@google.com&gt;
Auto-Submit: Bryan Mills &lt;bcmills@google.com&gt;
Reviewed-by: Hyang-Ah Hana Kim &lt;hyangah@gmail.com&gt;
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
(cherry picked from commit a906d3dd099424ff17d7e46c4ecf793012d50197)
Reviewed-on: https://go-review.googlesource.com/c/go/+/417656
</content>
</entry>
<entry>
<title>[release-branch.go1.18] cmd/compile: revert "fix missing dict pass for type assertions"</title>
<updated>2022-07-27T16:55:10Z</updated>
<author>
<name>Matthew Dempsky</name>
<email>mdempsky@google.com</email>
</author>
<published>2022-07-14T17:10:54Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=6ff8801d3e93ed5dc6dfa3263183cc57b50a039b'/>
<id>urn:sha1:6ff8801d3e93ed5dc6dfa3263183cc57b50a039b</id>
<content type='text'>
This reverts CL 411934 (commit 460a93b54af4a0305f6007e44e41e6160a6469d8).

Fixes #53852.
Updates #53357.

Change-Id: I93d7015d8962d22ffd73128b038e4e7e7ca41c2f
Reviewed-on: https://go-review.googlesource.com/c/go/+/417615
Run-TryBot: Cherry Mui &lt;cherryyz@google.com&gt;
Reviewed-by: Cuong Manh Le &lt;cuong.manhle.vn@gmail.com&gt;
Reviewed-by: David Chase &lt;drchase@google.com&gt;
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.18] cmd/compile: revert "backport fix for #51840"</title>
<updated>2022-07-27T16:54:19Z</updated>
<author>
<name>Matthew Dempsky</name>
<email>mdempsky@google.com</email>
</author>
<published>2022-07-14T18:25:39Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=76ba1a5e5571232e553f0495f2ce6b468c3ebb9d'/>
<id>urn:sha1:76ba1a5e5571232e553f0495f2ce6b468c3ebb9d</id>
<content type='text'>
This reverts CL 405436 (commit e1b14f53c13c7ab809ea1a33d2ec7f787efdafa8).

Fixes #53883.
Updates #51840.

Change-Id: Ide5a9568a7ae5b449ef154c29b69699a7e4b3f6b
Reviewed-on: https://go-review.googlesource.com/c/go/+/417616
Reviewed-by: David Chase &lt;drchase@google.com&gt;
Run-TryBot: Cherry Mui &lt;cherryyz@google.com&gt;
Reviewed-by: Jenny Rakoczy &lt;jenny@golang.org&gt;
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.18] cmd/compile: do not use special literal assignment if LHS is address-taken</title>
<updated>2022-07-26T14:15:46Z</updated>
<author>
<name>Cherry Mui</name>
<email>cherryyz@google.com</email>
</author>
<published>2022-05-18T15:58:53Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=ed50277fd92dc932a30f57c16ede5ed7554a037a'/>
<id>urn:sha1:ed50277fd92dc932a30f57c16ede5ed7554a037a</id>
<content type='text'>
A composite literal assignment

x = T{field: v}

may be compiled to

x = T{}
x.field = v

We already do not use this form is RHS uses LHS. If LHS is
address-taken, RHS may uses LHS implicitly, e.g.

v = &amp;x.field
x = T{field: *v}

The lowering above would change the value of RHS (*v).

Updates #52953.
Fixes #52961.

Change-Id: I3f798e00598aaa550b8c17182c7472fef440d483
Reviewed-on: https://go-review.googlesource.com/c/go/+/407014
Reviewed-by: Cuong Manh Le &lt;cuong.manhle.vn@gmail.com&gt;
Run-TryBot: Cherry Mui &lt;cherryyz@google.com&gt;
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
Reviewed-by: Michael Knyszek &lt;mknyszek@google.com&gt;
(cherry picked from commit 1c77137d4fdfbb3e7e8d9efaab3bab5ee736a19d)
Reviewed-on: https://go-review.googlesource.com/c/go/+/419450
Reviewed-by: Matthew Dempsky &lt;mdempsky@google.com&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.18] testing: include ERROR_SHARING_VIOLATION in Windows cleanup retries</title>
<updated>2022-07-25T23:29:29Z</updated>
<author>
<name>Bryan C. Mills</name>
<email>bcmills@google.com</email>
</author>
<published>2022-03-02T21:36:27Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=d06c911fe110c5ddfc47d5f6467b8bc88a573b52'/>
<id>urn:sha1:d06c911fe110c5ddfc47d5f6467b8bc88a573b52</id>
<content type='text'>
Fixes #52986
Updates #51442
Updates #50051

Change-Id: I1bfbc08c907077467fd50febbec6299a9b73af41
Reviewed-on: https://go-review.googlesource.com/c/go/+/388916
Trust: Bryan Mills &lt;bcmills@google.com&gt;
Run-TryBot: Bryan Mills &lt;bcmills@google.com&gt;
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
Reviewed-by: Ian Lance Taylor &lt;iant@golang.org&gt;
(cherry picked from commit eeb9f095dc13a6beed41db0e734b6ae1e97f15d1)
Reviewed-on: https://go-review.googlesource.com/c/go/+/407877
Reviewed-by: Nooras Saba‎ &lt;saba@golang.org&gt;
Auto-Submit: Bryan Mills &lt;bcmills@google.com&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.18] cmd/go: omit build metadata that may contain system paths when -trimpath is set</title>
<updated>2022-07-25T23:27:36Z</updated>
<author>
<name>Bryan C. Mills</name>
<email>bcmills@google.com</email>
</author>
<published>2022-05-27T19:54:44Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=d252fdd630a51db206194b3c41c3d036fdd6f48a'/>
<id>urn:sha1:d252fdd630a51db206194b3c41c3d036fdd6f48a</id>
<content type='text'>
CGO flag variables often include system paths for header files and
compiled libraries. The point of -trimpath is to avoid dependending on
system paths, so stamping these variables is counterproductive.

Moreover, the point of stamping build information is to improve
reproducibility. Since we don't also stamp the versions of C
compilers, headers, and libraries used in a cgo build, only the most
trivial cgo programs can be faithfully reproduced from the stamped
information.

Likewise, the -ldflags flag may include system-specific paths,
particularly if external linking is in use. For now, we omit -ldflags
entirely; however, in the future we may instead want to parse and
redact the individual flags.

Updates #52372.
Fixes #53119.

Change-Id: I73318a01cce4371d66955b3261fc7ee58d4b33dd
Reviewed-on: https://go-review.googlesource.com/c/go/+/409174
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
Auto-Submit: Bryan Mills &lt;bcmills@google.com&gt;
Reviewed-by: Ian Lance Taylor &lt;iant@google.com&gt;
Reviewed-by: Ian Lance Taylor &lt;iant@golang.org&gt;
Run-TryBot: Bryan Mills &lt;bcmills@google.com&gt;
(cherry picked from commit a6e5be0d30770e8bd1ba1e4bac2089218df121d9)
Reviewed-on: https://go-review.googlesource.com/c/go/+/414794
Reviewed-by: Nooras Saba‎ &lt;saba@golang.org&gt;
</content>
</entry>
<entry>
<title>[release-branch.go1.18] runtime: clear timerModifiedEarliest when last timer is deleted</title>
<updated>2022-07-25T23:11:17Z</updated>
<author>
<name>Michael Pratt</name>
<email>mpratt@google.com</email>
</author>
<published>2022-07-13T15:48:04Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=4782f4275c8d006e0346026585e50633a5a31007'/>
<id>urn:sha1:4782f4275c8d006e0346026585e50633a5a31007</id>
<content type='text'>
timerModifiedEarliest contains the lowest possible expiration for a
modified earlier timer, which may be earlier than timer0When because we
haven't yet updated the heap. Note "may", as the modified earlier timer
that set timerModifiedEarliest may have since been modified later or
deleted.

We can clear timerModifiedEarliest when the last timer is deleted
because by definition there must not be any modified earlier timers.

Why does this matter? checkTimersNoP claims that there is work to do if
timerModifiedEarliest has passed, causing findRunnable to loop back
around to checkTimers. But the code to clean up timerModifiedEarliest in
checkTimers (i.e., the call to adjusttimers) is conditional behind a
check that len(pp.timers) &gt; 0.

Without clearing timerModifiedEarliest, a spinning M that would
otherwise go to sleep will busy loop in findRunnable until some other
work is available.

Note that changing the condition on the call to adjusttimers would also
be a valid fix. I took this approach because it feels a bit cleaner to
clean up timerModifiedEarliest as soon as it is known to be irrelevant.

For #51654.
Fixes #53847.

Change-Id: I3f3787c67781cac7ce87939c5706cef8db927dd5
Reviewed-on: https://go-review.googlesource.com/c/go/+/417434
Auto-Submit: Michael Pratt &lt;mpratt@google.com&gt;
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
Run-TryBot: Michael Pratt &lt;mpratt@google.com&gt;
Reviewed-by: Michael Knyszek &lt;mknyszek@google.com&gt;
Reviewed-by: Ian Lance Taylor &lt;iant@google.com&gt;
(cherry picked from commit c006b7ac2765252f397dec40fef610a3c17d956d)
Reviewed-on: https://go-review.googlesource.com/c/go/+/417475
</content>
</entry>
<entry>
<title>[release-branch.go1.18] runtime: use saved LR when unwinding through morestack</title>
<updated>2022-07-22T17:25:27Z</updated>
<author>
<name>Cherry Mui</name>
<email>cherryyz@google.com</email>
</author>
<published>2022-04-15T16:23:06Z</published>
<link rel='alternate' type='text/html' href='http://git.kilabit.info/go/commit/?id=12e00f6c6b5f37eb8b268a8eaa64d80b7f5b6dcc'/>
<id>urn:sha1:12e00f6c6b5f37eb8b268a8eaa64d80b7f5b6dcc</id>
<content type='text'>
On LR machine, consider F calling G calling H, which grows stack.
The stack looks like
...
G's frame:
	... locals ...
	saved LR = return PC in F  &lt;- SP points here at morestack
H's frame (to be created)

At morestack, we save
	gp.sched.pc = H's morestack call
	gp.sched.sp = H's entry SP (the arrow above)
	gp.sched.lr = return PC in G

Currently, when unwinding through morestack (if _TraceJumpStack
is set), we switch PC and SP but not LR. We then have
	frame.pc = H's morestack call
	frame.sp = H's entry SP (the arrow above)
As LR is not set, we load it from stack at *sp, so
	frame.lr = return PC in F
As the SP hasn't decremented at the morestack call,
	frame.fp = frame.sp = H's entry SP

Unwinding a frame, we have
	frame.pc = old frame.lr = return PC in F
	frame.sp = old frame.fp = H's entry SP a.k.a. G's SP
The PC and SP don't match. The unwinding will go off if F and G
have different frame sizes.

Fix this by preserving the LR when switching stack.

Also add code to detect infinite loop in unwinding.

TODO: add some test. I can reproduce the infinite loop (or throw
with added check) but the frequency is low.

Fixes #53112.
Updates #52116.

Change-Id: I6e1294f1c6e55f664c962767a1cf6c466a0c0eff
Reviewed-on: https://go-review.googlesource.com/c/go/+/400575
TryBot-Result: Gopher Robot &lt;gobot@golang.org&gt;
Run-TryBot: Cherry Mui &lt;cherryyz@google.com&gt;
Reviewed-by: Eric Fang &lt;eric.fang@arm.com&gt;
Reviewed-by: Benny Siegert &lt;bsiegert@gmail.com&gt;
(cherry picked from commit 74f00094220f26c80fbaab6eca28c3a664897d24)
Reviewed-on: https://go-review.googlesource.com/c/go/+/408821
Reviewed-by: Austin Clements &lt;austin@google.com&gt;
</content>
</entry>
</feed>
