Skip to content

go1.25 - #2346

Open
xushiwei wants to merge 2 commits into
xgo-dev:mainfrom
xushiwei:q
Open

go1.25#2346
xushiwei wants to merge 2 commits into
xgo-dev:mainfrom
xushiwei:q

Conversation

@xushiwei

Copy link
Copy Markdown
Contributor

No description provided.

@fennoai fennoai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review: bump Go compatibility lane to 1.25.0

This PR bumps the CI "compatibility" lane from Go 1.24.x to 1.25.0 (in goroot.yml, llgo.yml) and go.mod to go 1.25.0. The matrix substitutions are consistent and CI matrix sizing (job/shard counts) is unchanged. Security review found nothing — no new/unpinned actions, no secrets, 1.25.0 remains an exact reproducibility pin.

One real correctness bug and a few stale comments/docs remain from the incomplete rename:

Not inline (line outside the diff):

  • test/std/README.md:3 — states compatibility tests run "across the pinned supported CI toolchains (Go 1.24 and Go 1.26)". The pinned compatibility toolchain is now Go 1.25, so this should read "Go 1.25 and Go 1.26". (The go1.24 build-tag references elsewhere in that README are about API availability and should stay.)

Additional findings

  • .github/workflows/goroot.yml:210: [P1] goroot summary still filters on 1.24.11 — compat rows break: These write_row calls were not updated with the matrix bump. The third positional arg is a version filter matched against column 2 of the summary TSV ($2 == version), which is now populated with 1.25.0 (from GO_VERSION). Since no row has $2 == "1.24.11", both the Darwin and Linux compatibility rows will render 0/4 with all-zero stats, and the real 1.25.0 per-toolchain numbers are silently dropped (the **total** rows use an empty filter, so aggregates stay correct). The labels are also now misleading.
  • .github/workflows/goroot.yml:38: [P2] Stale comment: says Go 1.25 is omitted, but it is now the compat lane: This comment now contradicts the matrix directly above it: 1.25.0 is now lane: compatibility (lines 30, 33-34). The claim that Go 1.25 is "intentionally omitted because it is not a compatibility target" is no longer true and is misleading. Please update to reflect that 1.25 is the current compatibility target.
  • .github/workflows/llgo.yml:25: [P2] Stale comment: 'Go 1.24 and 1.26 endpoints': The compatibility endpoint in the matrix below is now 1.25.0, not 1.24. This comment should read "Go 1.25 and 1.26 endpoints".
  • .github/workflows/llgo.yml:161: [P2] Stale comment: 'exercises Go 1.24 user-project/runtime': The demo/compatibility lane now uses 1.25.0 (the exclude just below references go: "1.25.0"). This comment should say "Go 1.25".

@codecov

codecov Bot commented Aug 17, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@github-actions

Copy link
Copy Markdown

LLGo baseline benchmarks

a2fb79cdc09e | workflow run | long-term charts

Program measurements

Platform Workload File size vs base Build vs base Run vs base
Linux cprintf 19248 B +0.0% 332.567 ms -1.6% (better) 1.301 ms -0.1% (better)
Linux fmtprintf 1879904 B +0.0% 2.692 s +1.9% (worse) 3.263 ms +0.6% (worse)
Linux println 68616 B +0.0% 334.167 ms -0.2% (better) 1.617 ms +0.0% (worse)
macOS cprintf 84624 B +0.0% 442.821 ms +4.8% (worse) 3.461 ms -6.8% (better)
macOS fmtprintf 1891424 B +0.0% 3.378 s +14.5% (worse) 14.597 ms -7.4% (better)
macOS println 121168 B +0.0% 525.890 ms +25.3% (worse) 5.625 ms +17.1% (worse)
Core language and compiler benchmarks
Platform Benchmark ns/op vs base
Linux BenchmarkLookupPCRandom 13.270 ns/op +0.5% (worse)
Linux BenchmarkMergeCompilerFlags 151.100 ns/op +0.6% (worse)
Linux BenchmarkMergeLinkerFlags 95.560 ns/op +1.4% (worse)
Linux BenchmarkChannelBuffered 35.230 ns/op -0.0% (better)
Linux BenchmarkChannelHandoff 28337 ns/op +5.0% (worse)
Linux BenchmarkDefer 46.540 ns/op +0.6% (worse)
Linux BenchmarkDirectCall 1.556 ns/op +0.0%
Linux BenchmarkGlobalRead 1.556 ns/op -0.3% (better)
Linux BenchmarkGlobalWrite 2.480 ns/op +0.0%
Linux BenchmarkGoroutine 30716 ns/op -0.9% (better)
Linux BenchmarkInterfaceCall 8.095 ns/op +0.0% (worse)
Linux BenchmarkRuntimeGetG 2.182 ns/op +0.1% (worse)
macOS BenchmarkLookupPCRandom 14.330 ns/op -1.8% (better)
macOS BenchmarkMergeCompilerFlags 156.300 ns/op +26.4% (worse)
macOS BenchmarkMergeLinkerFlags 92.810 ns/op -14.0% (better)
macOS BenchmarkChannelBuffered 26.990 ns/op -4.6% (better)
macOS BenchmarkChannelHandoff 9736 ns/op +21.8% (worse)
macOS BenchmarkDefer 35.130 ns/op -4.6% (better)
macOS BenchmarkDirectCall 1.360 ns/op +18.1% (worse)
macOS BenchmarkGlobalRead 1.261 ns/op +3.8% (worse)
macOS BenchmarkGlobalWrite 1.461 ns/op +19.7% (worse)
macOS BenchmarkGoroutine 38569 ns/op +35.2% (worse)
macOS BenchmarkInterfaceCall 6.595 ns/op -7.4% (better)
macOS BenchmarkRuntimeGetG 2.520 ns/op -2.0% (better)

Compared with 54b1b842d927 measured in the same runner job.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant