Skip to content

docs: update README compatibility and platform status - #2324

Open
cpunion wants to merge 7 commits into
xgo-dev:mainfrom
cpunion:codex/readme-compat-20260815
Open

docs: update README compatibility and platform status#2324
cpunion wants to merge 7 commits into
xgo-dev:mainfrom
cpunion:codex/readme-compat-20260815

Conversation

@cpunion

@cpunion cpunion commented Aug 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • document Go 1.20+ source compatibility, complete Go 1.26 language syntax, and full standard-library support on supported native platforms
  • document the GOROOT and standard-library compatibility checks, runtime differences, and current target coverage
  • preserve the README's existing language and ecosystem positioning while correcting inaccurate or historical wording
  • align the documented build dependencies with Go 1.24+ and LLVM/Clang/LLD 19
  • replace the outdated selected-package list with the CI-enforced standard-library coverage policy

Validation

  • bash doc/_readme/scripts/check_std_cover.sh (176/176 public packages)
  • npx --yes embedme --verify README.md
  • lychee --max-concurrency 3 --retry-wait-time 15 README.md (0 errors)
  • git diff --check

@cpunion
cpunion requested a review from xushiwei August 15, 2026 02:12

@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: README compatibility rewrite

This is a documentation-only change (README.md, +53/-93) that retitles the project, restructures the compatibility narrative (new Project status and Go standard library support sections, dropped the long hand-maintained "Go packages support" list and the standalone "Defer" subsection), bumps documented dependencies (Go 1.24+, LLVM/Clang/LLD 19, adds libffi/libuv), and reframes Windows as unsupported.

Verification against the codebase (all confirmed accurate):

  • Referenced paths exist: test/goroot/README.md, xfail.yaml, notapplicable.yaml, test/std/README.md, doc/Embedded_Cmd.md.
  • go.mod declares go 1.24.0; CI pins Go 1.24.11 + 1.26.5 (both released stable releases in this repo state — not gotip), matching the "pinned Go 1.24 and Go 1.26 toolchains" claim.
  • LLVM/Clang/LLD 19, libffi, and libuv match the install scripts and setup-deps action; the macOS embedme block (llvm@19 lld@19) is consistent.
  • GC default (conservative BDWGC + nogc tag) and the 1:1 goroutine/OS-thread model match the runtime.
  • Internal anchors #project-status and #development-tools resolve; the XGo link was correctly updated to goplus/xgo.

Overall: accurate, well-structured, and safe to merge. One minor redundancy noted inline; no blocking issues.

Comment thread README.md
@github-actions

Copy link
Copy Markdown

LLGo baseline benchmarks

e297394717fd | workflow run | long-term charts

Program measurements

Platform Workload File size vs base Build vs base Run vs base
Linux cprintf 18656 B +0.0% 300.451 ms +4.8% (worse) 1.320 ms +4.9% (worse)
Linux fmtprintf 1874280 B +0.0% 2.597 s +1.4% (worse) 3.241 ms +2.1% (worse)
Linux println 67992 B +0.0% 297.850 ms +4.8% (worse) 1.600 ms +1.9% (worse)
macOS cprintf 84624 B +0.0% 582.438 ms +19.9% (worse) 7.615 ms +78.0% (worse)
macOS fmtprintf 1889968 B +0.0% 3.139 s -13.0% (better) 17.594 ms +9.6% (worse)
macOS println 121168 B +0.0% 596.344 ms +25.5% (worse) 6.997 ms -5.6% (better)
Core language and compiler benchmarks
Platform Benchmark ns/op vs base
Linux BenchmarkLookupPCRandom 13.230 ns/op -0.2% (better)
Linux BenchmarkMergeCompilerFlags 150.900 ns/op +0.3% (worse)
Linux BenchmarkMergeLinkerFlags 94.270 ns/op +0.3% (worse)
Linux BenchmarkChannelBuffered 34.590 ns/op +1.8% (worse)
Linux BenchmarkChannelHandoff 25245 ns/op -2.0% (better)
Linux BenchmarkDefer 45.410 ns/op -0.2% (better)
Linux BenchmarkDirectCall 1.557 ns/op +0.1% (worse)
Linux BenchmarkGlobalRead 1.556 ns/op -0.1% (better)
Linux BenchmarkGlobalWrite 2.487 ns/op +0.0% (worse)
Linux BenchmarkGoroutine 43321 ns/op +37.2% (worse)
Linux BenchmarkInterfaceCall 7.782 ns/op -0.1% (better)
Linux BenchmarkRuntimeGetG 2.183 ns/op +0.1% (worse)
macOS BenchmarkLookupPCRandom 16.040 ns/op -6.9% (better)
macOS BenchmarkMergeCompilerFlags 179.700 ns/op +24.6% (worse)
macOS BenchmarkMergeLinkerFlags 106.800 ns/op -3.7% (better)
macOS BenchmarkChannelBuffered 27.790 ns/op -11.1% (better)
macOS BenchmarkChannelHandoff 7815 ns/op -8.6% (better)
macOS BenchmarkDefer 33.110 ns/op -24.8% (better)
macOS BenchmarkDirectCall 1.163 ns/op -6.3% (better)
macOS BenchmarkGlobalRead 1.238 ns/op -2.2% (better)
macOS BenchmarkGlobalWrite 1.115 ns/op -25.6% (better)
macOS BenchmarkGoroutine 91848 ns/op +67.2% (worse)
macOS BenchmarkInterfaceCall 5.109 ns/op -6.0% (better)
macOS BenchmarkRuntimeGetG 2.551 ns/op -1.6% (better)

Compared with 8b76e388fd6a measured in the same runner job.

@codecov

codecov Bot commented Aug 15, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

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