Go support
LLGo v1.0 is compatible with Go 1.20+ source code and supports the complete Go 1.26 language syntax, as well as cgo.
Compatibility is checked against applicable upstream GOROOT/test cases using pinned Go 1.25 and Go 1.26 toolchains. Remaining applicable differences are recorded in xfail.yaml; gc-specific mechanisms outside LLGo's compatibility goals are documented in notapplicable.yaml.
Runtime
LLGo uses a different runtime from the standard Go toolchain. Native goroutines map 1:1 to OS threads with fixed native stacks, so direct C calls require no Go-to-C stack or scheduler transition, avoiding the cgo overhead that makes frequent C calls costly in standard Go.
The default garbage collector is conservative BDWGC (also known as libgc). Bare-metal embedded targets instead use a TinyGo-derived conservative mark-and-sweep collector.
Garbage collection can be disabled with the nogc build tag. For example:
llgo run -tags nogc .Standard libraries
LLGo fully supports the Go standard library on supported native platforms. CI requires compatibility coverage for every public package and exported symbol in the primary Go toolchain, and runs test/std with both supported toolchains.
Other targets may not provide every OS service or implementation-specific runtime behavior.
| Target | Current coverage |
|---|---|
| Native | Linux amd64/arm64 and macOS amd64/arm64 release artifacts; primary CI on Linux amd64 and macOS arm64 |
| WebAssembly | js/wasm and wasip1/wasm builds; WASI and Emscripten CI coverage |
| Embedded | -target configurations for supported boards and MCUs, with selected QEMU/emulator smoke tests |
What's Changed
- runtime: fix darwin syscall errno detection on amd64 by @luoliwoshang in #1655
- fix: generate valid LLVM IR for struct/ABI lowering by @zhouguangyuan0718 in #1693
- fix: normalize 32-bit slice bounds by @luoliwoshang in #1680
- test(esp32c3): expand emulator coverage and CI split by @luoliwoshang in #1567
- clite/syscall: remove sync from getenv by @cpunion in #1711
- build: return errors for invalid cmptest patterns by @cpunion in #1709
- fix(cl,ssa,runtime): route sync/atomic builtins through action-aware lowering by @zhouguangyuan0718 in #1704
- ci(macos): handle llvm/lld brew link conflicts on macos-15-intel by @luoliwoshang in #1731
- test(embed): establish esp32 emulator test baselines (demo + cl) by @luoliwoshang in #1715
- fix(ssa): use float-to-int conversion for float-to-uintptr cast by @fennoai[bot] in #1733
- fix(esp32c3): fix uninitialized st_blksize UB in mixed stdio path by @luoliwoshang in #1729
- ci: refresh esp32c3-basic ignore reasons from single-case rerun by @luoliwoshang in #1744
- internal/lib/runtime: missing func for build golang.org/x/tools/go by @visualfc in #1735
- cl: handle unnamed closure free vars in makeClosureCtx by @visualfc in #1734
- ssa/abi: fix interfaceName check by private method pkg path by @visualfc in #1739
- test: fix cursor coverage across CI and esp targets by @luoliwoshang in #1746
- ssa: resolve runtime linknames before rtFunc lookup by @cpunion in #1698
- runtime: fix nil C string handling by @cpunion in #1696
- runtime: wake select receivers for unbuffered sends by @cpunion in #1691
- runtime/internal/lib/runtime: remove deps time by @visualfc in #1748
- runtime: avoid alt-only itoa dependency in reflect by @cpunion in #1754
- internal/build: pkgSFiles cmd use pkg.Dir by @visualfc in #1749
- runtime/internal/lib/reflect: MakeChan by @visualfc in #1751
- ssa: check initAbiTypes by call reflect flag by @visualfc in #1726
- chore(deps): bump github.com/qiniu/x from 1.16.3 to 1.16.5 by @dependabot[bot] in #1718
- test(gc): improve GC runtime tests for ESP32/ESP32-C3 and align linker scripts by @MeteorsLiu in #1712
- chore(deps): bump github.com/goplus/gogen from 1.21.2 to 1.21.5 by @dependabot[bot] in #1764
- chore(deps): bump github.com/qiniu/x from 1.16.5 to 1.17.0 by @dependabot[bot] in #1766
- cltest: allow cached run builds by @luoliwoshang in #1767
- cl, ssa: wrap debug-only logging behind helper functions by @fennoai[bot] in #1770
- chore(deps): bump github.com/goplus/gogen from 1.21.5 to 1.22.0 by @dependabot[bot] in #1776
- test: add source-embedded FileCheck support for IR cases by @zhouguangyuan0718 in #1775
- test: migrate _testdata IR cases to source checks by @zhouguangyuan0718 in #1780
- test: migrate _testgo IR cases to source checks by @zhouguangyuan0718 in #1782
- plan9asm v0.2.1 by @xushiwei in #1785
- test: fix _testgo source checks cases reasonable by @zhouguangyuan0718 in #1783
- chore(deps): bump github.com/goplus/mod from 0.19.5 to 0.20.2 by @dependabot[bot] in #1784
- chore(deps): bump github.com/mattn/go-tty from 0.0.7 to 0.0.8 by @dependabot[bot] in #1787
- test: migrate _testlibgo/_testlibc IR cases to source checks by @zhouguangyuan0718 in #1786
- cltest: combine IR and runtime golden checks by @luoliwoshang in #1771
- test: migrate _testpy/_testrt IR cases to source checks by @zhouguangyuan0718 in #1791
- chore: update claude model by @CarlJi in #1788
- runtime: ignore blank fields in struct equality by @cpunion in #1796
- runtime: match builtin print float formats by @cpunion in #1794
- test: migrate _testpy/_testrt IR cases to source checks part2 by @zhouguangyuan0718 in #1811
- test: add litgen tool for source IR checks by @zhouguangyuan0718 in #1812
- cl: compute promoted field offsets by @cpunion in #1798
- build: generate cgo malloc wrapper symbols by @cpunion in #1799
- runtime: match full slice bounds panic text by @cpunion in #1801
- cl: skip unused array derefs in range by @cpunion in #1802
- runtime: delay map iterator advance by @cpunion in #1803
- chore(deps): bump github.com/goplus/llvm from 0.8.7 to 0.8.8 by @dependabot[bot] in #1825
- build: add no-pie for linux host executables by @cpunion in #1804
- build: preserve single-case select receive order by @cpunion in #1805
- ssa: apply assignment conversions in value checks by @cpunion in #1808
- cabi: materialize aggregate call arguments by @cpunion in #1809
- runtime: panic with runtime error for interface equality by @cpunion in #1813
- ssa: reject nil interfaces in same-type asserts by @cpunion in #1814
- ssa: unify zero-sized globals and heap allocs by @cpunion in #1817
- runtime: keep string base for empty suffix slices by @cpunion in #1815
- ssa: format reflected generic type args with package names by @cpunion in #1816
- ssa: align direct interface ABI by @cpunion in #1806
- ssa: expose closure params as func types by @cpunion in #1807
- ssa: preserve nil pointer panic for large interface loads by @cpunion in #1821
- runtime: fix mixed unbuffered select progress by @cpunion in #1818
- ssa: use unsigned upper-bound checks by @cpunion in #1800
- fix: rewrite range-over-func defer-stack lowering by @cpunion in #1826
- test: fix source check with run test by @zhouguangyuan0718 in #1824
- runtime: match Go complex division semantics by @cpunion in #1792
- ssa: handle recursive named function types by @cpunion in #1797
- ssa: distinguish generic local runtime types by @cpunion in #1819
- build: prototype source patches for stdlib compat by @cpunion in #1758
- build: add go versioned source patch plumbing by @cpunion in #1759
- runtime: add go1.26 source patch payloads by @cpunion in #1828
- build: support cgo C++ companion sources by @cpunion in #1827
- build: emit native objects in memory by @zhouguangyuan0718 in #1823
- ssa: make integer div rem lowering safe by @cpunion in #1829
- ssa: preserve range for string conversions by @cpunion in #1795
- test: cover LLGo directive comments by @cpunion in #1834
- ssa: fix zero-value map indexing by @zhouguangyuan0718 in #1835
- ssa,test: lower builtin panic in defer paths by @zhouguangyuan0718 in #1839
- ssa: keep goroutine startup data gc visible by @cpunion in #1830
- chore(deps): bump codecov/codecov-action from 5 to 6 by @dependabot[bot] in #1755
- build: support optimization flags for in-memory compilation by @zhouguangyuan0718 in #1836
- test: add goroot runner and xfail matrix by @cpunion in #1837
- gopkg.in/yaml.v3 => go.yaml.in/yaml/v3 by @xushiwei in #1840
- goplus/llgo => xgo-dev/llgo by @xushiwei in #1843
- doc verify by @xushiwei in #1845
- fix ci goroot stack flake and docs embeds by @cpunion in #1846
- test: mark Go 1.24 darwin stack goroot case flaky by @cpunion in #1849
- github.com/goplus/llvm => github.com/xgo-dev/llvm by @xushiwei in #1850
- ci: predownload modules for GOROOT workflow by @cpunion in #1851
- ci: disable automatic GOROOT workflow by @cpunion in #1852
- ssa: handle union types in type conversion by @zhouguangyuan0718 in #1848
- cgo: fix int-size adaptation and add LIT tests by @zhouguangyuan0718 in #1847
- runtime/internal/clite/os: fix readdir_s deprecated on macOS 26 by @visualfc in #1861
- cl: fix generic wrapper link symbols by @zhouguangyuan0718 in #1871
- ssa: rebuild named closure values for changetype by @zhouguangyuan0718 in #1864
- support golang.org/x/sys/unix by @visualfc in #1869
- runtime/internal/clite/os: remove os_darwin c wrap by @visualfc in #1873
- ssa: preserve struct tags during type conversion by @zhouguangyuan0718 in #1875
- runtime: add runtime/metrics Read support by @zhouguangyuan0718 in #1907
- runtime: fix reflect Call word arguments by @zhouguangyuan0718 in #1908
- ssa: use Go type identity for named closure changetype by @zhouguangyuan0718 in #1876
- test/goroot: fix bug449 runoutput handling by @cpunion in #1923
- fix recursive named pointer types by @cpunion in #1922
- fix panic for nil value method wrappers by @cpunion in #1921
- cl: report makeslice len/cap panic before indexing by @cpunion in #1919
- reflect: fix type metadata and MakeFunc results by @cpunion in #1916
- Fix generic unsafe.Sizeof arithmetic by @cpunion in #1913
- cl: guard zero-sized interface deref by @cpunion in #1912
- reflect: handle empty fields in FFI struct calls by @cpunion in #1897
- runtime: short-circuit struct equality before string bodies by @cpunion in #1895
- runtime: fix nil and closed channel select semantics by @cpunion in #1894
- fix empty string slice conversions by @cpunion in #1893
- fix unsafe builtin bounds checks by @cpunion in #1888
- fix unbuffered channel range close race by @cpunion in #1886
- Revert "fix unsafe builtin bounds checks" by @xushiwei in #1931
- ssa: restore unsafe builtin bounds checks by @cpunion in #1933
- runtime: add minimal MemProfile allocation records by @cpunion in #1902
- runtime: report BDWGC cycles in MemStats by @cpunion in #1891
- fix generic local runtime type names by @cpunion in #1879
- runtime: grow zero-sized append slices by @cpunion in #1877
- cl: avoid repeated loop search in block ordering by @zhouguangyuan0718 in #1936
- ssa: fix ABI layout for function fields by @zhouguangyuan0718 in #1934
- Add reflect runtime link symbols by @zhouguangyuan0718 in #1939
- Add xsys unix NoError syscalls by @zhouguangyuan0718 in #1940
- Fix generic link symbol emission by @zhouguangyuan0718 in #1938
- fix bounds panic messages by @cpunion in #1901
- ssa: panic on static nil dereference by @cpunion in #1890
- runtime: match legacy print float exponents by @cpunion in #1887
- Fix reflect Type method funcs by @cpunion in #1880
- build: finalize embedded python before exit by @cpunion in #1707
- runtime: match legacy complex print exponents by @cpunion in #1889
- Relax litgen function header checks by @zhouguangyuan0718 in #1941
- ci: move llama model demo out of PR workflow and fix print expectation by @cpunion in #1945
- ci: reduce duplicate macOS PR jobs by @cpunion in #1946
- fix zero-sized deref comparisons by @cpunion in #1920
- ssa: handle recursive pointer type names by @cpunion in #1909
- runtime/internal/lib/syscall: impl syscall.RawSyscall on macOS by @visualfc in #1863
- build: support explicit LTO modes by @zhouguangyuan0718 in #1942
- runtime/internal/lib/reflect: fix reflect.New(At) for closure by @visualfc in #1956
- runtime/internal/lib/reflect: fix rtype.PkgPath for named unsafe.pointer by @visualfc in #1952
- ssa: avoid branching after panic in deferred calls by @zhouguangyuan0718 in #1950
- build(deps): bump codecov/codecov-action from 6 to 7 by @dependabot[bot] in #1948
- Integrate ARM plan9asm support in llgo by @cpunion in #1955
- runtime: classify recovered runtime panics by @cpunion in #1904
- Fix slice-to-array conversion panics by @cpunion in #1899
- fix channel capacity and close handoff semantics by @cpunion in #1878
- test: use LLVM FileCheck for LITTEST by @zhouguangyuan0718 in #1943
- runtime: preserve interface compare panic errors by @cpunion in #1898
- ssa: fix reflect.Value.Slice for pkg.NeedAbiInit by @visualfc in #1960
- fix(build): default non-constant untyped shifts by @cpunion in #1911
- runtime/internal/lib/reflect: fix PointerTo star by @visualfc in #1962
- runtime/internal/lib/reflect: makeFunc support method by @visualfc in #1964
- runtime/internal/lib/reflect: fix named func type by @visualfc in #1958
- runtime/internal/ffi: fix StructOf/ArrayOf for empty by @visualfc in #1971
- runtime/internal/lib/reflect: fix ffiToValue func to closure by @visualfc in #1969
- runtime/internal/lib/reflect: fix toFuncType/toClosureType memoryset by @visualfc in #1973
- build(deps): bump github.com/xgo-dev/llvm from 0.9.0 to 0.9.2 by @dependabot[bot] in #1975
- build(deps): bump actions/checkout from 6 to 7 by @dependabot[bot] in #1974
- fix nil switch lowering by @cpunion in #1883
- runtime: run BDWGC finalizers after collection by @cpunion in #1881
- build(deps): bump github.com/qiniu/x from 1.17.0 to 1.18.0 by @dependabot[bot] in #1965
- cl: compileValue wrapper llgoInstr to ssa.Call by @visualfc in #1983
- runtime/internal/lib/reflect: MakeFunc keep alive for bdw-gc by @visualfc in #1980
- build(deps): bump github.com/goplus/mod from 0.20.2 to 0.20.3 by @dependabot[bot] in #1979
- support Go global DCE with full LTO by @zhouguangyuan0718 in #1967
- fix(build): avoid stale main cache for LTO linking by @zhouguangyuan0718 in #1990
- runtime/internal/lib/reflect: impl VisibleFields by @visualfc in #1988
- fix nil/bounds/make panic semantics by @cpunion in #1915
- runtime/internal/lib/reflect: impl SliceAt by @visualfc in #1987
- build(deps): bump actions/checkout from 6 to 7 by @dependabot[bot] in #1984
- mod gogen v1.23.5 by @xushiwei in #1992
- ssa: use overloaded LLVM intrinsics by @zhouguangyuan0718 in #1991
- mod llvm v0.9.3 by @xushiwei in #1994
- build(deps): bump github.com/goplus/mod from 0.20.3 to 0.21.1 by @dependabot[bot] in #1993
- mv github.com/sigurn/crc16 => internal/crc16; github.com/marcinbor85/gohex => internal/gohex by @xushiwei in #1995
- Fix nil deref checks for address expressions by @cpunion in #1896
- fix reflect MakeFunc goroutine liveness by @cpunion in #1900
- fix nil receiver method dispatch checks by @cpunion in #1885
- refine GlobalDCE method identity and symbol checks by @zhouguangyuan0718 in #1996
- ssa: abitype fix named interface uncommontype by @visualfc in #1998
- runtime/internal/lib/reflect: fix MakeFunc keepalive mutex by @visualfc in #2007
- fixed:align stripped itab entries with Go runtime by @luoliwoshang in #2008
- runtime/internal/lib/reflect: fix convert for int/float/func by @visualfc in #2005
- ssa/abi: fix named tflag unset TFlagExtraStar by @visualfc in #2001
- runtime/internal/lib/reflect: fix ChanOf PtrToThis by @visualfc in #2014
- runtime/internal/lib/reflect: fix runtimeStructField func type to closure by @visualfc in #2017
- runtime/internal/lib/reflect: fix toFFIArg interface itab by @visualfc in #2021
- runtime: avoid stale unbuffered receive waits by @zhouguangyuan0718 in #2003
- runtime: use hchan-style channel queues by @zhouguangyuan0718 in #2030
- runtime: serialize sync pool proc pin by @zhouguangyuan0718 in #2039
- runtime: add pthread stack size build flag by @zhouguangyuan0718 in #2038
- runtime/internal/lib/runtime: add missing type/functions by @visualfc in #2037
- Refine LTO reflect MethodByName handling by @zhouguangyuan0718 in #2029
- cltest: share one go-build cache across captured runs by @cpunion in #2035
- runtime: nanosecond monotonic clock; fix Linux clock IDs by @cpunion in #2015
- runtime,cl,build: Go-style caller info — funcinfo tables, link-phase pcln, FP unwinder, gc-verified conformance (stage-5 backbone) by @cpunion in #2024
- README: rm Report Card by @xushiwei in #2050
- ssa,cl,build: release per-compile memory in in-process drivers by @cpunion in #2048
- runtime/internal/lib/reflect: fix reflect.call include closure type in outputs by @visualfc in #2051
- Infer LTO MethodByName names through control flow by @zhouguangyuan0718 in #2041
- runtime: recoverable hardware faults with fault-site stacks (dynamic libunwind + FP chain) by @cpunion in #2028
- codecov: ign cmd & xtools by @xushiwei in #2057
- Update codecov.yml by @xushiwei in #2058
- Update codecov.yml by @xushiwei in #2059
- runtime/internal/lib/sync: fix sync.Pool for pthread by @visualfc in #2032
- ssa: avoid unused unexported method names by @luoliwoshang in #2056
- Fold static global literal initializers by @zhouguangyuan0718 in #2040
- Read LTO MethodByName names from global initializers by @zhouguangyuan0718 in #2042
- Infer LTO MethodByName names through string concatenation by @zhouguangyuan0718 in #2043
- codecov: configuration format changed by @xushiwei in #2060
- runtime/internal/lib/reflect: fix missing closure in exported type by @visualfc in #2054
- ltoplugin: propagate MethodByName names through function args by @zhouguangyuan0718 in #2067
- cmd: add GOROOT compile-test adapter by @cpunion in #2066
- cl: handle SSA field values in unsafe.Offsetof by @cpunion in #2068
- cl: accept select output without sender print by @cpunion in #2072
- runtime/internal/lib/reflect: fix makeFunc include closure type in outputs by @visualfc in #2087
- test(goroot): enable complete Go 1.26 coverage by @cpunion in #2065
- ltoplugin: analyze MethodByName names from string slices by @zhouguangyuan0718 in #2073
- ssa: normalize map reserve to int width by @zhouguangyuan0718 in #2092
- runtime/internal/lib/reflect: fix toRuntimeTypes for bdw-gc by @visualfc in #2089
- rm $/codecov.yml by @xushiwei in #2094
- build: preserve module context for asm file lookup by @zhouguangyuan0718 in #2093
- build(deps): bump actions/setup-node from 6 to 7 by @dependabot[bot] in #2091
- build(deps): bump actions/setup-go from 6 to 7 by @dependabot[bot] in #2114
- runtime/internal/lib/reflect: fix storeRcvr for embed by @visualfc in #2107
- test/goroot: match exact parser recovery diagnostics by @cpunion in #2105
- test/goroot: normalize go/types diagnostics by @cpunion in #2104
- ci: pin Go 1.26 across CI and release pipelines by @cpunion in #2108
- [Based on #2108] ci: focus compatibility matrix on Go 1.24 and 1.26 by @cpunion in #2110
- build: add initial -ldflags -s and -w support by @cpunion in #2113
- abi: lower large aggregate returns indirectly by @cpunion in #2123
- runtime: add configurable pclntab packaging by @cpunion in #2120
- cmd: make -v Go-compatible and add compiler verbosity flags by @cpunion in #2078
- build: make c-shared and c-archive outputs usable from C by @cpunion in #2083
- build(deps): bump github.com/xgo-dev/llvm from 0.9.3 to 0.9.5 by @dependabot[bot] in #2124
- build: fix C library DWARF defaults and runtime initialization by @cpunion in #2125
- cmd/internal/compile: accept SSA check seed by @cpunion in #2099
- cl: keep pcline anchors valid under full LTO by @zhouguangyuan0718 in #2097
- ltoplugin: analyze MethodByName names through bounded loops by @zhouguangyuan0718 in #2126
- plan9asm: map runtime.memmove to libc by @zhouguangyuan0718 in #2127
- ssa,runtime: gc-conformant type-assertion panics and go:nointerface support by @cpunion in #2031
- test/goroot: cover loader frontend diagnostics by @cpunion in #2102
- internal/cabi: optimize type checks by @visualfc in #2133
- cl: statically initialize global slice literals by @zhouguangyuan0718 in #2138
- debug: establish Go DWARF foundation with stock LLDB support by @cpunion in #2141
- fix(compile): support standard pragma validation by @MeteorsLiu in #2161
- test(goroot): Skip write barrier checks as not applicable by @MeteorsLiu in #2162
- ci: trigger benchmarks after LLGo main updates by @zhouguangyuan0718 in #2163
- build(deps): bump github.com/xgo-dev/plan9asm from 0.3.2 to 0.3.3 by @dependabot[bot] in #2160
- build: separate LTO plugin cache entries by @zhouguangyuan0718 in #2147
- runtime/internal/lib/runtime: add synctest missing func by @visualfc in #2150
- ssa: fix alias recv type by @visualfc in #2169
- lto: analyze aggregate MethodByName string arguments by @cpunion in #2159
- meta: emit and cache package semantic summaries by @luoliwoshang in #2061
- WIP: add metadata package summary model by @luoliwoshang in #1866
- build: add link-time dead method elimination by @luoliwoshang in #1868
- [WIP] feat: mmap-based package summary cache format (internal/meta) by @luoliwoshang in #1989
- internal/build: fix library cort init by @visualfc in #2168
- runtime: store goroutine state behind pthread-key getg by @cpunion in #2090
- fix(build): adapt Go runtime sources for LLGo wasm32 by @cpunion in #2082
- fix(runtime): decouple wasm from native host services by @cpunion in #2081
- ssa: implement -B bounds-check disabling by @cpunion in #2106
- runtime: support large funcinfo string tables by @cpunion in #2187
- runtime: support Go 1.26 stdlib calls from C libraries by @cpunion in #2098
- [Based on #2098] runtime,test: complete Go 1.26 standard-library coverage by @cpunion in #2134
- runtime: start FP walks from a live caller frame by @cpunion in #2151
- cl: run defers before loading named results by @zhouguangyuan0718 in #2186
- debug: handle storage-free Python attributes by @cpunion in #2145
- Update codecov.yml by @xushiwei in #2199
- runtime: introduce G/M/P pthread backend by @cpunion in #2166
- build(deps): bump github.com/xgo-dev/plan9asm from 0.3.3 to 0.3.5 by @dependabot[bot] in #2189
- build(deps): bump go.yaml.in/yaml/v3 from 3.0.4 to 3.0.5 by @dependabot[bot] in #2190
- test: parallelize llgo test packages by @cpunion in #2193
- internal/build: fix linkname support main.sym by @visualfc in #2155
- internal/build: use self overlay replace packages.config.overlay by @visualfc in #2194
- compiler/runtime: add //llgo:tls and //llgo:gls package variables by @cpunion in #2079
- ci: install libslirp for ESP QEMU by @cpunion in #2215
- test/goroot: match missing-comma recovery diagnostics by @cpunion in #2218
- ci: avoid duplicate feature branch push runs by @cpunion in #2228
- ci: add lightweight Linux and macOS baseline benchmarks by @cpunion in #2200
- test(std/os/signal): tolerate signal delivery order by @MeteorsLiu in #2233
- cmd: add LLGo-aware LLDB launcher with schema validation by @cpunion in #2211
- runtime,cl: preserve panic-site frames across defer and recover by @cpunion in #2026
- fix(locality): retain alternate package declaration owners by @cpunion in #2209
- runtime: migrate local state to locality directives by @cpunion in #2210
- build: isolate invocation configuration and execution by @zhouguangyuan0718 in #2212
- ci: deploy published benchmark data by @cpunion in #2237
- compiler: always use main symbol prefix by @zhouguangyuan0718 in #2246
- Update badge link for XGo project in README by @xushiwei in #2249
- Update links to goplus/llgo in README.md by @xushiwei in #2250
- cmd: add LLDB runtime views for strings and slices by @cpunion in #2240
- compiler: isolate per-invocation frontend state by @zhouguangyuan0718 in #2221
- build: Go Linktime-like Unreachable Method Pruning by @luoliwoshang in #1736
- ci: publish benchmarks in repository Pages by @cpunion in #2268
- build: split package compilation stages by @zhouguangyuan0718 in #2175
- test/goroot: separate not-applicable cases by @cpunion in #2260
- feat: add hidden closure environment ABI by @cpunion in #2255
- ci: compare benchmarks on the same runner by @cpunion in #2271
- ssa/wasm: use selectors for Rund and Reth continuations by @cpunion in #2208
- cl: fold constant comparisons before lowering by @cpunion in #2257
- runtime: keep workers alive after main Goexit by @cpunion in #2259
- fix: prefer compiler syntax diagnostics by @MeteorsLiu in #2274
- debug: keep optimization and SSA rewrites DWARF-safe by @cpunion in #2143
- ssa: make recursive type conversion order-independent by @zhouguangyuan0718 in #2280
- build: prepare read-only package backend state by @zhouguangyuan0718 in #2282
- runtime: drain BDWGC finalizers during explicit GC by @cpunion in #2283
- build(deps): bump xgo-dev/setup-benchmark-go-action from 1 to 1.0.3 by @dependabot[bot] in #2277
- build: schedule package initialization in Go order by @cpunion in #2254
- test: use shared repository root helper by @cpunion in #2288
- test: replace cl out.ll files with LIT checks by @cpunion in #2281
- test/goroot: synchronize native run expectations by @cpunion in #2264
- build(deps): bump setup-benchmark-go-action from 1.0.3 to 1.0.4 by @cpunion in #2292
- ssa,runtime: make panic and recover Go-compatible by @cpunion in #2034
- build: run LLVM package backends in parallel by @zhouguangyuan0718 in #2182
- chore/litgen: preserve declaration directives by @cpunion in #2289
- cl: prepare caller tracking inputs once by @zhouguangyuan0718 in #2286
- runtime: replace superseded panics across nested defer frames by @cpunion in #2295
- ssa: preserve package identity for unexported methods by @cpunion in #2258
- runtime/internal/runtime/goarch: fix endian by @visualfc in #2301
- runtime: call finalizers with their dynamic ABI by @cpunion in #2296
- Reposition explicitEnv field in finalizerEntry struct by @xushiwei in #2303
- build(deps): bump xgo-dev/setup-benchmark-go-action/.github/workflows/publish.yml from 1 to 1.0.3 by @dependabot[bot] in #2278
- build: add Chrome scheduler trace by @zhouguangyuan0718 in #2243
- cl: support package-scoped go:linkname by @visualfc in #2287
- cl: preserve generic local type identity in nested closures by @cpunion in #2229
- build(deps): bump benchmark publisher to 1.0.4 by @cpunion in #2317
- test/goroot: classify precise GC and nil-check cases by @cpunion in #2313
- chore(litgen): add updater and curated FileCheck snapshots by @zhouguangyuan0718 in #2307
- test: refresh library FileCheck fixtures by @zhouguangyuan0718 in #2308
- test: refresh control-flow FileCheck fixtures by @zhouguangyuan0718 in #2309
- test: refresh runtime FileCheck fixtures by @zhouguangyuan0718 in #2311
- test: refresh language FileCheck fixtures by @zhouguangyuan0718 in #2310
- build(deps): bump github.com/goplus/mod from 0.21.1 to 0.21.2 by @dependabot[bot] in #2323
- pclnpost: physically compact the deduplicated funcinfo carrier by @zhouguangyuan0718 in #2267
- ssa: match gc float-to-integer conversions on amd64 by @cpunion in #2315
- ssa: saturate float-to-uint32 conversions by @cpunion in #2253
- ssa: honor saturating uint32 conversion on amd64 by @cpunion in #2329
- fix: align indirect map slot sizes by @visualfc in #2326
- runtime: add optimized map fast paths by @visualfc in #2306
- refactor(runtime): reuse more official stdlib sources by @cpunion in #2331
- runtime: fix runtime.Stack goroutine id by @visualfc in #2225
- cl: preserve nil checks for unused dereferences by @cpunion in #2316
- cl: preserve unnamed rangefunc defer results by @cpunion in #2312
- runtime: support assignable finalizer arguments by @cpunion in #2300
- cl: preserve zero values for blank struct fields by @cpunion in #2231
- build(deps): bump github.com/qiniu/x from 1.18.0 to 1.18.3 by @dependabot[bot] in #2341
- cl: preserve recover-visible panic source lines by @cpunion in #2293
- modpath: github.com/goplus/llgo => github.com/xgo-dev/llgo by @xushiwei in #2348
- fix: repair module path CI regressions by @zhouguangyuan0718 in #2349
- fix(build): skip asm scan for synthetic test main by @visualfc in #2347
- runtime: restore native process-entry caller tail by @cpunion in #2314
- test: refresh module path expectations by @zhouguangyuan0718 in #2350
- go1.25 by @xushiwei in #2346
- test: support target-matrix and post-ABI IR checks by @zhouguangyuan0718 in #2319
- mod: github.com/goplus/mod v0.22.0; golang.org/x/tools v0.49.0 by @xushiwei in #2355
- Revert "mod: github.com/goplus/mod v0.22.0; golang.org/x/tools v0.49.0" by @xushiwei in #2357
- runtime: bridge cgroup throw for Go 1.25 by @visualfc in #2356
- runtime: fix trace stop deadlock on Go 1.25 by @visualfc in #2358
- cl: deduplicate same-line panic PC anchors by @zhouguangyuan0718 in #2360
- build: inherit host args in c-shared libraries by @visualfc in #2353
- ssa: isolate index range panic path by @visualfc in #2344
- ci: allow release job to publish artifacts by @zhouguangyuan0718 in #2361
- build: align alternate runtime Go toolchain by @visualfc in #2359
- runtime: support native CPU profiling by @zhouguangyuan0718 in #2339
- cl: stabilize generic local ABI names across cache loads by @cpunion in #2299
- ssa: canonicalize basic aliases in generic symbols by @cpunion in #2367
- internal/packages: eliminate //go:linkname and decouple from x/tools internals by @cpunion in #2369
- ci: notify compatibility tests for LLGo releases by @zhouguangyuan0718 in #2366
- build: preserve main package identity for test builds by @visualfc in #2370
- cl, ssa: fix zero-sized global init, fold composite literal alloc stores, and add LTO baseline benchmarks by @cpunion in #2376
- cl: fold slices of struct and array values into static initializers by @cpunion in #2378
- build(deps): bump xgo-dev/setup-benchmark-go-action/.github/workflows/publish.yml from 1.0.4 to 1.0.5 by @dependabot[bot] in #2380
- build(deps): bump xgo-dev/setup-benchmark-go-action from 1.0.4 to 1.0.5 by @dependabot[bot] in #2379
- build(deps): bump golang.org/x/tools to v0.49.0 and github.com/goplus/mod to v0.22.0 by @cpunion in #2377
- docs: update README compatibility and platform status by @cpunion in #2324
- Refactor README for Go support section by @xushiwei in #2381
- README: Go support by @xushiwei in #2383
- Update Go support description in README by @xushiwei in #2385
- Revise Go support section by @xushiwei in #2387
- README: C/C++ support by @xushiwei in #2389
- mod: github.com/xgo-dev/plan9asm v0.5.0 by @xushiwei in #2384
- licenses: preserve third-party notices in distributions by @cpunion in #2382
- Fix header for C/C++ standard libraries section by @xushiwei in #2390
- Add benchmark badge to README by @xushiwei in #2392
- ci: limit benchmark notifications to compiler changes by @zhouguangyuan0718 in #2391
- cl: extend static initialization for aggregate values by @zhouguangyuan0718 in #2394
- build(deps): bump actions/checkout from 4 to 7 by @dependabot[bot] in #2399
- compiler: default host to Os and targets to Oz by @zhouguangyuan0718 in #2393
- build: compact Darwin size-optimized executables by @zhouguangyuan0718 in #2396
- ssa: lazily generate methodless pointer type descriptors by @zhouguangyuan0718 in #2397
Full Changelog: v0.13.0...v1.0.0