Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2841 commits
Select commit Hold shift + click to select a range
bf773df
cl: avoid duplicate unused array nil guards
cpunion Aug 13, 2026
aaf2809
test(cl): cover builtin-referenced array deref
cpunion Aug 13, 2026
f400a57
ssa: harden amd64 float conversion coverage
cpunion Aug 13, 2026
59849c7
test(cl): accept target-specific float conversion IR
cpunion Aug 14, 2026
4112089
test(cl): split float conversion checks by architecture
cpunion Aug 14, 2026
b443446
feat(pclnpost): physically compact funcinfo carriers
zhouguangyuan0718 Aug 2, 2026
0ae88ad
test(pclnpost): cover compaction boundary failures
zhouguangyuan0718 Aug 12, 2026
7072fec
fix(build): avoid non-LTO Mach-O carrier page overhead
zhouguangyuan0718 Aug 14, 2026
9db8d67
fix(build): scope Mach-O carrier compaction
zhouguangyuan0718 Aug 14, 2026
a5887c1
fix(pclnpost): update carrier stats consumer
zhouguangyuan0718 Aug 14, 2026
8b76e38
Merge pull request #2267 from zhouguangyuan0718/codex/pclnpost-compac…
xushiwei Aug 14, 2026
2e0c73e
Merge pull request #2315 from cpunion/fix-amd64-float-conversions
xushiwei Aug 15, 2026
f65ddd1
Merge pull request #2253 from cpunion/codex/goroot-float-uint32-20260801
xushiwei Aug 15, 2026
940ea1e
ssa: honor saturating uint32 conversion on amd64
cpunion Aug 15, 2026
4beacc6
ssa: document amd64 saturating conversion path
cpunion Aug 15, 2026
4a5bd76
Merge pull request #2329 from cpunion/codex/fix-float-uint32-ci-20260815
cpunion Aug 15, 2026
d9bffb6
refactor(runtime): reuse stdlib atomic and maps sources
cpunion Aug 15, 2026
27636cb
refactor(runtime): drop redundant stdlib overrides
cpunion Aug 15, 2026
6201a06
refactor(runtime): migrate more stdlib overrides to source patches
cpunion Aug 15, 2026
69e0eb8
fix(runtime): preserve maps type string guard
cpunion Aug 15, 2026
277c0f0
chore(runtime): clarify maps source patches
cpunion Aug 15, 2026
51ca6fe
refactor(runtime): reuse the standard sync pool queue
cpunion Aug 15, 2026
cbaed98
refactor(runtime): migrate syscall overrides to source patches
cpunion Aug 15, 2026
a34c02e
perf(runtime): keep sync pool TLS bridge direct
cpunion Aug 15, 2026
8ca3e0d
perf(build): scan source patches for the target only
cpunion Aug 15, 2026
923ee27
refactor(runtime): own sync pool TLS in the runtime
cpunion Aug 15, 2026
1a80de6
refactor(runtime): reuse the existing pool TLS transport
cpunion Aug 15, 2026
9ba4284
fix(build): preserve target tool-tag source patches
cpunion Aug 15, 2026
fb16b49
fix: align indirect map slot sizes
visualfc Aug 15, 2026
9a344b4
Merge pull request #2326 from visualfc/codex/fix/map-indirect-slot-size
xushiwei Aug 16, 2026
bcac0fb
runtime: add optimized map fast paths
visualfc Aug 13, 2026
0e6b6b9
runtime: avoid nil memmove for zero-length slice append
visualfc Aug 13, 2026
c893d5a
cl/_testgo/mapfast
visualfc Aug 13, 2026
e7aa5ed
Merge pull request #2306 from visualfc/codex/map-fast-path
xushiwei Aug 16, 2026
13b3630
Merge pull request #2331 from cpunion/codex/reduce-runtime-lib-patche…
xushiwei Aug 16, 2026
92dd0f3
Merge pull request #2225 from visualfc/goid
xushiwei Aug 16, 2026
81fca48
Merge pull request #2316 from cpunion/codex/unused-nil-deref-load-onl…
xushiwei Aug 16, 2026
3c67837
Merge pull request #2312 from cpunion/fix-rangefunc-defer-return
xushiwei Aug 16, 2026
7f954d6
Merge pull request #2300 from cpunion/codex/runtime-finalizer-assigna…
xushiwei Aug 16, 2026
a2c33b4
cl: preserve zero values for blank struct fields
cpunion Jul 30, 2026
1339d19
cl: make blank-field IR checks portable
cpunion Aug 10, 2026
d8d57d0
test: cover recover-visible panic locations
cpunion Aug 10, 2026
76e2f41
cl: preserve recover-visible panic locations
cpunion Aug 10, 2026
1eb1653
cl: document caller tracking criteria
cpunion Aug 11, 2026
7a40c6a
test/goroot: enable recover-visible panic line cases
cpunion Aug 11, 2026
9695eb4
cl: cache recover-visible signature candidates
cpunion Aug 11, 2026
98216c2
cl: preserve caller precomputation for recover analysis
cpunion Aug 13, 2026
cae7bbd
cl: scope recover panic-site anchors
cpunion Aug 13, 2026
ca71598
cl: refine recover-visible panic tracking
cpunion Aug 13, 2026
8603559
build(deps): bump github.com/qiniu/x from 1.18.0 to 1.18.3
dependabot[bot] Aug 17, 2026
1803218
Merge pull request #2231 from cpunion/codex/xfail-blank-static-20260730
xushiwei Aug 17, 2026
54b1b84
Merge pull request #2341 from xgo-dev/dependabot/go_modules/github.co…
xushiwei Aug 17, 2026
4bf1038
go1.25
xushiwei Aug 17, 2026
7d9f052
Merge pull request #2293 from cpunion/codex/goroot-panic-pcline-20260811
xushiwei Aug 17, 2026
a2fb79c
README: go1.25
xushiwei Aug 17, 2026
ae27652
runtime: restore native process-entry caller tail
cpunion Aug 13, 2026
61d8d3c
internal/build: centralize runtime-tail metadata
cpunion Aug 13, 2026
f24ad07
internal/build: document runtime entry paths
cpunion Aug 13, 2026
d776b53
internal/build: isolate funcinfo table fixtures
cpunion Aug 13, 2026
2212bba
fix(build): skip asm scan for synthetic test main
visualfc Aug 17, 2026
14851b6
modpath: github.com/goplus/llgo => github.com/xgo-dev/llgo
xushiwei Aug 17, 2026
4906ba9
update install.sh
xushiwei Aug 17, 2026
fe934c4
Merge pull request #2348 from xushiwei/modpath
xushiwei Aug 17, 2026
92ffcbc
fix: sanitize C header identifiers
zhouguangyuan0718 Aug 17, 2026
bca7b52
test: refresh IR checks for module path
zhouguangyuan0718 Aug 17, 2026
e7ac0db
Merge pull request #2349 from zhouguangyuan0718/codex/fix-modpath-ci
xushiwei Aug 17, 2026
f9e2f69
Merge pull request #2347 from visualfc/codex/fix-test-synthetic-main-asm
xushiwei Aug 17, 2026
0f48025
Merge pull request #2314 from cpunion/fix-caller-logical-tail
xushiwei Aug 17, 2026
6a639c2
test: refresh module path expectations
zhouguangyuan0718 Aug 17, 2026
110a806
test: add opt-in post-ABI IR checks
zhouguangyuan0718 Aug 13, 2026
4b2f7d9
test: merge float conversion target fixtures
zhouguangyuan0718 Aug 15, 2026
b5261a5
ci: retrigger checks
zhouguangyuan0718 Aug 16, 2026
4e8f55a
test: make platform IR checks explicit
zhouguangyuan0718 Aug 16, 2026
bcb177f
test: make default-stage target matrices implicit
zhouguangyuan0718 Aug 16, 2026
2b109f1
test: always check the current IR target
zhouguangyuan0718 Aug 17, 2026
d69f707
test: share FileCheck assertions by architecture
zhouguangyuan0718 Aug 17, 2026
b91dd73
test: keep syncmap on the current target
zhouguangyuan0718 Aug 17, 2026
c5a3fd6
test: adapt FileCheck tooling to module path
zhouguangyuan0718 Aug 17, 2026
8b5e93f
test: refresh module path expectations
zhouguangyuan0718 Aug 17, 2026
a33b12d
Merge pull request #2350 from zhouguangyuan0718/codex/fix-main-modpat…
xushiwei Aug 18, 2026
fcf1377
Merge pull request #2346 from xushiwei/q
xushiwei Aug 18, 2026
fcedff6
test: exercise post-ABI checks for wasm
zhouguangyuan0718 Aug 18, 2026
f98b8d9
Merge pull request #2319 from zhouguangyuan0718/codex/filecheck-post-…
xushiwei Aug 18, 2026
919b2dc
mod: github.com/goplus/mod v0.22.0; golang.org/x/tools v0.49.0
xushiwei Aug 18, 2026
9cde443
Merge pull request #2355 from xushiwei/mod
xushiwei Aug 18, 2026
28c154c
runtime: bridge cgroup throw for Go 1.25
visualfc Aug 18, 2026
4dbc279
Revert "mod: github.com/goplus/mod v0.22.0; golang.org/x/tools v0.49.0"
xushiwei Aug 18, 2026
2c85b1b
Merge pull request #2357 from xgo-dev/revert-2355-mod
xushiwei Aug 18, 2026
275a648
Merge pull request #2356 from visualfc/codex/fix-go125-cgroup-throw
xushiwei Aug 18, 2026
f0f9a95
runtime: fix trace stop deadlock on Go 1.25
visualfc Aug 18, 2026
95b3ff5
Merge pull request #2358 from visualfc/codex/fix-go125-runtime-trace-…
xushiwei Aug 18, 2026
75d4eea
build: inherit host args in c-shared libraries
visualfc Aug 18, 2026
6a6e736
ssa: isolate index range panic path
visualfc Aug 16, 2026
cb5d705
ltoplugin: preserve names for shared sret slots
zhouguangyuan0718 Aug 17, 2026
ca69954
build: align alternate runtime Go toolchain
visualfc Aug 18, 2026
c1a76f4
runtime: support native CPU profiling
zhouguangyuan0718 Aug 16, 2026
5968370
runtime: coordinate CPU profiling signals
zhouguangyuan0718 Aug 16, 2026
63676fa
test: make CPU profile overflow deterministic
zhouguangyuan0718 Aug 16, 2026
0e360c4
cl: deduplicate same-line panic PC anchors
zhouguangyuan0718 Aug 18, 2026
1f8877a
runtime: harden native CPU profiling
zhouguangyuan0718 Aug 18, 2026
efbc66a
Merge pull request #2360 from zhouguangyuan0718/codex/dedup-pcline-sites
xushiwei Aug 18, 2026
659059e
Merge pull request #2353 from visualfc/codex/cshared-os-args
xushiwei Aug 18, 2026
45c5e91
Merge pull request #2344 from visualfc/codex/check-index-range-fast-path
xushiwei Aug 18, 2026
80ac6af
ci: allow release job to publish artifacts
zhouguangyuan0718 Aug 18, 2026
74c3647
runtime: move CPU profile coordination to Go
zhouguangyuan0718 Aug 18, 2026
0ba72ce
Merge pull request #2361 from zhouguangyuan0718/codex/release-content…
xushiwei Aug 18, 2026
cf91afb
Merge pull request #2359 from visualfc/codex/fix-alt-runtime-toolchain
xushiwei Aug 18, 2026
b58ce5c
cl: stabilize generic local ABI names across cache loads
cpunion Aug 11, 2026
1bcb70b
test: verify generic local cache cold misses
cpunion Aug 11, 2026
af9eb54
test: align generic local ABI symbol pattern in tplocalclosureiface
cpunion Aug 19, 2026
c519de5
ssa: canonicalize basic aliases in generic symbols
cpunion Jul 30, 2026
0d89245
Merge pull request #2339 from zhouguangyuan0718/codex/cpu-profile-202…
xushiwei Aug 19, 2026
bed9d7c
Merge pull request #2299 from cpunion/codex/fix-generic-local-cache-2297
xushiwei Aug 20, 2026
fbad5e4
internal/packages: eliminate //go:linkname by using public packages.L…
cpunion Aug 20, 2026
3931f73
internal/packages: resolve target GOARCH in computedSizes
cpunion Aug 20, 2026
d56ef0a
internal/packages: address review comments on overlay, module mode, a…
cpunion Aug 20, 2026
2d4b03d
internal/packages: document computedSizes wasm fallback and clean up …
cpunion Aug 20, 2026
f6b02f6
Merge pull request #2367 from cpunion/codex/canonicalize-generic-basi…
xushiwei Aug 20, 2026
0314fae
Merge pull request #2369 from cpunion/codex/refactor-packages
xushiwei Aug 20, 2026
1c196dc
cl, ssa: fix zero-sized global init, fold composite literal alloc sto…
cpunion Aug 20, 2026
f40308e
benchmark: use PR merge-base for baseline and add LTO workload measur…
cpunion Aug 20, 2026
89644a7
cl, ssa: validate load referrer in collectAllocStores, format files, …
cpunion Aug 20, 2026
321773d
benchmark: use hyphen for LTO workload names to avoid markdown escaping
cpunion Aug 20, 2026
1ae16e0
ssa, cl: cover sentinel and alias init paths, and clarify store track…
cpunion Aug 20, 2026
f077ac4
ci: notify compatibility tests for LLGo releases
zhouguangyuan0718 Aug 19, 2026
f3de083
cl, ssa: bind static alloc folding to its destination
cpunion Aug 20, 2026
39e17b7
cl: cover static alloc fallback paths
cpunion Aug 20, 2026
f9fc847
cl: cover foreign alloc index paths
cpunion Aug 20, 2026
a895e9a
cl: support static initializer folding for struct and composite slices
cpunion Aug 20, 2026
1efd309
cl: harden struct slice static initializer folding
cpunion Aug 20, 2026
c8bdb68
build: preserve main package identity for test builds
visualfc Aug 20, 2026
3b3e112
cl: cover static slice terminal fallbacks
cpunion Aug 20, 2026
96a3979
build(deps): bump xgo-dev/setup-benchmark-go-action from 1.0.4 to 1.0.5
dependabot[bot] Aug 21, 2026
cc8f0e8
build(deps): bump xgo-dev/setup-benchmark-go-action/.github/workflows…
dependabot[bot] Aug 21, 2026
0a42fd5
Merge pull request #2366 from zhouguangyuan0718/codex/notify-release-…
xushiwei Aug 21, 2026
0212380
Merge pull request #2370 from visualfc/fortest
xushiwei Aug 21, 2026
d45eaf4
Merge pull request #2376 from cpunion/codex/static-init-on-main
xushiwei Aug 21, 2026
ee3311a
Merge pull request #2378 from cpunion/codex/fold-struct-slice-on-stat…
xushiwei Aug 21, 2026
71c92ca
Merge pull request #2380 from xgo-dev/dependabot/github_actions/xgo-d…
xushiwei Aug 21, 2026
2815db6
Merge pull request #2379 from xgo-dev/dependabot/github_actions/xgo-d…
xushiwei Aug 21, 2026
448debf
build(deps): bump github.com/goplus/mod from 0.21.2 to 0.22.0 and upd…
cpunion Aug 20, 2026
034e2b3
cl: document partial static fold results
cpunion Aug 20, 2026
b6be218
cl: split composite panic regression for bare metal
cpunion Aug 20, 2026
b085b5c
test: bind composite aggregate fixture values
cpunion Aug 20, 2026
0e3cf93
Merge pull request #2377 from cpunion/codex/bump-xtools-v0.49-on-stat…
xushiwei Aug 21, 2026
d2c5ccb
docs: update compatibility and platform status
cpunion Aug 15, 2026
92fe45b
docs: avoid repeating standard library status
cpunion Aug 15, 2026
19cf6e0
docs: lead compiler description with Go
cpunion Aug 15, 2026
0f76327
docs: keep compatibility status concise
cpunion Aug 15, 2026
ffdf04a
docs: clarify C ecosystem and call overhead
cpunion Aug 15, 2026
afd2077
docs: preserve README design intent
cpunion Aug 15, 2026
7506882
docs: retain SSA module description
cpunion Aug 15, 2026
e1a3a4c
docs: sync compatibility references with main
cpunion Aug 21, 2026
067b0fd
Merge pull request #2324 from cpunion/codex/readme-compat-20260815
xushiwei Aug 21, 2026
4be1ad8
Refactor README for Go support section
xushiwei Aug 21, 2026
f57b8ae
Merge pull request #2381 from xgo-dev/xushiwei-patch-1
xushiwei Aug 21, 2026
c99af73
README: Go support
xushiwei Aug 21, 2026
2f83308
Merge pull request #2383 from xushiwei/q
xushiwei Aug 21, 2026
2014384
mod: github.com/xgo-dev/plan9asm v0.5.0
xushiwei Aug 22, 2026
58669fe
docs: retain TinyGo license notices
cpunion Aug 21, 2026
767d2d2
docs: cover distributed third-party licenses
cpunion Aug 22, 2026
2545e03
crosscompile: install full ESP LLVM license
cpunion Aug 22, 2026
33330ad
Update Go support description in README
xushiwei Aug 22, 2026
fd3b287
Merge pull request #2385 from xgo-dev/xushiwei-patch-1
xushiwei Aug 22, 2026
fab68cd
Revise Go support section
xushiwei Aug 22, 2026
8b630ab
Merge pull request #2387 from xgo-dev/xushiwei-patch-1
xushiwei Aug 22, 2026
6b2ef12
test: cover ESP Clang license failure
cpunion Aug 22, 2026
6755a3d
Revise C/C++ support documentation in README
xushiwei Aug 22, 2026
70b7807
Merge pull request #2389 from xgo-dev/xushiwei-patch-1
xushiwei Aug 22, 2026
e86fda8
Merge pull request #2384 from xushiwei/mod
xushiwei Aug 22, 2026
6e6eb71
Merge pull request #2382 from cpunion/codex/tinygo-license-compliance…
xushiwei Aug 22, 2026
31445d3
Fix header for C/C++ standard libraries section
xushiwei Aug 22, 2026
e637b2c
Merge pull request #2390 from xgo-dev/xushiwei-patch-1
xushiwei Aug 22, 2026
d33bdde
ci: limit benchmark notifications to compiler changes
zhouguangyuan0718 Aug 22, 2026
0bc73d9
Add benchmark badge to README
xushiwei Aug 22, 2026
e3f9319
Merge pull request #2392 from xgo-dev/xushiwei-patch-1
xushiwei Aug 22, 2026
d2fe63e
ci: classify benchmark-relevant changes
zhouguangyuan0718 Aug 22, 2026
9734695
chore: ignore Python cache files
zhouguangyuan0718 Aug 22, 2026
3e0fdda
Merge pull request #2391 from zhouguangyuan0718/codex/benchmark-compi…
xushiwei Aug 22, 2026
54f4bcb
cl: extend static initialization for aggregates
zhouguangyuan0718 Aug 22, 2026
0892bfd
cl: tighten aggregate static init fallbacks
zhouguangyuan0718 Aug 23, 2026
f43fca3
cl: cover pointer static init fallbacks
zhouguangyuan0718 Aug 23, 2026
1778da0
ci: rerun checks
zhouguangyuan0718 Aug 23, 2026
e4786ae
Merge pull request #2394 from zhouguangyuan0718/codex/static-init-agg…
xushiwei Aug 23, 2026
f8dffdc
compiler: default optimization level to Oz
zhouguangyuan0718 Aug 22, 2026
0c0b2b2
ltoplugin: follow direct string returns
zhouguangyuan0718 Aug 22, 2026
64d3847
runtime: preserve same-PC line anchor order
zhouguangyuan0718 Aug 22, 2026
f8987d8
test: format noinline directive
zhouguangyuan0718 Aug 22, 2026
a162dfc
test: allow conservative GC roots to settle
zhouguangyuan0718 Aug 23, 2026
6aaf264
compiler: default host optimization to Os
zhouguangyuan0718 Aug 23, 2026
9e5d128
build: compact Darwin size-optimized executables
zhouguangyuan0718 Aug 23, 2026
e70ec24
test: cover Darwin size compaction failures
zhouguangyuan0718 Aug 23, 2026
464fc10
build(deps): bump actions/checkout from 4 to 7
dependabot[bot] Aug 24, 2026
22f51bb
Merge pull request #2399 from xgo-dev/dependabot/github_actions/actio…
xushiwei Aug 24, 2026
daef162
Merge pull request #2393 from zhouguangyuan0718/codex/default-oz-2026…
xushiwei Aug 24, 2026
05a2c74
ssa: lazily generate methodless pointer types
zhouguangyuan0718 Aug 23, 2026
07eb8ef
test: update metadata snapshots for lazy pointer types
zhouguangyuan0718 Aug 24, 2026
e9dbc0b
build: update LLVM bindings to v0.9.7
cpunion Aug 24, 2026
eb60bed
build: honor Go architecture feature settings
cpunion Aug 24, 2026
29a7b08
windows: select native MSVC target triples
cpunion Aug 24, 2026
005b447
build: match Go GOARM suffix parsing
cpunion Aug 24, 2026
c33f88d
ci: verify Windows target configuration
cpunion Aug 24, 2026
c646283
test: skip reflect pointer fixtures on embedded targets
zhouguangyuan0718 Aug 24, 2026
799287b
build: reuse parsed GOARM target settings
cpunion Aug 24, 2026
036cc65
ci: reuse dependency setup on Windows
cpunion Aug 24, 2026
509ec3c
ci: expose generated LLVM metadata during setup
cpunion Aug 24, 2026
b363e05
ci: persist native Windows pkg-config paths
cpunion Aug 24, 2026
0c470d9
ci: install LLVM metadata in the toolchain prefix
cpunion Aug 24, 2026
c14fa5d
build: avoid contradictory ARMv5 target features
cpunion Aug 24, 2026
caa68d3
meta: map package metadata portably
cpunion Aug 24, 2026
a8a1126
crosscompile: lock cache files portably
cpunion Aug 24, 2026
143e4d8
ci: test compiler host portability on Windows
cpunion Aug 24, 2026
c3ff230
test: cover Windows metadata mapping failures
cpunion Aug 24, 2026
4fdb2c4
meta: validate payload symbol references
cpunion Aug 24, 2026
0a82b76
build: model native Windows COFF toolchains
cpunion Aug 24, 2026
3ade24b
clang: write portable Windows response files
cpunion Aug 24, 2026
b1dd270
ssa: emit COMDAT for Windows ODR definitions
cpunion Aug 24, 2026
ec1ff96
build: produce native Windows library outputs
cpunion Aug 24, 2026
9881f24
test: exercise native Windows COFF artifacts
cpunion Aug 24, 2026
9d9ff65
test: run native Windows artifact fixtures
cpunion Aug 24, 2026
a15a923
test: verify MSVC COFF interoperability
cpunion Aug 24, 2026
299d9ae
ci: validate native Windows artifacts
cpunion Aug 24, 2026
e7bb9c3
test: link native Windows CRT hello
cpunion Aug 24, 2026
fc6f85f
test: use exact native library output names
cpunion Aug 24, 2026
583045e
Merge pull request #2396 from zhouguangyuan0718/codex/darwin-size-sym…
xushiwei Aug 24, 2026
49fe28a
build: replace exact Windows outputs without a gap
cpunion Aug 24, 2026
6ed732a
test: validate MSVC tools after compiler lookup
cpunion Aug 24, 2026
3f49ad2
cabi: lower aggregates for Windows MSVC targets
cpunion Aug 15, 2026
c051498
ci: exercise Windows C ABI lowering
cpunion Aug 15, 2026
02101d4
cabi: document and verify MSVC aggregate choices
cpunion Aug 15, 2026
e7bb325
reflect: pass libffi the allocated return buffer
cpunion Aug 15, 2026
8624b1f
ffi: support Windows MSVC targets
cpunion Aug 15, 2026
8947557
ffi: allow selecting native calling conventions
cpunion Aug 17, 2026
78de22e
ffi: use the current runtime module path
cpunion Aug 24, 2026
b7e6040
cabi: preserve Windows variadics and calling conventions
cpunion Aug 24, 2026
ccd297e
ci: verify Windows FFI ABI selection
cpunion Aug 24, 2026
c46ac70
ffi: use the selected ABI for variadic signatures
cpunion Aug 24, 2026
9968206
ffi: clarify Windows import archive selection
cpunion Aug 24, 2026
68e2038
Merge pull request #2397 from zhouguangyuan0718/codex/lazy-ptr-to-thi…
xushiwei Aug 24, 2026
ca3eff7
Merge pull request #2400 from cpunion/codex/windows-r0-target-20260824
xushiwei Aug 24, 2026
47df327
build(deps): bump xgo-dev/setup-benchmark-go-action from 1.0.5 to 1.0.6
dependabot[bot] Aug 25, 2026
cd86e1d
build(deps): bump xgo-dev/setup-benchmark-go-action/.github/workflows…
dependabot[bot] Aug 25, 2026
7b3fc9f
Merge pull request #2401 from cpunion/codex/windows-r1-host-portabili…
xushiwei Aug 25, 2026
50a11c1
Merge pull request #2402 from cpunion/codex/windows-r2-pe-coff-20260824
xushiwei Aug 25, 2026
dcb9130
Merge pull request #2403 from cpunion/codex/windows-r3-cabi-ffi-20260825
xushiwei Aug 25, 2026
e6087a1
Update codecov.yml
xushiwei Aug 25, 2026
1f8cd64
Merge pull request #2410 from xgo-dev/xushiwei-patch-1
xushiwei Aug 25, 2026
694c7cc
Merge pull request #2408 from xgo-dev/dependabot/github_actions/xgo-d…
xushiwei Aug 25, 2026
6fe8bab
Merge pull request #2409 from xgo-dev/dependabot/github_actions/xgo-d…
xushiwei Aug 25, 2026
b1a7f03
feat(llar): add install command wrapper
MeteorsLiu Aug 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
61 changes: 61 additions & 0 deletions .github/actions/setup-demo-deps/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: "Setup Demo Dependencies"
description: "Install dependencies required by the LLGo demo suite"

