aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/dist
AgeCommit message (Collapse)Author
2024-05-20cmd/dist: set GOPROXY=off when GOPATH is set to be in GOROOTMichael Matloob
Avoid downloading modules into a modcache in the GOROOT directory. That creates read only files in GOROOT, which is undesirable. Fixes #67463 Change-Id: I6d10c605be5eba967648d823ee8fc915716b4b5b Reviewed-on: https://go-review.googlesource.com/c/go/+/586078 Reviewed-by: Robert Findley <rfindley@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2024-05-20maps: add All, Keys, Values, Insert, Collectaimuz
Fixed #61900. Change-Id: Ic5962dc92b3102e7448635bef541414a2eaf415e GitHub-Last-Rev: 3c6f74d6173c519ce090e22e724da04efff79022 GitHub-Pull-Request: golang/go#67521 Reviewed-on: https://go-review.googlesource.com/c/go/+/586716 Auto-Submit: Ian Lance Taylor <iant@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Commit-Queue: Ian Lance Taylor <iant@google.com> Reviewed-by: Russ Cox <rsc@golang.org> Auto-Submit: Russ Cox <rsc@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com>
2024-05-09cmd/dist: don't copy files ending in ~ to bootstrap directoryIan Lance Taylor
They are editor backup files. They are ignored by .gitignore, so they can never be real files in the Go repo. Change-Id: I58800e6e9f939e0bd21b086243b9260bcc8cd770 Reviewed-on: https://go-review.googlesource.com/c/go/+/584675 Reviewed-by: Than McIntosh <thanm@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Ian Lance Taylor <iant@golang.org>
2024-05-09slices: add iterator-related functionsIan Lance Taylor
Fixes #61899 Change-Id: Icbde1ac8293723eefc3251008ae9711e756ed1b3 Reviewed-on: https://go-review.googlesource.com/c/go/+/568477 Auto-Submit: Ian Lance Taylor <iant@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com> Reviewed-by: Alan Donovan <adonovan@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2024-05-09cmd/compile: add support for telemetryMichael Matloob
Add cmd/internal/telemetry to cmd/dist's bootstrapDirs so it's built when bootstrapping the compiler. cmd/internal/telemetry is a wrapper arount telemetry functions that stubs out the functions when built in bootstrap mode to avoid dependencies on x/telemetry in bootstrap mode. Call telemetry.Start with an empty config to open the counter file, and increment a counter for when the command is invoked. After flags are parsed, increment a counter for each of the names of the flags that were passed in. The counter names will be compile/flag:<name> so for example we'll have compile/flag:e and compile/flag:E. In FatalfAt, increment a stack counter for internal errors. For #58894 Change-Id: Ia5a8a63aa43b2276641181626cbfbea7e4647faa Reviewed-on: https://go-review.googlesource.com/c/go/+/570679 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
2024-05-09cmd/dist: reject accidental use of internal packages from bootstrap toolchainRuss Cox
The compiler was accidentally using internal/godebug from the Go 1.20 bootstrap toolchain and didn't get the behavior it expected. Generalizing, we should never assume we know the behavior of an internal package from an earlier bootstrap toolchain, so disallow that case in cmd/dist. Change-Id: I41e079f6120f4081124619bbe2b30069c96b9f29 Reviewed-on: https://go-review.googlesource.com/c/go/+/581496 Reviewed-by: Ian Lance Taylor <iant@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Russ Cox <rsc@golang.org>
2024-05-04cmd/dist,internal/platform: temporarily disable race detector on openbsd/amd64Joel Sing
Unfortunately, LLVM TSAN decided to remove OpenBSD support, which means that the syso files cannot currently be regenerated (see #52090). The race_openbsd.syso contains a reference to the syscall symbol, which has been removed from OpenBSD's libc in 7.5. As such, this means that the race detector no longer works on openbsd/amd64 (at least until LLVM TSAN support is reinstated for OpenBSD). Updates #63900 Change-Id: I3474fc43a94e5197815862b7dc420b71d5e08815 Reviewed-on: https://go-review.googlesource.com/c/go/+/582255 Reviewed-by: Ian Lance Taylor <iant@google.com> Run-TryBot: Joel Sing <joel@sing.id.au> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2024-04-18cmd/dist: allow arbitrary package renames for bootstrap importsMichael Pratt
Import declaration matching currently has a list of specific cases. It allows bare imports, dot imports, and renamed imports named "exec" and "rtabi". Keeping a specific allowlist of renamed imports is unnecessary and causes annoyance for developers adding such imports, as the bootstrap build errors do not make it clear that this is where the issue lies. We can simplify this to be much more general. The body of the condition will still only rewrite imports in cmd/ or in bootstrapDirs. I believe the only downside of this change is that it makes it a bit more likely to match and replace within comments. That said, there should be no harm in replacements within comments. This change results in no change to the resulting bootstrap source tree: $ diff -u -r /tmp/bootstrap.before/src /tmp/bootstrap.after/src diff -u -r /tmp/bootstrap.before/src/bootstrap/internal/buildcfg/zbootstrap.go /tmp/bootstrap.after/src/bootstrap/internal/buildcfg/zbootstrap.go --- /tmp/bootstrap.before/src/bootstrap/internal/buildcfg/zbootstrap.go 2024-03-27 12:29:27.439540946 -0400 +++ /tmp/bootstrap.after/src/bootstrap/internal/buildcfg/zbootstrap.go 2024-03-27 12:28:08.516211238 -0400 @@ -20,6 +20,6 @@ const defaultGOEXPERIMENT = `` const defaultGO_EXTLINK_ENABLED = `` const defaultGO_LDSO = `` -const version = `devel go1.23-38087c80ae Wed Mar 27 12:09:16 2024 -0400` +const version = `devel go1.23-fa64f04409 Wed Mar 27 12:22:52 2024 -0400` const defaultGOOS = runtime.GOOS const defaultGOARCH = runtime.GOARCH Change-Id: Ia933c6373f366f2e607b28d900227c24cb214674 Reviewed-on: https://go-review.googlesource.com/c/go/+/574735 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>
2024-04-18cmd/go: preprocess PGO profilesMichael Pratt
Following the previous CL, now actually run the preprofile tool to create the preprocessed output. There is still no build cache integration, so the tool will run on every build even if nothing has changed. For #58102. Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-longtest Change-Id: I0414377a956889f457e50898737fcaa8a698658d Reviewed-on: https://go-review.googlesource.com/c/go/+/569424 Auto-Submit: Michael Pratt <mpratt@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
2024-03-27cmd/compile,cmd/preprofile: move logic to shared common packageMichael Pratt
The processing performed in cmd/preprofile is a simple version of the same initial processing performed by cmd/compile/internal/pgo. Refactor this processing into the new IR-independent cmd/internal/pgo package. Now cmd/preprofile and cmd/compile run the same code for initial processing of a pprof profile, guaranteeing that they always stay in sync. Since it is now trivial, this CL makes one change to the serialization format: the entries are ordered by weight. This allows us to avoid sorting ByWeight on deserialization. Impact on PGO parsing when compiling cmd/compile with PGO: * Without preprocessing: PGO parsing ~13.7% of CPU time * With preprocessing (unsorted): ~2.9% of CPU time (sorting ~1.7%) * With preprocessing (sorted): ~1.3% of CPU time The remaining 1.3% of CPU time approximately breaks down as: * ~0.5% parsing the preprocessed profile * ~0.7% building weighted IR call graph * ~0.5% walking function IR to find direct calls * ~0.2% performing lookups for indirect calls targets For #58102. Change-Id: Iaba425ea30b063ca195fb2f7b29342961c8a64c2 Reviewed-on: https://go-review.googlesource.com/c/go/+/569337 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Michael Pratt <mpratt@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
2024-03-26all: fix a large number of commentscui fliter
Partial typo corrections, following https://go.dev/wiki/Spelling Change-Id: I2357906ff2ea04305c6357418e4e9556e20375d1 Reviewed-on: https://go-review.googlesource.com/c/go/+/573776 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Than McIntosh <thanm@google.com> Run-TryBot: shuang cui <imcusg@gmail.com> Reviewed-by: Ian Lance Taylor <iant@google.com> Auto-Submit: Ian Lance Taylor <iant@google.com>
2024-03-23cmd/dist: avoid CPU underutilization starting from GOMAXPROCS=2 runtimeqiulaidongfeng
This CL is doing now is: change maxbg to increase test parallelism. adjust test sequence. This CL speeds up the go tool dist test, most of the speed up is due to the fact that the three time-consuming tests cmd/internal/testdir and API check and runtime/race can be done in parallel with the GOMAXPROCS=2 runtime on a machine with enough CPU cores. In windows with an 8-core 16-thread CPU, this CL can complete all other tests before GOMAXPROCS=2 runtime -cpu=1,2,4 -quick completes. Fixes #65164 Change-Id: I56ed7031d58be3bece9f975bfc73e5c834d0a4fa GitHub-Last-Rev: 18cffb770f60399c889ceb40ef8207a2d0c488e5 GitHub-Pull-Request: golang/go#65703 Reviewed-on: https://go-review.googlesource.com/c/go/+/563916 Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Keith Randall <khr@google.com> Commit-Queue: Ian Lance Taylor <iant@golang.org> Auto-Submit: Ian Lance Taylor <iant@golang.org> Reviewed-by: David Chase <drchase@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2024-03-16cmd/dist,cmd/link: enable PIE buildmode on openbsd/arm64Joel Sing
The PIE buildmode works correctly on openbsd/arm64, hence enable it. Updates #59866 Change-Id: I2f3c2839893659391539fafa12891d64f867e189 Reviewed-on: https://go-review.googlesource.com/c/go/+/570375 TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Run-TryBot: Joel Sing <joel@sing.id.au>
2024-03-07all: remove redundant string conversions when formatting []byte with %scui fliter
Change-Id: I1285ee047fd465f48028186ae04d4de60cc9969e Reviewed-on: https://go-review.googlesource.com/c/go/+/569715 Reviewed-by: Ian Lance Taylor <iant@google.com> Run-TryBot: shuang cui <imcusg@gmail.com> Reviewed-by: Damien Neil <dneil@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Auto-Submit: Ian Lance Taylor <iant@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2024-03-06cmd/dist: fix typo in commentguoguangwu
Change-Id: If8bcde960348ebafec2ced0e22f315685de0bb82 GitHub-Last-Rev: 4477ade97fe831284f78183905ee5222b0d1a7cd GitHub-Pull-Request: golang/go#66124 Reviewed-on: https://go-review.googlesource.com/c/go/+/569278 Reviewed-by: Michael Knyszek <mknyszek@google.com> Auto-Submit: Ian Lance Taylor <iant@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2024-03-06cmd/dist,internal: add GOARM64 environment variableAndrey Bokhanko
Adds GOARM64 environment variable with accepted range of values "v8.{0-9}", "v9.{0-5}" and optional ",lse" and ",crypto" suffixes. Right now it doesn't affect anything, but can be used in the future to selectively target specific versions of different ARM64 hardware. For #60905 Change-Id: I6d530041b6931aa884e34f719f8ec41b1cb03ece Reviewed-on: https://go-review.googlesource.com/c/go/+/559555 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Mauri de Souza Meneguzzo <mauri870@gmail.com> Reviewed-by: Cherry Mui <cherryyz@google.com> Reviewed-by: Shu-Chun Weng <scw@google.com> Reviewed-by: Fannie Zhang <Fannie.Zhang@arm.com>
2024-03-04crypto: use and test purego tag consistentlyFilippo Valsorda
Fixes #58636 Updates #23172 Change-Id: I578a5597f467be45a7d6fb7582b24855b2e6512b Reviewed-on: https://go-review.googlesource.com/c/go/+/561935 Reviewed-by: Roland Shoemaker <roland@golang.org> Reviewed-by: Michael Knyszek <mknyszek@google.com> Auto-Submit: Filippo Valsorda <filippo@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2024-02-28cmd/dist: let the three runtime -quick tests run simultaneouslyqiulaidongfeng
For #65164 Change-Id: Ied19cebd113ef91c34f613cafbeb92a335d6420d GitHub-Last-Rev: 8118be6e30ffc4edcd88b8a1d5ee3105e2c760de GitHub-Pull-Request: golang/go#65444 Reviewed-on: https://go-review.googlesource.com/c/go/+/560597 Commit-Queue: Ian Lance Taylor <iant@golang.org> Reviewed-by: Keith Randall <khr@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Than McIntosh <thanm@google.com> Auto-Submit: Ian Lance Taylor <iant@golang.org>
2024-02-21cmd: remove support for GOROOT_FINALConstantin Konstantinidis
Fixes #62047 Change-Id: If7811c1eb9073fb09b7006076998f8b2e1810bfb Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-longtest,gotip-windows-amd64-longtest Reviewed-on: https://go-review.googlesource.com/c/go/+/539975 Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Bryan Mills <bcmills@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
2024-02-16cmd/dist,cmd/go: define assembly macros, handle GOARM value with soft/hardfloatCherry Mui
CL 525637 added GOARM_x assembly macros based on GOARM value. But it did not define the macro in cmd/dist, so the macro is not set during bootstrapping. This CL defines them. With CL 514907, cfg.GOARM can also take a soft/hardfloat suffix, like "7,hardfloat". Handle that case. For #65601. Change-Id: I60ffe7e8b623ae693d91d6e8595067a6f76565b3 Reviewed-on: https://go-review.googlesource.com/c/go/+/562995 Run-TryBot: Cherry Mui <cherryyz@google.com> Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Keith Randall <khr@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
2024-01-25cmd/dist,internal/platform,runtime: add cgo support for openbsd/riscv64 portJoel Sing
Updates #55999 Change-Id: Ie9a030130713f3eaf789b91d9033be3335eb9d75 Reviewed-on: https://go-review.googlesource.com/c/go/+/518630 Reviewed-by: Carlos Amedee <carlos@golang.org> Run-TryBot: Joel Sing <joel@sing.id.au> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Cherry Mui <cherryyz@google.com>
2024-01-25cmd/dist,internal/platform: enable openbsd/riscv64 portJoel Sing
Fixes #55999 Change-Id: If76b61b660db3fefe5f9ca97500782f2a650db25 Reviewed-on: https://go-review.googlesource.com/c/go/+/518629 Reviewed-by: Cherry Mui <cherryyz@google.com> Run-TryBot: Joel Sing <joel@sing.id.au> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Carlos Amedee <carlos@golang.org>
2024-01-24src/cmd/relnote, doc/next: add release note checkJonathan Amsterdam
Add a test that every file in api/next has corresponding release note fragments. Vendor in golang.org/x/build/relnote, which brings along some other things. Modify dist/test.go to configure the test to run on some trybots. For #64169. Change-Id: If87d11350ea6b2605bc3ab31c491fa28f1d6ee7d Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-longtest Reviewed-on: https://go-review.googlesource.com/c/go/+/556995 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
2024-01-24cmd/go: add GORISCV64 environment variableMark Ryan
The variable represents the RISC-V user-mode application profile for which to compile. Valid values are rva20u64 (the default) and rva22u64. Setting GORISCV64=rva20u64 defines the riscv64.rva20u64 build tag, sets the internal variable buildcfg.GORISCV64 to 20 and defines the macro GORISCV64_rva20u64 for use in assembly language code. Setting GORISCV64=rva22u64 defines the riscv64.rva20u64 and riscv64.rva22u64 build tags, sets the internal variable buildcfg.GORISCV64 to 22 and defines the macro GORISCV64_rva22u64 for use in assembly language code. This patch only provides a mechanism for the compiler and hand-coded assembly language functions to take advantage of the RISC-V extensions mandated by the application profiles. Further patches will be required to get the compiler/assembler and assembly language functions to actually generate and use these extensions. Fixes #61476 Change-Id: I9195ae6ee71703cd2112160e89157ab63b8391af Reviewed-on: https://go-review.googlesource.com/c/go/+/541135 Reviewed-by: M Zhuo <mengzhuo1203@gmail.com> Reviewed-by: Joel Sing <joel@sing.id.au> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Wang Yaduo <wangyaduo@linux.alibaba.com> Reviewed-by: Cherry Mui <cherryyz@google.com> Reviewed-by: Bryan Mills <bcmills@google.com> Run-TryBot: M Zhuo <mengzhuo1203@gmail.com> TryBot-Result: Gopher Robot <gobot@golang.org>
2023-12-06iter, runtime: add coroutine supportRuss Cox
The exported API is only available with GOEXPERIMENT=rangefunc. This will let Go 1.22 users who want to experiment with rangefuncs access an efficient implementation of iter.Pull and iter.Pull2. For #61897. Change-Id: I6ef5fa8f117567efe4029b7b8b0f4d9b85697fb7 Reviewed-on: https://go-review.googlesource.com/c/go/+/543319 Reviewed-by: Michael Knyszek <mknyszek@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2023-11-21cmd/dist, cmd/link, internal, runtime: implement buildmode=plugin for ↵WANG Xuerui
linux/loong64 According to review, buildmode=shared has unfixed shortcomings and should be considered legacy at this time. So only buildmode=plugin is going to be added for loong64 which is a relatively new platform. Change-Id: Iac0b9f57e4ee01755458e180bb24d1b2a146fdf0 Reviewed-on: https://go-review.googlesource.com/c/go/+/480878 TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Michael Knyszek <mknyszek@google.com> Run-TryBot: WANG Xuerui <git@xen0n.name> Reviewed-by: David Chase <drchase@google.com> Reviewed-by: abner chenc <chenguoqi@loongson.cn> Reviewed-by: Meidan Li <limeidan@loongson.cn>
2023-11-10cmd/compile: update types2.Info.FileVersions API to match go/typesRobert Griesemer
This CL changes the FileVersions map to map to version strings rather than Version structs, for use with the new go/versions package. Adjust the cmd/dist bootstrap package list to include go/version. Adjust the compiler's noder to work with the new API. For #62605. For #63974. Change-Id: I191a7015ba3fb61c646e9f9d3c3dbafc9653ccb5 Reviewed-on: https://go-review.googlesource.com/c/go/+/541296 Reviewed-by: Robert Griesemer <gri@google.com> Auto-Submit: Robert Griesemer <gri@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Robert Griesemer <gri@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com>
2023-10-31cmd/dist,internal/platform: enable openbsd/ppc64 portJoel Sing
Updates #56001 Change-Id: I16440114ecf661e9fc17d304ab3b16bc97ef82f8 Reviewed-on: https://go-review.googlesource.com/c/go/+/517935 Run-TryBot: Joel Sing <joel@sing.id.au> Reviewed-by: Paul Murphy <murp@ibm.com> Reviewed-by: Ian Lance Taylor <iant@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Carlos Amedee <carlos@golang.org>
2023-10-19all: drop old +build linesDmitri Shuralyov
Running 'go fix' on the cmd+std packages handled much of this change. Also update code generators to use only the new go:build lines, not the old +build ones. For #41184. For #60268. Change-Id: If35532abe3012e7357b02c79d5992ff5ac37ca23 Cq-Include-Trybots: luci.golang.try:gotip-linux-386-longtest,gotip-linux-amd64-longtest,gotip-windows-amd64-longtest Reviewed-on: https://go-review.googlesource.com/c/go/+/536237 Reviewed-by: Ian Lance Taylor <iant@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2023-10-06cmd/dist: emphasize when all tests are excludedDmitri Shuralyov
As observed in https://go.dev/issue/61666#issuecomment-1739476954, if a -run flag value matches no tests, dist test output doesn't do much to help users notice that was what happened. It is valid and sometimes intended¹ to match no tests, so I want to reserve failed status with exit code 1 to the actionable outcome where at least 1 test failed. But it seems reasonable to extend the existing "some were excluded" mechanism of reporting partial testing to be more helpful. In non-JSON mode, which is more likely to be used manually by humans, print a special² last line that will hopefully be easier to notice when matching no tests wasn't intended. Change nothing for -json mode since that's likely used by machines and they can make sense of 0 JSON events. The go test command already has this behavior, so this brings dist test closer³ to it. (Slightly unfortunate duplicate maintenance for us, and the need for the rare dist test users to learn its CLI quirks; oh well.) ¹ It might seem counter-intuitive at first: what's the point of calling dist test and asking it to run no tests? One possible answer is that it permits writing code capable of running N intended tests, where N is 0 or higher. That is, it allows for 0 to not be a special case that the caller would have no choice but handle differently. ² I initially considered making it say something like "N of M tests were excluded", but decided to leave it alone since the current coordinator code still has that text hardcoded and I don't want to break it. Hence the new status that I expect only humans will see. And it seems better this way anyway. ³ In particular, the "matched no tests" and "no tests to run" phrases were selected precisely because they're already used in cmd/go output. Change-Id: I6768d9932587195ae6dbc6e2c4742479e265733b Reviewed-on: https://go-review.googlesource.com/c/go/+/532115 Reviewed-by: Austin Clements <austin@google.com> Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2023-10-02cmd/dist,internal/platform: add openbsd/riscv64 portJoel Sing
Updates #55999 Change-Id: I3c07f776919e36e4c1fdc5346f7622e5901a2902 Reviewed-on: https://go-review.googlesource.com/c/go/+/518624 TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Aaron Bieber <deftly@gmail.com> Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Than McIntosh <thanm@google.com> Run-TryBot: Joel Sing <joel@sing.id.au>
2023-09-30internal,cmd/internal: relocate covcmd package from std to cmdThan McIntosh
Relocate the 'covcmd' package from .../internal/coverage to .../cmd/internal/cov, to reflect the fact that the definitions in this package are used only in cmd, not in std. Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-longtest,gotip-windows-amd64-longtest Change-Id: I65bcc34736d1d0a23134a6c91c17ff138cd45431 Reviewed-on: https://go-review.googlesource.com/c/go/+/526595 Reviewed-by: Bryan Mills <bcmills@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2023-09-12all: fix Microsoft linksqmuntal
This CL fixes the links to Microsoft documentation in the Go source code. Some links were broken and some others were outdated. Change-Id: I4c3bcd3aa3c07a31be1b7f94c25339dcc2e771e8 Reviewed-on: https://go-review.googlesource.com/c/go/+/527556 Reviewed-by: Heschi Kreinick <heschi@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Run-TryBot: Quim Muntal <quimmuntal@gmail.com> Auto-Submit: Quim Muntal <quimmuntal@gmail.com>
2023-08-23cmd/internal/obj/riscv,cmd/link: add support for internal cgo linking on riscv64Joel Sing
Make it possible to internally link cgo on riscv64, which also adds support for SDYNIMPORT calls without external linking being required. This reduces the time of an ./all.bash run on a Sifive Hifive Unleashed by approximately 20% (~140 minutes down to ~110 minutes). Change-Id: I43f1348de31672718ae8676cc82f6fdc1dfee054 Reviewed-on: https://go-review.googlesource.com/c/go/+/431104 TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Cherry Mui <cherryyz@google.com> Run-TryBot: Joel Sing <joel@sing.id.au> Reviewed-by: Than McIntosh <thanm@google.com>
2023-08-23cmd/link: add support for openbsd/ppc64Joel Sing
Add linker support for the openbsd/ppc64 port. Updates #56001 Change-Id: I18bc19b4086599996aebfbe68f2e85e1200589ca Reviewed-on: https://go-review.googlesource.com/c/go/+/475619 TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Joel Sing <joel@sing.id.au> Reviewed-by: Lynn Boger <laboger@linux.vnet.ibm.com> Reviewed-by: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Paul Murphy <murp@ibm.com> Reviewed-by: Eric Grosse <grosse@gmail.com>
2023-08-22cmd/compile,cmd/dist,cmd/go: compute -+ flag from package pathAustin Clements
As we did for the asm -compiling-runtime flag, this CL modifies the compiler to compute the -+ (compiling runtime) flag from the package path. Unlike for asm, some tests use -+ explicitly to opt in to runtime restrictions, so we leave the flag, but it's no longer passed by any build tools. This lets us eliminate cmd/go's list of "runtime packages" in favor of the unified objabi.LookupPkgSpecial. It also fixes an inconsistency with dist, which only passed -+ when compiling "runtime" itself. One consequence of this is that the compiler now ignores the -N flag when compiling runtime packages. Previously, cmd/go would strip -N when passing -+ and the compiler would fatal if it got both -N and -+, so the overall effect was that the compiler never saw -N when compiling a runtime package. Now we simply move that logic to disable -N down into the compiler. Change-Id: I4876047a1563210ed122a31b72d62798762cbcf5 Reviewed-on: https://go-review.googlesource.com/c/go/+/521699 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2023-08-22cmd/asm,cmd/dist,cmd/go: remove asm -compiling-runtime flagAustin Clements
Currently, dist and go pass a -compiling-runtime flag to asm if they're compiling a runtime package. However, now that we always pass the package path to asm, it can make that determination just as well as its callers can. This CL moves that check into asm and drops the flag. This in turn makes dist's copy of IsRuntimePackagePath unnecessary, so we delete it. Change-Id: I6ecf2d50b5b83965012af34dbe5f9a973ba0778b Reviewed-on: https://go-review.googlesource.com/c/go/+/521697 Run-TryBot: Austin Clements <austin@google.com> Reviewed-by: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
2023-08-14internal/coverage: separate out cmd defs to separate packageThan McIntosh
Relocate the definitions in cmddefs.go (used by the compiler and the cover tool) to a separate package "covcmd". No change in functionality, this is a pure refactoring, in preparation for a subsequent change that will require updating the imports for the package. Change-Id: Ic1d277c94d9a574de0a11ec5ed77e892302b9a47 Reviewed-on: https://go-review.googlesource.com/c/go/+/517696 TryBot-Result: Gopher Robot <gobot@golang.org> Auto-Submit: Than McIntosh <thanm@google.com> Run-TryBot: Than McIntosh <thanm@google.com> Reviewed-by: David Chase <drchase@google.com>
2023-08-09cmd/dist: remove unnecessary parts of bootstrapDirsqiulaidongfeng
Change-Id: I7658f2f1716f74b4ff0b4b9f8ccd386e99dd9d51 Change-Id: I7658f2f1716f74b4ff0b4b9f8ccd386e99dd9d51 GitHub-Last-Rev: f55b84dafb646fbfc0e4d0824d28d0dbf27e56c3 GitHub-Pull-Request: golang/go#61831 Reviewed-on: https://go-review.googlesource.com/c/go/+/516935 Reviewed-by: Michael Knyszek <mknyszek@google.com> Auto-Submit: Ian Lance Taylor <iant@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com> Run-TryBot: Ian Lance Taylor <iant@google.com> Run-TryBot: Ian Lance Taylor <iant@golang.org>
2023-08-01cmd/dist: tolerate macOS writing .DS_Store to GOROOT/binDmitri Shuralyov
I was trying out gorebuild (a program that runs make.bash many times) on a macOS system. Unfortunately there were a few failed invocations on my first try, but not with a very good or interesting reason: go tool dist: unexpected new file in $GOROOT/bin: .DS_Store Tolerate it since it's not unexpected, and will not affect the build. Change-Id: I656536b896098c2ba934667196d4ce82e706c8da Reviewed-on: https://go-review.googlesource.com/c/go/+/513763 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Russ Cox <rsc@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
2023-07-28cmd/dist: update isUnsupportedVMASize test skipDmitri Shuralyov
The dist test name changed from "race" to "flag:race", "net:race", "os:race" and so on in CL 496181, we missed that this skip was checking the exact dist test name, and no builder reported a problem despite the skip becoming inactive. I considered deleting it as obsolete, but it may still be helpful if someone runs race.bash on a linux/arm64 machine configured with something other than the supported 48-bit VMA. So for now apply a simple change to restore the existing skip. Hopefully one day there will be a good way to check for unsupported VMA size and disable the race detector conditionally instead of relying on tests running, failing, and getting marked as skipped in cmd/dist. For #29948. For #37486. Change-Id: I8af6862c92fb0ee538ab27327d43c50921bd1873 Reviewed-on: https://go-review.googlesource.com/c/go/+/512116 Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com> Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Austin Clements <austin@google.com>
2023-07-28cmd/dist: handle -json flag in runPending (clean up)Dmitri Shuralyov
Document work fields a bit more, and move code that synthesizes JSON-encoded skip events to testjson.go. For #37486. For #61557. Change-Id: Iffc23cf990bc39696e1e3fce8ce5a6790fc44e78 Reviewed-on: https://go-review.googlesource.com/c/go/+/512115 TryBot-Result: Gopher Robot <gobot@golang.org> Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org> Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Austin Clements <austin@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
2023-07-28cmd/dist: handle -json flag in runPending (minimal)Dmitri Shuralyov
The -json flag is new to Go 1.21, but missed skips in runPending. This CL adds minimal code to fix that. CL 512115 cleans up a bit. For #37486. Fixes (via backport) #61557. Change-Id: I53e426c9a5585b2703f0ff6661a0470e1993f960 Reviewed-on: https://go-review.googlesource.com/c/go/+/512719 TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Austin Clements <austin@google.com> Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
2023-07-27cmd/dist: skip testing packages without tests in short test modeDmitri Shuralyov
For short all.bash, we can keep the small speedup of 2-10 seconds by skipping 'go test' on packages without tests. This is viable without coverage loss since the Go release process is guaranteed to run long tests for all first class ports. For golang/go#60463. Change-Id: Ib5a6bd357d757141bc8f1c1dec148a6565726587 Reviewed-on: https://go-review.googlesource.com/c/go/+/503115 Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Bryan Mills <bcmills@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
2023-07-27cmd/dist: test all 'std cmd' packages, even ones without _test.go filesDmitri Shuralyov
Remove the optimization added in CL 10492 that skips running 'go test' on Go packages without _test.go files. By now, 'go test' can find real problems even in packages that don't have any custom tests. On my fairly fast laptop, running go test -short on all 164 normal and 96 vendored packages without tests took around 10 seconds on the first run and 2.5 seconds on the second, a small fraction of the total all.bash time. So prioritize gains in the test coverage over those savings in all.bash time. Fixes golang/go#60463. Change-Id: I3d2bec5c367de687e57131e7fd7e6b84fed30187 Reviewed-on: https://go-review.googlesource.com/c/go/+/503095 TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> Reviewed-by: Bryan Mills <bcmills@google.com> Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org> Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Austin Clements <austin@google.com>
2023-07-25cmd/dist: fix broken link in READMEDmitri Shuralyov
While here, also update the go15bootstrap link to use the shorter go.dev domain and https:// prefix for consistency. For #54265. Change-Id: I881eeda235589511a93bf47186f91f6c47c12932 Reviewed-on: https://go-review.googlesource.com/c/go/+/512720 Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org> Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Cherry Mui <cherryyz@google.com>
2023-07-24make.bash,bat,rc: use Go 1.20.6 instead of Go 1.17.13Russ Cox
This was missed in the update of the bootstrap toolchain and should help people who don't set GOROOT_BOOTSTRAP and instead assume these scripts will find the right one. For #54265. Change-Id: I37a0d0976006d13b73df00013780be5abf202e91 Reviewed-on: https://go-review.googlesource.com/c/go/+/512275 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Cherry Mui <cherryyz@google.com> Auto-Submit: Russ Cox <rsc@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
2023-07-21cmd/dist: apply timeout scale even if timeout isn't overriddenDmitri Shuralyov
The timeout field is documented as being available so that it's possible to override timeout by setting a non-zero value. If it's left at zero, we don't need to override the default go test timeout, but we still need to apply the timeout scale whenever it's something other than 1. Fixes (via backport) #61468. Change-Id: I63634e9b3ef8c4ec7f334b5a6b4bf3cad121355c Reviewed-on: https://go-review.googlesource.com/c/go/+/511567 Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Bryan Mills <bcmills@google.com> Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
2023-07-21runtime: fix debug non-concurrent sweep mode after activeSweep changesMichael Anthony Knyszek
Currently the GC creates a sweepLocker before restarting the world at the end of the mark phase, so that it can safely flush mcaches without the runtime incorrectly concluding that sweeping is done before that happens. However, with GODEBUG=gcstoptheworld=2, where sweeping happens during that STW phase, creating that sweepLocker will fail, since the runtime will conclude that sweeping is in fact complete (all the queues will be drained). The problem however is that gcSweep, which does the non-concurrent sweeping, doesn't actually flush mcaches. In essence, this failure to create a sweepLocker is indicating a real issue: sweeping is marked as complete, but we haven't flush the mcaches yet! The fix to this is to flush mcaches in gcSweep when in a non-concurrent sweep. Now that gcSweep actually completes a full sweep, it's safe to ignore a failure to create a sweepLocker (and in fact, it *must* fail). While we're here, let's also remove _ConcurrentSweep, the debug flag. There's already an alias for it called concurrentSweep, and there's only one use of it in gcSweep. Lastly, add a dist test for the GODEBUG=gcstoptheworld=2 mode. Fixes #53885. Change-Id: I8a1e5b8f362ed8abd03f76e4950d3211f145ab1f Reviewed-on: https://go-review.googlesource.com/c/go/+/479517 Run-TryBot: Michael Knyszek <mknyszek@google.com> Reviewed-by: Cherry Mui <cherryyz@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
2023-07-20all: update build tags to require/assume Go 1.20Matthew Dempsky
Updates #54265. Change-Id: Ia1c9486484c73c565bb4f78234dedff6d929ed42 Reviewed-on: https://go-review.googlesource.com/c/go/+/511656 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org> Auto-Submit: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>