aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-07-28[dev.unified] all: merge master (462b78f) into dev.unifiedMatthew Dempsky
Merge List: + 2022-07-27 462b78fe70 misc/cgo/test: use fewer threads in TestSetgidStress in long mode + 2022-07-27 055113ef36 math/big: check buffer lengths in GobDecode + 2022-07-27 4248146154 net: document UDPConn.ReadFromUDPAddrPort's AddrPort result more + 2022-07-26 faf4e97200 net: fix WriteMsgUDPAddrPort addr handling + 2022-07-26 caa225dd29 doc/go1.19: note that updated race syso files require GNU ld 2.26 + 2022-07-26 ceefd3a37b bytes: document that Reader.Reset affects the result of Size + 2022-07-26 3e97294663 runtime/cgo: use frame address to set g0 stack bound + 2022-07-25 24dc27a3c0 cmd/compile: fix blank label code + 2022-07-25 9fcc8b2c1e runtime: fix runtime.Breakpoint() on windows/arm64 + 2022-07-25 795a88d0c3 cmd/go: add space after comma in 'go help test' + 2022-07-25 9eb3992ddd doc/go1.19: minor fixes + 2022-07-25 dcea1ee6e3 time: clarify documentation for allowed formats and add tests to prove them + 2022-07-25 37c8112b82 internal/fuzz: fix typo in function comments + 2022-07-25 850d547d2d doc/go1.19: expand crypto release notes + 2022-07-24 64f2829c9c runtime: fix typo in function comments + 2022-07-24 2ff563a00e cmd/compile/internal/noder: correct spelling errors for instantiation + 2022-07-22 c5da4fb7ac cmd/compile: make jump table symbol local + 2022-07-22 774fa58d1d A+C: delete AUTHORS and CONTRIBUTORS + 2022-07-21 2d655fb15a unsafe: document when Sizeof/Offsetof/Alignof are not constant + 2022-07-21 076c3d7f07 net/http: remove accidental heading in Head documentation + 2022-07-21 c4a6d3048b cmd/dist: enable race detector test on S390X + 2022-07-20 244c8b0500 cmd/cgo: allow cgo to pass strings or []bytes bigger than 1<<30 + 2022-07-20 df38614bd7 test: use go tool from tree, not path + 2022-07-20 bb1749ba3b cmd/compile: improve GOAMD64=v1 violation test + 2022-07-19 176b63e711 crypto/internal/nistec,debug/gosym: fix typos Change-Id: I96e5d60039381691dffd841e58927f0afff8c544
2022-07-28[dev.unified] go/internal/gcimporter: flatten importsMatthew Dempsky
The current documentation for go/types.(*Packages).Imports requires that the import graph be flattened when read from export data. I think this is a documentation bug (incorrectly codifying the existing behavior, rather than documenting it as a known bug), but until that's decided, we can at least flatten imports ourselves. Updates #54096. Change-Id: Idc054a2efc908b3e6651e6567d0ea0e89bb0c54d Reviewed-on: https://go-review.googlesource.com/c/go/+/419596 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: David Chase <drchase@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
2022-07-28[dev.unified] cmd/compile: move "has init" to private metadataMatthew Dempsky
Currently, there's a "has init" bool in the public metadata section, which is only needed by cmd/compile; but because it's in the public metadata section, it's known to the go/types importers too. This CL moves it instead to the new compiler-only private metadata section added in the last CL for the inline bodies index. The existing bool in the public metadata section is left in place, and just always set to false, to avoid breaking the x/tools importer. The next time we bump the export version number, we can remove the bool properly. But no urgency just yet. Change-Id: I380f358652374b5a221f85020a53dc65912ddb29 Reviewed-on: https://go-review.googlesource.com/c/go/+/419676 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: David Chase <drchase@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
2022-07-28[dev.unified] cmd/compile: implement simple inline body pruning heuristicMatthew Dempsky
An important optimization in the existing export data format is the pruning of unreachable inline bodies. That is, when re-exporting transitively imported types, omitting the inline bodies for methods that can't actually be needed due to importing that package. The existing logic (implemented in typecheck/crawler.go) is fairly sophisticated, but also relies on actually expanding inline bodies in the process, which is undesirable. However, including all inline bodies is also prohibitive for testing GOEXPERIMENT=unified against very large Go code bases that impose size limits on build action inputs. As a short-term solution, this CL implements a simple heuristic for GOEXPERIMENT=unified: include the inline bodies for all locally-declared functions/methods, and for any imported functions/methods that were inlined into this package. Change-Id: I686964a0cd9262b77d3d5587f89cfbcfe8b2e521 Reviewed-on: https://go-review.googlesource.com/c/go/+/419675 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
2022-07-28[dev.unified] cmd/compile: allow inlining to fail gracefullyMatthew Dempsky
Change-Id: I20c7df52d110fb88eb22d57bdad9264d0c5e22fe Reviewed-on: https://go-review.googlesource.com/c/go/+/419674 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: David Chase <drchase@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
2022-07-28[dev.unified] cmd/compile: extract nil handling from exprTypeMatthew Dempsky
Type switches are the only context where exprType was used and `nilOK` was true. It'll simplify subsequent dictionary work somewhat if exprType doesn't need to worry about `nil`, so extract this logic and move it into switchStmt instead. Change-Id: I3d810f465173f5bb2e2dee7bbc7843fff6a62ee5 Reviewed-on: https://go-review.googlesource.com/c/go/+/419474 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com> Reviewed-by: Keith Randall <khr@golang.org>
2022-07-28[dev.unified] cmd/compile: write iface conversion RTTI into unified IRMatthew Dempsky
This CL changes convRTTI into a serialization method too, like the previous CL's rtype method. And again, currently this just builds on the existing type serialization logic, but will eventually be changed to use dictionary lookups where appropriate. Change-Id: I551aef8ade24b08dc6206f06ace86d91e665f5c1 Reviewed-on: https://go-review.googlesource.com/c/go/+/419457 Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: David Chase <drchase@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Matthew Dempsky <mdempsky@google.com>
2022-07-28[dev.unified] cmd/compile: write RTTI into unified IR export dataMatthew Dempsky
This CL adds `rtype` methods for unified IR for writing/reading types that need to have their *runtime._type value available. For now, this just builds on the existing type writing/reading mechanics and calling reflectdata.TypePtrAt; but longer term, reading of derived types can be changed to use dictionary lookups instead. Change-Id: I6f803b84546fa7df2877a8a3bcbf2623e4b03449 Reviewed-on: https://go-review.googlesource.com/c/go/+/419456 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: David Chase <drchase@google.com>
2022-07-27misc/cgo/test: use fewer threads in TestSetgidStress in long modeCherry Mui
TestSetgidStress originally spawns 1000 threads for stress testing. It caused timeout on some builders so CL 415677 reduced to 50 in short mode. But it still causes flaky timeouts in longtest builders, so reduce the number of threads in long mode as well. Should fix #53641. Change-Id: I02f4ef8a143bb1faafe3d11ad223f36f5cc245c6 Reviewed-on: https://go-review.googlesource.com/c/go/+/419453 Reviewed-by: Bryan Mills <bcmills@google.com> Run-TryBot: Cherry Mui <cherryyz@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
2022-07-27math/big: check buffer lengths in GobDecodeRoland Shoemaker
In Float.GobDecode and Rat.GobDecode, check buffer sizes before indexing slices. Fixes #53871 Change-Id: I1b652c32c2bc7a0e8aa7620f7be9b2740c568b0a Reviewed-on: https://go-review.googlesource.com/c/go/+/417774 TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Tatiana Bradley <tatiana@golang.org> Run-TryBot: Roland Shoemaker <roland@golang.org>
2022-07-27net: document UDPConn.ReadFromUDPAddrPort's AddrPort result moreBrad Fitzpatrick
Clarify the form of its IPv4 addresses when listening on an unspecified address. (found while testing/reviewing CL 399454) Change-Id: I62b367f5a4e6d340eb72dd7ec342080f1821e63e Reviewed-on: https://go-review.googlesource.com/c/go/+/419614 Reviewed-by: Ian Lance Taylor <iant@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Auto-Submit: Ian Lance Taylor <iant@google.com> Run-TryBot: Ian Lance Taylor <iant@google.com>
2022-07-26net: fix WriteMsgUDPAddrPort addr handlingdatabase64128
WriteMsgUDPAddrPort should accept IPv4 target addresses on IPv6 UDP sockets. An IPv4 target address will be converted to an IPv4-mapped IPv6 address. Fixes #52264. Change-Id: Ib9ed4c61fa1289ae7bbc8c4c9de1a9951b647ec0 GitHub-Last-Rev: 6776fdb0a76faa71ebde58f5143fb1ffb3112adf GitHub-Pull-Request: golang/go#52265 Reviewed-on: https://go-review.googlesource.com/c/go/+/399454 TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com> Reviewed-by: Damien Neil <dneil@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2022-07-26doc/go1.19: note that updated race syso files require GNU ld 2.26Ian Lance Taylor
For #54060 Change-Id: I6360565056d7fb7110ff00b0f3f9a3fc02ba7f2d Reviewed-on: https://go-review.googlesource.com/c/go/+/419595 Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Keith Randall <khr@google.com> Run-TryBot: Ian Lance Taylor <iant@google.com> Auto-Submit: Ian Lance Taylor <iant@google.com> Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
2022-07-26bytes: document that Reader.Reset affects the result of SizeMuhammed Can Küçükaslan
The Reader.Reset changes the underlying byte slice, so it actually changes the return value of the Size method. Fixes #54018 Change-Id: I160deaa2244e95cb93303cb5dfb67a8d90a375ef GitHub-Last-Rev: b04724a072d956db1f84a8f5db0afa0dbb158e96 GitHub-Pull-Request: golang/go#54020 Reviewed-on: https://go-review.googlesource.com/c/go/+/419237 Reviewed-by: Cherry Mui <cherryyz@google.com> Reviewed-by: Joseph Tsai <joetsai@digital-static.net> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com> Run-TryBot: Ian Lance Taylor <iant@google.com> Auto-Submit: Ian Lance Taylor <iant@google.com>
2022-07-26runtime/cgo: use frame address to set g0 stack boundCherry Mui
For a cgo binary, at startup we set g0's stack bounds using the address of a local variable (&size) in a C function x_cgo_init and the stack size from pthread_attr_getstacksize. Normally, &size is an address within the current stack frame. However, when it is compiled with ASAN, it may be instrumented to __asan_stack_malloc_0 and the address may not live in the current stack frame, causing the stack bound to be set incorrectly, e.g. lo > hi. Using __builtin_frame_address(0) to get the stack address instead. Change-Id: I41df929e5ed24d8bbf3e15027af6dcdfc3736e37 Reviewed-on: https://go-review.googlesource.com/c/go/+/419434 Run-TryBot: Cherry Mui <cherryyz@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com>
2022-07-25cmd/compile: fix blank label codeKeith Randall
When checkEnabled is forced true, the 52278 test fails. Be a bit more careful about processing blank labels. Update #52278 Change-Id: I48aa89e2c9e3715d8efe599bc4363b5b5879d8a2 Reviewed-on: https://go-review.googlesource.com/c/go/+/419318 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Cherry Mui <cherryyz@google.com> Reviewed-by: David Chase <drchase@google.com>
2022-07-25runtime: fix runtime.Breakpoint() on windows/arm64qmuntal
Fixes #53837 Change-Id: I4219fe35aac1a88aae2905998fbb1d7db87bbfb2 Reviewed-on: https://go-review.googlesource.com/c/go/+/418734 Reviewed-by: Michael Pratt <mpratt@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com> Reviewed-by: Alessandro Arzilli <alessandro.arzilli@gmail.com> TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Alessandro Arzilli <alessandro.arzilli@gmail.com>
2022-07-25[dev.unified] cmd/compile: add method expressions to dictionariesMatthew Dempsky
This CL changes method expressions that use derived-type receiver parameters to use dictionary lookups. Change-Id: Iacd09b6d77a2d3000438ec8bc9b5af2a0b068aa7 Reviewed-on: https://go-review.googlesource.com/c/go/+/419455 Reviewed-by: David Chase <drchase@google.com> Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
2022-07-25[dev.unified] cmd/compile: remove obsolete RTTI wiringMatthew Dempsky
Comparisons between interface-typed and non-interface-typed expressions no longer happen within Unified IR since CL 415577, so this code path is no longer needed. Change-Id: I075dfd1e6c34799f32766ed052eab0710bc6cbd5 Reviewed-on: https://go-review.googlesource.com/c/go/+/419454 Reviewed-by: David Chase <drchase@google.com> Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
2022-07-25cmd/go: add space after comma in 'go help test'Justin Traglia
This PR fixes a simple typo. It adds a space after a comma. Noticed while looking at `go help test` output. Change-Id: I5b54f4da0d08a056bffc04899983d858dfa91043 GitHub-Last-Rev: da9cab5eb946523b8783aafe4f05f516e4a77437 GitHub-Pull-Request: golang/go#53931 Reviewed-on: https://go-review.googlesource.com/c/go/+/418034 Reviewed-by: Bryan Mills <bcmills@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Auto-Submit: Bryan Mills <bcmills@google.com> Run-TryBot: Bryan Mills <bcmills@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
2022-07-25doc/go1.19: minor fixesTobias Klauser
EM_LONGARCH and R_LARCH_* are defined in package debug/elf. Change the definition list title accordingly. Format links sort.Find and sort.Search as code. Add a link to syscall.Getrusage. Change-Id: I30602baedda8ccac028101858a608f1d8ffb633b Reviewed-on: https://go-review.googlesource.com/c/go/+/419214 TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com> Auto-Submit: Tobias Klauser <tobias.klauser@gmail.com> Run-TryBot: Ian Lance Taylor <iant@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
2022-07-25time: clarify documentation for allowed formats and add tests to prove themMarcus Watkins
The existing documentation for the time.Layout const states "Only these values are recognized", but then doesn't include the numeric forms for month leading to ambiguity and assumptions that may not be true. It's unclear, for example, that space padding is only available for day of the month. Finally I add tests to show the behaviors in specific scenarios. Change-Id: I4e08a14834c17b6bdf3b6b47d39dafa8c1a138fb Reviewed-on: https://go-review.googlesource.com/c/go/+/418875 Reviewed-by: Rob Pike <r@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com> Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Cherry Mui <cherryyz@google.com> Auto-Submit: Ian Lance Taylor <iant@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Ian Lance Taylor <iant@google.com>
2022-07-25internal/fuzz: fix typo in function commentsAbirdcfly
The correct word to use here is 'retrieve' not 'retrive' Change-Id: I8de0961a254cf429ddbaf599fe996155e24c7af2 GitHub-Last-Rev: 65aaeec8db14c23e7bc8a62ce9ecfde98a263a49 GitHub-Pull-Request: golang/go#54026 Reviewed-on: https://go-review.googlesource.com/c/go/+/419317 Reviewed-by: Ian Lance Taylor <iant@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com> Run-TryBot: Ian Lance Taylor <iant@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Auto-Submit: Ian Lance Taylor <iant@google.com>
2022-07-25doc/go1.19: expand crypto release notesFilippo Valsorda
Not included are the following changes that were backported to Go 1.18 minor releases. bb1f441618 crypto/rand: properly handle large Read on windows 35998c0109 crypto/x509: only disable SHA-1 verification for certificates 0fca8a8f25 crypto/x509: fix Certificate.Verify crash fe4de36198 crypto/tls: randomly generate ticket_age_add 37065847d8 crypto/elliptic: tolerate zero-padded scalars in generic P-256 9a53b472b5 crypto/x509: properly handle issuerUniqueID and subjectUniqueID The following are the benchmarks to back up the 3x speedup claim in the crypto/elliptic notes. name old time/op new time/op delta pkg:crypto/elliptic goos:darwin goarch:arm64 ScalarBaseMult/P256-8 18.3µs ± 0% 18.2µs ± 0% -0.56% (p=0.000 n=10+10) ScalarBaseMult/P224-8 233µs ± 0% 74µs ± 0% -68.09% (p=0.000 n=9+10) ScalarBaseMult/P384-8 805µs ± 0% 236µs ± 0% -70.73% (p=0.000 n=8+10) ScalarBaseMult/P521-8 2.50ms ± 0% 0.68ms ± 0% -72.63% (p=0.000 n=10+8) ScalarMult/P256-8 68.4µs ± 0% 68.6µs ± 0% +0.26% (p=0.000 n=10+10) ScalarMult/P224-8 234µs ± 0% 231µs ± 0% -1.18% (p=0.000 n=10+8) ScalarMult/P384-8 805µs ± 0% 805µs ± 0% ~ (p=0.211 n=9+10) ScalarMult/P521-8 2.50ms ± 0% 2.49ms ± 0% -0.69% (p=0.000 n=10+10) pkg:crypto/ecdsa goos:darwin goarch:arm64 Sign/P256-8 31.9µs ± 1% 31.7µs ± 0% -0.64% (p=0.001 n=10+10) Sign/P224-8 264µs ± 0% 106µs ± 0% -60.09% (p=0.000 n=10+10) Sign/P384-8 884µs ± 0% 313µs ± 0% -64.53% (p=0.000 n=9+10) Sign/P521-8 2.64ms ± 0% 0.84ms ± 0% -68.13% (p=0.000 n=9+9) Verify/P256-8 91.6µs ± 0% 91.7µs ± 0% ~ (p=0.052 n=10+10) Verify/P224-8 486µs ± 0% 300µs ± 0% -38.15% (p=0.000 n=9+9) Verify/P384-8 1.66ms ± 0% 1.01ms ± 0% -39.12% (p=0.000 n=10+9) Verify/P521-8 5.12ms ± 1% 3.06ms ± 0% -40.27% (p=0.000 n=10+10) GenerateKey/P256-8 19.6µs ± 0% 19.4µs ± 0% -0.79% (p=0.000 n=10+10) GenerateKey/P224-8 235µs ± 0% 76µs ± 1% -67.45% (p=0.000 n=8+10) GenerateKey/P384-8 807µs ± 0% 239µs ± 0% -70.43% (p=0.000 n=9+10) GenerateKey/P521-8 2.49ms ± 0% 0.69ms ± 0% -72.36% (p=0.000 n=9+10) Change-Id: I7fb2db3aea4aac785a48d45fff7a32909f3b578c Reviewed-on: https://go-review.googlesource.com/c/go/+/419355 Reviewed-by: Roland Shoemaker <roland@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com> Run-TryBot: Filippo Valsorda <filippo@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
2022-07-24runtime: fix typo in function commentsAbirdcfly
The correct word to use here is 'receive' not 'recieve' Change-Id: Ia33e2a91c1c2da6dbe479a05518dbb9b8733d20d GitHub-Last-Rev: e3c3e211dd7055d1dab8699a88d0b35c459da149 GitHub-Pull-Request: golang/go#54025 Reviewed-on: https://go-review.googlesource.com/c/go/+/419316 Reviewed-by: Keith Randall <khr@google.com> Auto-Submit: Keith Randall <khr@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com> Reviewed-by: Keith Randall <khr@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Keith Randall <khr@golang.org>
2022-07-24cmd/compile/internal/noder: correct spelling errors for instantiationjacobishao
Change-Id: I8091b3181e6dd0c335763c411a6a64026fe5a651 GitHub-Last-Rev: 505c6caa9cd4538f76dde4287b9266e8947e395e GitHub-Pull-Request: golang/go#54024 Reviewed-on: https://go-review.googlesource.com/c/go/+/419315 Run-TryBot: Keith Randall <khr@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com> Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Keith Randall <khr@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Auto-Submit: Keith Randall <khr@golang.org>
2022-07-22cmd/compile: make jump table symbol localCherry Mui
When using plugins, if the plugin and the main executable both have the same function, and if it uses jump table, currently the jump table symbol have the same name so it will be deduplicated by the dynamic linker. This causes a function in the plugin may (in the middle of the function) jump to the function with the same name in the main executable (or vice versa). But the function may be compiled slightly differently, because the plugin needs to be PIC. Jumping from the middle of one function to the other will not work. Avoid this problem by marking the jump table symbol local to a DSO. Fixes #53989. Change-Id: I2b573b9dfc22401c8a09ffe9b9ea8bb83d3700ca Reviewed-on: https://go-review.googlesource.com/c/go/+/418960 Reviewed-by: Keith Randall <khr@google.com> Run-TryBot: Cherry Mui <cherryyz@google.com> Reviewed-by: Than McIntosh <thanm@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
2022-07-22[dev.unified] cmd/compile: make Unified IR always writes concrete type for ↵Cuong Manh Le
const exprs So we don't have to depend on typecheck pass to fixup the concrete type for some constant expressions. Previously, the problem won't show up, until CL 418475 sent, which removes an un-necessary type conversion in "append(a, b...) to help the optimization kicks in. For #53888 Change-Id: Idaecd38b7abbaa3ad5b00ff3b1fb0fd8bbeb6726 Reviewed-on: https://go-review.googlesource.com/c/go/+/418514 Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
2022-07-22A+C: delete AUTHORS and CONTRIBUTORSRuss Cox
In 2009, Google's open-source lawyers asked us to create the AUTHORS file to define "The Go Authors", and the CONTRIBUTORS file was in keeping with open source best practices of the time. Re-reviewing our repos now in 2022, the open-source lawyers are comfortable with source control history taking the place of the AUTHORS file, and most open source projects no longer maintain CONTRIBUTORS files. To ease maintenance, remove AUTHORS and CONTRIBUTORS from all repos. For #53961. Change-Id: I332327afb49c45d54e71e018193fb18b09e5d91a Reviewed-on: https://go-review.googlesource.com/c/go/+/419114 Reviewed-by: David Chase <drchase@google.com> Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org>
2022-07-21unsafe: document when Sizeof/Offsetof/Alignof are not constantIan Lance Taylor
They are not constant if their arguments have types that are variable size. Fixes #53921 Change-Id: I2d46754c27f55a281331c099a11ea3cd85ec4e89 Reviewed-on: https://go-review.googlesource.com/c/go/+/417917 Auto-Submit: Ian Lance Taylor <iant@google.com> Run-TryBot: Ian Lance Taylor <iant@google.com> Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Rob Pike <r@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com>
2022-07-21net/http: remove accidental heading in Head documentationDmitri Shuralyov
This short sentence was missing a period at the end, which caused it to be interpreted as a heading. It also gained a '# ' prefix as part of new gofmt formatting applied in CL 384268. This change makes it a regular sentence as originally intended. Updates #51082. Change-Id: I100410cca21e4f91130f1f3432327bb6d66b12a2 Reviewed-on: https://go-review.googlesource.com/c/go/+/418959 Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com>
2022-07-21cmd/dist: enable race detector test on S390XCherry Mui
The support was added but the test was not enabled. Enable it. Fixes #53981. Change-Id: I81ea73ea4ebc1013c35cb70ae88b096e02497887 Reviewed-on: https://go-review.googlesource.com/c/go/+/418914 Run-TryBot: Cherry Mui <cherryyz@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
2022-07-20cmd/cgo: allow cgo to pass strings or []bytes bigger than 1<<30Keith Randall
There's no real reason to limit to 1<<30 bytes. Maybe it would catch some mistakes, but probably ones that would quickly manifest in other ways. We can't use the fancy new unsafe.Slice function because this code may still be generated for people with 1.16 or earlier in their go.mod file. Use unsafe shenanigans instead. Fixes #53965 Fixes #53958 Change-Id: Ibfa095192f50276091d6c2532e8ccd7832b57ca8 Reviewed-on: https://go-review.googlesource.com/c/go/+/418557 Run-TryBot: Keith Randall <khr@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com> Reviewed-by: Keith Randall <khr@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
2022-07-20test: use go tool from tree, not pathKeith Randall
Some of our tests do exec.Command("go", "tool", "compile", ...) or similar. That "go" is selected from PATH. When run.go is started from the command line (but not from all.bash), the first "go" is whatever happens to be first in the user's path (some random older version than tip). We really want all these tests to use the "go" tool from the source tree under test. Add GOROOT/bin to the front of the path to ensure that the tools we use come from the source tree under test. Change-Id: I609261a4add8cd5cb228316752d52b5499aec963 Reviewed-on: https://go-review.googlesource.com/c/go/+/418474 Run-TryBot: Keith Randall <khr@golang.org> Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
2022-07-20cmd/compile: improve GOAMD64=v1 violation testKeith Randall
Add more opcodes that are only available in >v1 modes. This test will now correctly detect the regression in -race mode for #53743. Change-Id: Icfbb1384e4333d7b4ff167c9ebcb6f4c7aeb6134 Reviewed-on: https://go-review.googlesource.com/c/go/+/416477 Reviewed-by: Than McIntosh <thanm@google.com> Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Keith Randall <khr@google.com>
2022-07-20Merge "[dev.unified] all: merge master (8e1e64c) into dev.unified" into ↵Gerrit Code Review
dev.unified
2022-07-19[dev.unified] cmd/compile/internal/reflectdata: remove hasRType's `required` ↵Matthew Dempsky
param Unified IR now always provides RTTI needed by the backend, no need to allow exceptions anymore. 🥳 Change-Id: Ie1ba42c81f92cc43e1b01b3289de10e261ccef57 Reviewed-on: https://go-review.googlesource.com/c/go/+/415576 TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: David Chase <drchase@google.com> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
2022-07-19[dev.unified] cmd/compile/internal/noder: simplify mixed tag/case RTTI wiringMatthew Dempsky
The previous CL largely removed the need for worrying about mixed tag/case comparisons in switch statements by ensuring they're always converted to a common type, except for one annoying case: switch statements with an implicit `true` tag, and case values of interface type (which must be empty interface, because `bool`'s method set is empty). It would be simpler to have writer.go desugar the implicit `true` itself, because we already handle explicit `true` correctly. But the existing code already works fine, and I don't want to add further complexity to writer.go until dictionaries and stenciling is done. Change-Id: Ia8d44c425b1be7fc578cd570d15a7560fe9d2674 Reviewed-on: https://go-review.googlesource.com/c/go/+/418102 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: Keith Randall <khr@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
2022-07-19[dev.unified] cmd/compile/internal/noder: better switch statementsMatthew Dempsky
Walk desugars switch statements into a bunch of OEQ comparisons, and sometimes (although rarely in practice) this currently requires converting the tag value to the case value's type. And because this conversion is inserted during walk, unified IR can't wire up appropriate RTTI operands for the conversion. As a simple solution, if any of the case values are *not* assignable to the tag value's type, we instead convert them all to `any`. This works because `any(x) == any(y)` yields the same value as `x == y`, as long as neither `x` nor `y` are `nil`. We never have to worry about `x` or `y` being `nil` either, because: 1. `switch nil` is invalid, so `x` can never be `nil`. 2. If the tag type is a channel, map, or function type, they can *only* be compared against `nil`; so the case values will always be assignable to the tag value's type, and so we won't convert to `any`. 3. For other nullable types, the previous commit (adding explicit `nil` handling to unified IR) ensures that `case nil:` is actually treated as `case tagType(nil):`. Change-Id: I3adcb9cf0d42a91a12b1a163c58d4133a24fca5e Reviewed-on: https://go-review.googlesource.com/c/go/+/418101 Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
2022-07-19[dev.unified] cmd/compile/internal/noder: explicit nil handlingMatthew Dempsky
Currently, uses of "nil" are handling as references to cmd/compile's own untyped "nil" object, and then we rely on implicitly converting that to its appropriate type. But there are cases where this can subtly go wrong (e.g., the switch test case added in the previous CL). Instead, explicitly handling "nil" expressions so that we can construct them directly with the appropriate type, as computed already by types2. Change-Id: I587f044f60f24e87525dde6d7dad6c58f14478de Reviewed-on: https://go-review.googlesource.com/c/go/+/418100 Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Keith Randall <khr@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Keith Randall <khr@google.com>
2022-07-19[dev.unified] test: add switch test case for tricky nil handlingMatthew Dempsky
The next CL will change Unified IR's switch statement handling to convert values to empty interface in some tricky cases. My initial attempt at this accidentally mishandled `case nil:` in some cases, and this wasn't caught by any existing tests. So this CL adds one. Change-Id: Idcfaf0e869dca91be46d665e65d4623dc52bb60f Reviewed-on: https://go-review.googlesource.com/c/go/+/418099 Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: Keith Randall <khr@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org> Run-TryBot: Matthew Dempsky <mdempsky@google.com>
2022-07-19[dev.unified] cmd/compile/internal/noder: preserve RTTI for select statementsMatthew Dempsky
In a select statement, `case i = <-c: ...` may require an implicit conversion of the received value to i's type, but walk does not expect a conversion here. Instead, typecheck actually discards the conversion (resulting in ill-typed IR), and then relies on it being reinserted later when walk desugars the assignment. However, that might lose the explicit RTTI operands we've set for conversions to interface type, so explicitly introduce a temporary variable and rewrite as `case tmp := <-c: i = tmp; ...`, which is semantically equivalent and allows the `i = tmp` assignment to maintain the explicit RTTI without confusing the rest of the compiler frontend. Change-Id: Ie6c4dc9b19437e83970cd3ce83420813b8a47dc4 Reviewed-on: https://go-review.googlesource.com/c/go/+/418098 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: Keith Randall <khr@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
2022-07-19[dev.unified] cmd/compile/internal/noder: wire RTTI for implicit conversionsMatthew Dempsky
This CL updates Unified IR to set the TypeWord and SrcRType fields on interface conversions, which will be necessary for dictionary support shortly. Change-Id: I9486b417f514ba4ec2ee8036194aa9ae3ad0ad93 Reviewed-on: https://go-review.googlesource.com/c/go/+/415575 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: David Chase <drchase@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
2022-07-19[dev.unified] cmd/compile/internal/noder: implicit conversions for binary exprsMatthew Dempsky
Binary operations (except for shifts) require one operand to be assignable to the other's type. In particular, for equality comparisons, this can imply a conversion to interface type. Change-Id: Ic973c8287a40fdaefcf11458378574fdcd243b17 Reviewed-on: https://go-review.googlesource.com/c/go/+/415577 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
2022-07-19[dev.unified] test: relax panic message expectationsMatthew Dempsky
In this test, traditionally the comparison `*l == r[0]` was left as a comparison between `*l` (type `any`) and `r[0]` (type `*int`), and the rest of the compiler needed to handle mixed-typed comparisons. However, this means more complexity for wiring up explicit rtypes. To simplify rtype handling, the next CL will change unified IR to instead handle the expression as `*l == any(r[0])`. However, a consequence of this currently is that walk will now sequence the `any(r[0])` expression first, because it involves a concrete-to-interface conversion. And in turn, this means the `r[0]` panic ("index out of bounds") will take priority over the `*l` panic ("nil pointer dereference"). This is a change in user-visible semantics in some cases, but the Go spec leaves this unspecified, so it shouldn't be an issue. Note also: gccgo has the same behavior (i.e., panicking on index out of bounds, not nil pointer dereference), and cmd/compile also already has the same behavior when the interface conversion is explicit (as in the added "nil pointer dereference #3" test case). Updates #23735. Updates #32187. Change-Id: I49e5dcca85b4680f9c8780ef0013e64254d38fe5 Reviewed-on: https://go-review.googlesource.com/c/go/+/418097 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: David Chase <drchase@google.com>
2022-07-19[dev.unified] cmd/compile/internal/noder: prefer *At functionsMatthew Dempsky
Unified IR tries to avoid depending on base.Pos, so we should prefer explicit position arguments wherever possible. Change-Id: I7163b1b8c5244fe7c2a7989e6a3f459a21a23e81 Reviewed-on: https://go-review.googlesource.com/c/go/+/418096 Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com> Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: David Chase <drchase@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
2022-07-19[dev.unified] all: merge master (8e1e64c) into dev.unifiedDavid Chase
Conflicts: - test/run.go Conflicts in the known-fails list, plus removed a test from the known-fails that now works. Merge List: + 2022-07-19 8e1e64c16a cmd/compile: fix mknode script + 2022-07-19 28be440d34 A+C: add Weizhi Yan + 2022-07-19 85a482fc24 runtime: revert to using the precomputed trigger for pacer calculations + 2022-07-19 ae7340ab68 CONTRIBUTORS: update for the Go 1.19 release + 2022-07-18 de8101d21b runtime: fix typos + 2022-07-18 967a3d985d cmd/compile: revert "remove -installsuffix flag" + 2022-07-18 c0c1bbde17 http: improve Get documentation + 2022-07-15 2aa473cc54 go/types, types2: correct alignment of atomic.Int64 + 2022-07-15 4651ebf961 encoding/gob: s/TestIngoreDepthLimit/TestIgnoreDepthLimit/ + 2022-07-14 dc00aed6de go/parser: skip TestParseDepthLimit for short tests + 2022-07-14 783ff7dfc4 encoding/xml: skip TestCVE202230633 for short tests + 2022-07-14 aa80228526 cmd/go/internal/modfetch: avoid duplicating path components in Git fetch errors + 2022-07-14 b9d5a25442 cmd/go: save zip sums for downloaded modules in 'go mod download' in a workspace + 2022-07-14 a906d3dd09 cmd/go: avoid re-enqueuing workspace dependencies with errors + 2022-07-14 266c70c263 doc/go1.19: add a release note for 'go list -json=SomeField' + 2022-07-13 558785a0a9 cmd/compile: remove -installsuffix flag + 2022-07-13 1355ea3045 cmd/compile: remove -importmap flag + 2022-07-13 f71f3d1b86 misc/cgo/testshared: run tests only in GOPATH mode + 2022-07-13 feada53661 misc/cgo/testcshared: don't rely on an erroneous install target in tests + 2022-07-13 c006b7ac27 runtime: clear timerModifiedEarliest when last timer is deleted + 2022-07-13 923740a8cc cmd/compile: fix type assert in dict pass + 2022-07-12 bf2ef26be3 cmd/go: in script tests, avoid checking non-main packages for staleness + 2022-07-12 5f5cae7200 cmd/go: avoid indexing GOROOT packages when the compiler is 'gccgo' + 2022-07-12 c2edb2c841 cmd/go: port TestIssue16471 to a script test and add verbose logging + 2022-07-12 9c2526e637 cmd/go/internal/modfetch/codehost: add missing newline in '# lock' log message + 2022-07-12 85486bcccb image/jpeg: increase TestLargeImageWithShortData timeout by an order of magnitude + 2022-07-12 27794c4d4a cmd/go/internal/modload: ignore disallowed errors when checking for updates + 2022-07-12 b2b8872c87 compress/gzip: fix stack exhaustion bug in Reader.Read + 2022-07-12 ac68c6c683 path/filepath: fix stack exhaustion in Glob + 2022-07-12 fa2d41d0ca io/fs: fix stack exhaustion in Glob + 2022-07-12 6fa37e98ea encoding/gob: add a depth limit for ignored fields + 2022-07-12 695be961d5 go/parser: limit recursion depth + 2022-07-12 08c46ed43d encoding/xml: use iterative Skip, rather than recursive + 2022-07-12 c4c1993fd2 encoding/xml: limit depth of nesting in unmarshal + 2022-07-12 913d05133c cmd/go: avoid spurious readdir during fsys.Walk + 2022-07-12 d3d7998756 net/http: clarify that MaxBytesReader returns *MaxBytesError + 2022-07-11 126c22a098 syscall: gofmt after CL 412114 + 2022-07-11 123a6328b7 internal/trace: don't report regions on system goroutines + 2022-07-11 846490110a runtime/race: update amd64 syso images to avoid sse4 + 2022-07-11 b75ad09cae cmd/trace: fix typo in web documentation + 2022-07-11 7510e597de cmd/go: make module index loading O(1) + 2022-07-11 b8bf820d5d cmd/nm: don't rely on an erroneous install target in tests + 2022-07-11 ad641e8521 misc/cgo/testcarchive: don't rely on an erroneous install target in tests + 2022-07-11 bf5898ef53 net/url: use EscapedPath for url.JoinPath + 2022-07-11 398dcd1cf0 database/sql: make TestTxContextWaitNoDiscard test more robust + 2022-07-11 f956941b0f cmd/go: use package index for std in load.loadPackageData + 2022-07-11 59ab6f351a net/http: remove Content-Encoding in writeNotModified + 2022-07-08 c1a4e0fe01 cmd/compile: fix libfuzzer instrumentation line number + 2022-07-08 5c1a13e7a4 cmd/go: avoid setting variables for '/' and ':' in TestScript subprocess environments + 2022-07-08 180bcad33d net/http: wait for listeners to exit in Server.Close and Shutdown + 2022-07-08 14abe8aa73 cmd/compile: don't convert to interface{} for un-comparable types in generic switch + 2022-07-07 1ebc983000 runtime: overestimate the amount of allocated memory in heapLive + 2022-07-07 c177d9d98a crypto/x509: restrict CRL number to <=20 octets + 2022-07-07 486fc01770 crypto/x509: correctly parse CRL entry extensions + 2022-07-07 8ac58de185 crypto/x509: populate Number and AKI of parsed CRLs + 2022-07-07 0c7fcf6bd1 cmd/link: explicitly disable PIE for windows/amd64 -race mode + 2022-07-07 eaf2125654 cmd/go: default to "exe" build mode for windows -race + 2022-07-06 1243ec9c17 cmd/compile: only check implicit dots for method call enabled by a type bound + 2022-07-06 c391156f96 cmd/go: set up git identity for build_buildvcs_auto.txt + 2022-07-06 2acd3646fc cmd/compile: rework induction variable detector + 2022-07-06 53a4152d47 os/exec: clarify that Wait must be called + 2022-07-06 177306f630 cmd/internal/notsha256: add purego tag as needed + 2022-07-06 f4755fc733 cmd/dist: use purego tag when building the bootstrap binaries + 2022-07-06 4484c30f78 misc/cgo/test: make TestSetgidStress cheaper + 2022-07-06 2007599dc8 test: recognize new gofrontend error message + 2022-07-05 d602380f58 cmd/compile: drop "buildcfg" from no instrument packages + 2022-07-05 c111091071 cmd/go: make module@nonexistentversion failures reusable + 2022-07-05 5f305ae8e5 cmd/go: add -reuse flag to make proxy invocations more efficient + 2022-07-05 84e091eef0 cmd/go: record origin metadata during module download + 2022-07-04 ceda93ed67 build/constraint: update doc to mention a feature added in Go 1.17 + 2022-07-04 3cf79d9610 runtime: pass correct string to exits on Plan 9 + 2022-07-01 e822b1e26e net/http: omit invalid header value from error message + 2022-07-01 4a2a3bca18 cmd/go, go/build: clarify build constraint docs + 2022-07-01 9a4d5357f4 flag: highlight support for double dashes in docs + 2022-07-01 c847a2c9f0 go/types, types2: document that exported predicates are unspecified for invalid type arguments + 2022-06-30 405c269b85 go/types, types2: re-enable a couple of commented out tests + 2022-06-30 aad9382e59 go/doc/comment: support links in lists in comments + 2022-06-30 af725f4286 os: fix a typo in path_windows.go Change-Id: I381728322188aca0bfa81a946d6aedda8c07903c
2022-07-19crypto/internal/nistec,debug/gosym: fix typosDan Kortschak
Change-Id: I228a23754656b41843573bd4217de4df46c9df36 Reviewed-on: https://go-review.googlesource.com/c/go/+/417954 Run-TryBot: Ian Lance Taylor <iant@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Jenny Rakoczy <jenny@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com> Auto-Submit: Ian Lance Taylor <iant@google.com>
2022-07-19cmd/compile: fix mknode scriptKeith Randall
It's not currently working. Somehow a field of type []constant.Value causes it to barf. (That field was added with jump table statements.) Also added some instructions about how to run it correctly (which took me a suprisingly long time to figure out). Larger improvements coming, but this gets us to a working state and is safe for 1.19. Change-Id: I3027356fde1294942e87d075ca28bb40d2c0d6c3 Reviewed-on: https://go-review.googlesource.com/c/go/+/418234 Reviewed-by: Keith Randall <khr@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com> Run-TryBot: Keith Randall <khr@golang.org>
2022-07-19[dev.unified] test: change Unicode file/package name to use characters not ↵David Chase
translated by macOS. In filenames, macOS translates Ä (U+00c4, c3 84) to Ä (U+0041 U+0308, 41 cc 88). This causes problems for run.go's crude rules for testing the compiler. Fixes #53954. Change-Id: I850421cbf07e022ca5ff8122e0fb4e80deb55adf Reviewed-on: https://go-review.googlesource.com/c/go/+/418334 Run-TryBot: David Chase <drchase@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>