runs:
using: "composite"
steps:
- name: Install cargs demo library
shell: bash
run: |
set -euo pipefail

case "${RUNNER_OS}" in
Linux)
demo_pkg="cargs_linux_amd64.zip"
;;
macOS)
case "$(uname -m)" in
x86_64)
demo_pkg="cargs_darwin_amd64.zip"
;;
arm64)
demo_pkg="cargs_darwin_arm64.zip"
;;
*)
echo "Unsupported macOS architecture: $(uname -m)" >&2
exit 1
;;
esac
;;
*)
echo "Unsupported runner OS: ${RUNNER_OS}" >&2
exit 1
;;
esac

libs_dir="${GITHUB_WORKSPACE}/_demo/c/cargs/libs"
mkdir -p "${libs_dir}"
wget -P "${libs_dir}" "https://github.com/xgo-dev/llpkg/releases/download/cargs/v1.0.0/${demo_pkg}"
unzip -o "${libs_dir}/${demo_pkg}" -d "${libs_dir}"

for tmpl in "${libs_dir}"/lib/pkgconfig/*.pc.tmpl; do
pc_file="${tmpl%.tmpl}"
sed "s|{{.Prefix}}|${libs_dir}|g" "${tmpl}" > "${pc_file}"
done

echo "PKG_CONFIG_PATH=${libs_dir}/lib/pkgconfig:${PKG_CONFIG_PATH:-}" >> "${GITHUB_ENV}"

- name: Install Python demo dependencies
shell: bash
run: |
set -euo pipefail

pip3.12 install --break-system-packages numpy torch

pcdir="${HOME}/pc"
mkdir -p "${pcdir}"
libdir="$(pkg-config --variable=libdir python-3.12-embed)"
ln -sf "${libdir}/pkgconfig/python-3.12-embed.pc" "${pcdir}/python3-embed.pc"

echo "PKG_CONFIG_PATH=${pcdir}:${PKG_CONFIG_PATH:-}" >> "${GITHUB_ENV}"
echo "LLGO_FULL_RPATH=true" >> "${GITHUB_ENV}"
242 changes: 233 additions & 9 deletions .github/actions/setup-deps/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,37 +5,261 @@ inputs:
description: "LLVM version to install"
required: true
default: "19"
install-llvm:
description: "Whether to install LLVM"
required: false
default: "true"

runs:
using: "composite"
steps:
- name: Set up Windows MSYS2
if: runner.os == 'Windows' && inputs.install-llvm == 'true'
id: msys2
# CLANG64 provides a native Windows LLVM build. It is only the host
# library used by github.com/xgo-dev/llvm; LLGo's target configuration
# independently selects the requested Go target ABI.
uses: msys2/setup-msys2@v2
with:
msystem: CLANG64
path-type: inherit
update: true

- name: Install Windows dependencies
if: runner.os == 'Windows' && inputs.install-llvm == 'true'
shell: msys2 {0}
run: |
set -euo pipefail

llvm_major="${{ inputs.llvm-version }}"
case "$llvm_major" in
19)
llvm_version=19.1.7
package_version=19.1.7-1
;;
*)
echo "unsupported Windows LLVM version: $llvm_major" >&2
exit 1
;;
esac

repo=https://repo.msys2.org/mingw/clang64
prefix=mingw-w64-clang-x86_64
packages=(
"clang-$package_version"
"clang-libs-$package_version"
"compiler-rt-$package_version"
"llvm-$package_version"
"llvm-libs-$package_version"
"lld-$package_version"
"libc++-$package_version"
"libunwind-$package_version"
"gettext-runtime-0.22.5-2"
"libffi-3.4.6-1"
"libiconv-1.17-4"
"libxml2-2.12.9-2"
"xz-5.6.3-3"
"zlib-1.3.1-1"
"zstd-1.5.6-2"
)
urls=()
for package in "${packages[@]}"; do
urls+=("$repo/$prefix-$package-any.pkg.tar.zst")
done

# LLVM 19 packages predate MSYS2's compiler-runtime dependency rename
# from gcc-libs to cc-libs. libc++ 19 already supplies the runtime, so
# satisfy only the renamed package metadata while installing the
# archived, mutually compatible package set.
assumed_cc_runtime="$prefix-cc-libs=$llvm_version"
pacman --noconfirm -U \
--assume-installed "$assumed_cc_runtime" \
"${urls[@]}"
pacman --noconfirm -S --needed \
--assume-installed "$assumed_cc_runtime" \
"$prefix-pkgconf"

for package in clang clang-libs compiler-rt llvm llvm-libs lld libc++ libunwind; do
installed="$(pacman -Q "$prefix-$package" | awk '{print $2}')"
if [[ "$installed" != "$package_version" ]]; then
echo "expected $package $package_version, got $installed" >&2
exit 1
fi
done

# The released LLVM binding discovers its host flags through
# versioned pkg-config metadata. MSYS2 does not ship llvm.pc, so derive
# it from the authoritative llvm-config installation instead of
# leaking global CGO flags into every package in the build.
cflags="$(llvm-config --cflags)"
ldflags="$(llvm-config --ldflags --libs all --system-libs)"
cflags="${cflags//$'\r'/}"
cflags="${cflags//$'\n'/ }"
ldflags="${ldflags//$'\r'/}"
ldflags="${ldflags//$'\n'/ }"
# Install the metadata in CLANG64's standard pkg-config tree. This
# keeps discovery stable for both MSYS2 shells and native Go/CGO
# subprocesses without passing shell-specific temporary paths between
# workflow steps.
pc_dir="$MINGW_PREFIX/lib/pkgconfig"
mkdir -p "$pc_dir"
printf '%s\n' \
"Name: LLVM $llvm_major" \
"Description: LLVM $llvm_major host compiler and linker flags" \
"Version: $llvm_version" \
"Cflags: $cflags" \
"Libs: $ldflags" \
> "$pc_dir/llvm-$llvm_major.pc"

{
echo "CC=clang"
echo "CXX=clang++"
echo "CGO_ENABLED=1"
} >> "$GITHUB_ENV"

if [[ "$(llvm-config --version)" != "$llvm_version" ]]; then
echo "expected LLVM $llvm_version, got $(llvm-config --version)" >&2
exit 1
fi
pkg-config --modversion "llvm-$llvm_major"

- name: Configure Windows SDK and MSVC tools
if: runner.os == 'Windows' && inputs.install-llvm == 'true'
shell: pwsh
env:
MSYS2_LOCATION: ${{ steps.msys2.outputs.msys2-location }}
run: |
$ErrorActionPreference = "Stop"

$vswhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe"
# LLVM 19 predates the Visual Studio 18 STL compatibility floor. Keep
# this pinned lane on VS 2022 instead of selecting a newer toolset
# merely because the runner image also happens to contain one.
$installPath = & $vswhere -latest -products * -version '[17.0,18.0)' `
-requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 `
-property installationPath
if (-not $installPath) {
throw "Visual Studio 2022 C++ tools required by LLVM 19 were not found"
}
Import-Module "$installPath\Common7\Tools\Microsoft.VisualStudio.DevShell.dll"
Enter-VsDevShell -VsInstallPath $installPath `
-SkipAutomaticLocation `
-DevCmdArguments "-arch=x64 -host_arch=x64"

# Clang emits the MSVC ABI but uses the SDK/UCRT selected by the
# Visual Studio developer environment. Persist only the target search
# variables and native tools needed by later composite-action callers.
foreach ($name in @(
"INCLUDE",
"LIB",
"LIBPATH",
"UCRTVersion",
"UniversalCRTSdkDir",
"VCINSTALLDIR",
"VCToolsInstallDir",
"WindowsSdkDir",
"WindowsSDKVersion"
)) {
$value = [Environment]::GetEnvironmentVariable($name)
if ($value) {
Add-Content -Encoding utf8 $env:GITHUB_ENV "$name=$value"
}
}
@("cl.exe", "lib.exe", "link.exe", "rc.exe", "mt.exe") |
ForEach-Object { Split-Path (Get-Command $_).Source } |
Select-Object -Unique |
ForEach-Object { Add-Content -Encoding utf8 $env:GITHUB_PATH $_ }

# MSYS2 stores compiler-rt under its GNU archive name. Clang's MSVC
# target searches the equivalent target-specific COFF layout, so make
# the same archive visible there without changing its ABI or contents.
$clang = Join-Path $env:MSYS2_LOCATION "clang64\bin\clang.exe"
if (-not (Test-Path $clang)) {
throw "LLVM 19 clang was not found at $clang"
}
$resourceDir = (& $clang -print-resource-dir).Trim()
$gnuBuiltins = Join-Path $resourceDir "lib\windows\libclang_rt.builtins-x86_64.a"
if (-not (Test-Path $gnuBuiltins)) {
throw "LLVM 19 compiler-rt archive was not found at $gnuBuiltins"
}
$msvcRuntimeDir = Join-Path $resourceDir "lib\x86_64-pc-windows-msvc"
New-Item -ItemType Directory -Force $msvcRuntimeDir | Out-Null
Copy-Item -Force $gnuBuiltins (Join-Path $msvcRuntimeDir "clang_rt.builtins.lib")

- name: Install macOS dependencies
if: runner.os == 'macOS'
shell: bash
env:
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
run: |
brew update
brew install llvm@${{inputs.llvm-version}} lld@${{inputs.llvm-version}} bdw-gc openssl libffi libuv
brew link --overwrite llvm@${{inputs.llvm-version}} lld@${{inputs.llvm-version}} libffi
echo "$(brew --prefix llvm@${{inputs.llvm-version}})/bin" >> $GITHUB_PATH

# Install LLVM if requested
if [[ "${{ inputs.install-llvm }}" == "true" ]]; then
llvm_formula="llvm@${{inputs.llvm-version}}"
lld_formula="lld@${{inputs.llvm-version}}"

# GitHub macOS runners may pre-link another LLVM/LLD version (for example llvm@18),
# which makes lld@<target> fail during Homebrew's automatic link step.
while IFS= read -r formula; do
case "${formula}" in
llvm|llvm@*|lld|lld@*)
if [[ "${formula}" != "${llvm_formula}" && "${formula}" != "${lld_formula}" ]]; then
brew unlink "${formula}" || true
fi
;;
esac
done < <(brew list --formula)

brew install "${llvm_formula}" "${lld_formula}"
brew link --force --overwrite "${llvm_formula}" "${lld_formula}"
llvm_bin="$(brew --prefix "${llvm_formula}")/bin"
lld_bin="$(brew --prefix "${lld_formula}")/bin"
echo "${llvm_bin}" >> "$GITHUB_PATH"

# Print resolved toolchain versions for CI diagnostics.
echo "LLVM/LLD versions:"
brew list --versions "${llvm_formula}" "${lld_formula}"
clang_version="$("${llvm_bin}/clang" --version | head -n 1)"
lld_version="$("${lld_bin}/ld.lld" --version | head -n 1)"
echo "clang: ${clang_version}"
echo "ld.lld: ${lld_version}"
echo "linked ld.lld path: $(command -v ld.lld || true)"
fi

# Install common dependencies
brew install bdw-gc openssl libffi libuv
brew link --overwrite libffi

# Install optional deps for demos.
#
# NOTE: Keep this list updated as new deps are introduced.
opt_deps=(
cjson # for github.com/goplus/lib/c/cjson
sqlite # for github.com/goplus/lib/c/sqlite
python@3.12 # for github.com/goplus/lib/py
)
brew install "${opt_deps[@]}"

brew install python@3.12 || true # for github.com/goplus/lib/py
brew link --overwrite python@3.12

- name: Install Ubuntu dependencies
if: runner.os == 'Linux'
shell: bash
run: |
echo "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-${{inputs.llvm-version}} main" | sudo tee /etc/apt/sources.list.d/llvm.list
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo apt-get update
sudo apt-get install -y llvm-${{inputs.llvm-version}}-dev clang-${{inputs.llvm-version}} libclang-${{inputs.llvm-version}}-dev lld-${{inputs.llvm-version}} libunwind-${{inputs.llvm-version}}-dev libc++-${{inputs.llvm-version}}-dev pkg-config libgc-dev libssl-dev zlib1g-dev libffi-dev libcjson-dev libuv1-dev
echo "PATH=/usr/lib/llvm-${{inputs.llvm-version}}/bin:$PATH" >> $GITHUB_ENV
# Install LLVM if requested
if [[ "${{ inputs.install-llvm }}" == "true" ]]; then
echo "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-${{inputs.llvm-version}} main" | sudo tee /etc/apt/sources.list.d/llvm.list
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo apt-get update
sudo apt-get install -y llvm-${{inputs.llvm-version}}-dev clang-${{inputs.llvm-version}} libclang-${{inputs.llvm-version}}-dev lld-${{inputs.llvm-version}} libunwind-${{inputs.llvm-version}}-dev libc++-${{inputs.llvm-version}}-dev
echo "PATH=/usr/lib/llvm-${{inputs.llvm-version}}/bin:$PATH" >> $GITHUB_ENV
else
sudo apt-get update
fi

# Install common dependencies
sudo apt-get install -y pkg-config libgc-dev libssl-dev zlib1g-dev libffi-dev libcjson-dev libuv1-dev

# Install optional deps for demos.
#
Expand Down
37 changes: 37 additions & 0 deletions .github/actions/setup-embed-deps/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: "Setup Embedded Dependencies"
description: "Install dependencies required for embedded QEMU tests"

runs:
using: "composite"
steps:
- name: Install macOS embedded dependencies
if: runner.os == 'macOS'
shell: bash
env:
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
run: |
brew update
brew install sdl2

- name: Install Ubuntu embedded dependencies
if: runner.os == 'Linux'
shell: bash
run: |
sudo apt-get update
sudo apt-get install -y libsdl2-2.0-0 libslirp0

- name: Install ESP QEMU toolchains
shell: bash
run: |
chmod +x .github/workflows/install-esp-qemu.sh
QEMU_DIR=".cache/qemu"
.github/workflows/install-esp-qemu.sh "$QEMU_DIR"
echo "${PWD}/${QEMU_DIR}/bin" >> $GITHUB_PATH

- name: Verify ESP QEMU installation
shell: bash
run: |
which qemu-system-riscv32
which qemu-system-xtensa
qemu-system-riscv32 --version
qemu-system-xtensa --version
Loading
Loading