[pull] master from golang:master#3
Merged
pull[bot] merged 12 commits intosysfce2:masterfrom Dec 12, 2023
Merged
Conversation
The pointer stored in mspan.largeType is an invalid pointer when the span is an arena. We need to make sure that pointer isn't seen by the garbage collector, as it might barf on it. Make sure we zero the pointer using a uintptr write so the old value isn't picked up by the write barrier. The mspan.largeType field itself is in a NotInHeap struct, so a heap scan won't find it. The only way we find it is when writing it, or when reading it and putting it in a GC-reachable location. I think we might need to audit the runtime to make sure these pointers aren't being passed in places where the GC might (non-conservatively) scan a stack frame it lives in. (It might be ok, many such places are either systemstack or nosplit.) Change-Id: Ie059d054e0da4d48a4c4b3be88b8e1e46ffa7d10 Reviewed-on: https://go-review.googlesource.com/c/go/+/548535 Reviewed-by: Michael Knyszek <mknyszek@google.com> Reviewed-by: Keith Randall <khr@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
profileBuilder is using Frame->Function as key for checking if we already emitted a function. However for generics functions it has dots there [...], so sometimes for different functions with different generics types, the profileBuilder emits wrong functions. Fixes #64528 Change-Id: I8b39245e0b18f4288ce758c912c6748f87cba39a Reviewed-on: https://go-review.googlesource.com/c/go/+/546815 Reviewed-by: Cherry Mui <cherryyz@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Michael Pratt <mpratt@google.com>
For #61422. Change-Id: I621627140d2d5ebede9b932a7e55fbe92ded5249 Reviewed-on: https://go-review.googlesource.com/c/go/+/548935 Auto-Submit: Michael Knyszek <mknyszek@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Michael Pratt <mpratt@google.com>
For #61422. Change-Id: If87f30229e5e5351e81d42c777259335af3533e6 Reviewed-on: https://go-review.googlesource.com/c/go/+/548878 Auto-Submit: Michael Pratt <mpratt@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Michael Knyszek <mknyszek@google.com>
For #61422. Updates #60056. Change-Id: Ie7c7e12acc173f1ff1644555016e51a52509bd6d Reviewed-on: https://go-review.googlesource.com/c/go/+/548815 Auto-Submit: Bryan Mills <bcmills@google.com> Reviewed-by: Michael Matloob <matloob@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
For #61422. Change-Id: I976b8cc14893b91e5140c7b53d0773bca57cb19d Reviewed-on: https://go-review.googlesource.com/c/go/+/548936 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Michael Pratt <mpratt@google.com> Reviewed-by: Michael Knyszek <mknyszek@google.com>
Add TODOs for APIs mentioned in api/go1.22.txt but missing from the
release notes.
The issue list was generated with:
$ awk '{print substr($NF, 2, length($NF)-1)}' < ../api/go1.22.txt | uniq | xargs -I{} sh -c 'echo -n "{}: " && grep -c {} ../doc/go1.22.html'
For #61422.
Change-Id: I85d41c28530e6b5e3e388a41206b251278c91dd5
Reviewed-on: https://go-review.googlesource.com/c/go/+/548937
Auto-Submit: Michael Pratt <mpratt@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
For #61422. Change-Id: Id4eed9affde20857d6b60c0b6d7d1443ea5e460b Reviewed-on: https://go-review.googlesource.com/c/go/+/548938 Reviewed-by: Cherry Mui <cherryyz@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Michael Pratt <mpratt@google.com> Reviewed-by: Keith Randall <khr@golang.org>
For #57302. For #61422. Change-Id: Iee4e6600bf473eb982d0cb7330f7b2c1b48b9e13 Reviewed-on: https://go-review.googlesource.com/c/go/+/548575 Reviewed-by: Cherry Mui <cherryyz@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Than McIntosh <thanm@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
…Query If we encounter an unclassified error in modload.Query, it takes precedence even if the package is found in some other module. (That is intentional, so that if a package exists in both a parent and a nested module the outcome is deterministic, and does not shift if a temporary error causes one of the modules to be unavailable.) A pseudo-version is formed from a base version and a commit hash. Each version tag is specific to the module in a particular directory of the repo (often the root directory), whereas the commit hash is the same for all subdirectories. When we go to check a particular subdirectory for the requested package, we may find that that version is not valid for that combination of <subdirectory, commit hash>, but we should keep looking to see whether it is valid for a module in some other subdirectory. Fixes #47650. Change-Id: Id48f590ce906a3d4cf4e82fc66137bf67613277d Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-longtest,gotip-windows-amd64-longtest Reviewed-on: https://go-review.googlesource.com/c/go/+/548475 Reviewed-by: Michael Matloob <matloob@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Bryan Mills <bcmills@google.com>
This probably fixes the failure mode seen in https://build.golang.org/log/e73acfd930cbe82302505cac0041d9883e2360c5. If not, allowing the test to deadlock and dump goroutines should produce better debugging information than the existing "didn't return in an expected time" failure message. For #58901. Change-Id: Ie0bb1887a4329d2f6b0e7348a4820af71385494e Reviewed-on: https://go-review.googlesource.com/c/go/+/548881 Auto-Submit: Bryan Mills <bcmills@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Damien Neil <dneil@google.com>
Use a GODEBUG to choose which certificate policy field to use. If x509usepolicies=1 is set, use the Policies field, otherwise use the PolicyIdentifiers field. Fixes #64248 Change-Id: I3f0b56102e0bac4ebe800497717c61c58ef3f092 Reviewed-on: https://go-review.googlesource.com/c/go/+/546916 Reviewed-by: Damien Neil <dneil@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
pull bot
pushed a commit
that referenced
this pull request
Oct 23, 2025
This change adds a generated 8-bit bitmask for use in functions shouldEscape and ishex.
Function shouldEscape is now inlineable. Function escape is now much faster;
function unescape is a bit faster. Here are some benchmark results (no change
to allocations):
goos: darwin
goarch: amd64
pkg: net/url
cpu: Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
│ old │ new │
│ sec/op │ sec/op vs base │
QueryEscape/#00-8 58.38n ± 1% 35.98n ± 1% -38.38% (p=0.000 n=20)
QueryEscape/#1-8 303.50n ± 0% 94.77n ± 0% -68.77% (p=0.000 n=20)
QueryEscape/#2-8 202.90n ± 0% 78.66n ± 1% -61.23% (p=0.000 n=20)
QueryEscape/#3-8 444.5n ± 0% 145.9n ± 0% -67.17% (p=0.000 n=20)
QueryEscape/#4-8 2678.0n ± 0% 913.7n ± 0% -65.88% (p=0.000 n=20)
PathEscape/#00-8 81.34n ± 0% 44.64n ± 1% -45.12% (p=0.000 n=20)
PathEscape/#1-8 307.65n ± 0% 96.71n ± 1% -68.56% (p=0.000 n=20)
PathEscape/#2-8 200.80n ± 1% 78.25n ± 0% -61.03% (p=0.000 n=20)
PathEscape/#3-8 450.1n ± 1% 145.5n ± 0% -67.67% (p=0.000 n=20)
PathEscape/#4-8 2663.5n ± 0% 876.5n ± 0% -67.09% (p=0.000 n=20)
QueryUnescape/#00-8 53.32n ± 1% 51.67n ± 1% -3.09% (p=0.000 n=20)
QueryUnescape/#1-8 161.0n ± 1% 136.2n ± 1% -15.40% (p=0.000 n=20)
QueryUnescape/#2-8 126.1n ± 1% 118.3n ± 1% -6.23% (p=0.000 n=20)
QueryUnescape/#3-8 294.6n ± 0% 273.1n ± 0% -7.30% (p=0.000 n=20)
QueryUnescape/#4-8 1.511µ ± 0% 1.411µ ± 0% -6.62% (p=0.000 n=20)
PathUnescape/#00-8 63.84n ± 1% 53.59n ± 1% -16.05% (p=0.000 n=20)
PathUnescape/#1-8 163.6n ± 3% 137.9n ± 1% -15.71% (p=0.000 n=20)
PathUnescape/#2-8 126.4n ± 1% 119.1n ± 1% -5.78% (p=0.000 n=20)
PathUnescape/#3-8 294.2n ± 0% 273.3n ± 0% -7.12% (p=0.000 n=20)
PathUnescape/#4-8 1.554µ ± 0% 1.417µ ± 0% -8.78% (p=0.000 n=20)
geomean 277.8n 162.7n -41.44%
This change draws heavy inspiration from CL 174998, which showed promise but stalled years ago.
Updates golang#17860
Change-Id: Idcbb1696608998b9e2fc91e1f2a488d8f1f6028c
GitHub-Last-Rev: ff360c2
GitHub-Pull-Request: golang#75914
Reviewed-on: https://go-review.googlesource.com/c/go/+/712200
Reviewed-by: David Chase <drchase@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Jorropo <jorropo.pgm@gmail.com>
Reviewed-by: Takuto Nagami <logica0419@gmail.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
pull bot
pushed a commit
that referenced
this pull request
Oct 27, 2025
This change is a follow-up to CL 712200. It further simplifies and speeds up
functions escape and unescape.
Here are some benchmark results (no change to allocations):
goos: darwin
goarch: amd64
pkg: net/url
cpu: Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
│ go/src/old │ go/src/new │
│ sec/op │ sec/op vs base │
QueryEscape/#00-8 34.58n ± 1% 31.97n ± 1% -7.55% (p=0.000 n=20)
QueryEscape/#1-8 92.92n ± 0% 94.63n ± 0% +1.84% (p=0.000 n=20)
QueryEscape/#2-8 75.44n ± 0% 73.32n ± 0% -2.80% (p=0.000 n=20)
QueryEscape/#3-8 143.4n ± 0% 136.6n ± 0% -4.71% (p=0.000 n=20)
QueryEscape/#4-8 918.8n ± 1% 838.3n ± 0% -8.76% (p=0.000 n=20)
PathEscape/#00-8 43.93n ± 0% 42.86n ± 0% -2.44% (p=0.000 n=20)
PathEscape/#1-8 94.99n ± 0% 95.86n ± 0% +0.91% (p=0.000 n=20)
PathEscape/#2-8 75.40n ± 1% 71.50n ± 1% -5.18% (p=0.000 n=20)
PathEscape/#3-8 143.4n ± 0% 136.2n ± 0% -4.99% (p=0.000 n=20)
PathEscape/#4-8 871.8n ± 0% 822.7n ± 0% -5.63% (p=0.000 n=20)
QueryUnescape/#00-8 52.64n ± 1% 51.19n ± 0% -2.75% (p=0.000 n=20)
QueryUnescape/#1-8 137.4n ± 1% 137.9n ± 1% ~ (p=0.297 n=20)
QueryUnescape/#2-8 114.0n ± 0% 122.3n ± 1% +7.24% (p=0.000 n=20)
QueryUnescape/#3-8 271.8n ± 0% 260.7n ± 1% -4.08% (p=0.000 n=20)
QueryUnescape/#4-8 1.390µ ± 1% 1.355µ ± 0% -2.52% (p=0.000 n=20)
PathUnescape/#00-8 52.45n ± 1% 53.03n ± 1% +1.10% (p=0.008 n=20)
PathUnescape/#1-8 138.5n ± 1% 141.3n ± 0% +2.06% (p=0.000 n=20)
PathUnescape/#2-8 114.0n ± 0% 121.5n ± 0% +6.62% (p=0.000 n=20)
PathUnescape/#3-8 273.1n ± 1% 260.1n ± 0% -4.76% (p=0.000 n=20)
PathUnescape/#4-8 1.431µ ± 1% 1.359µ ± 0% -5.07% (p=0.000 n=20)
geomean 160.4n 156.9n -2.14%
Updates golang#17860
Change-Id: If64ac3e9c62c41f672db06cfd7eab7357e934e6d
GitHub-Last-Rev: 1da047a
GitHub-Pull-Request: golang#76048
Reviewed-on: https://go-review.googlesource.com/c/go/+/714900
Reviewed-by: Michael Knyszek <mknyszek@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: David Chase <drchase@google.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot]
Can you help keep this open source service alive? 💖 Please sponsor : )