What's Changed
features:
- link globals importpath.name=value by @visualfc in #1130
- write a C package in Go by @xushiwei in #1167 #1168
- cl: llgo.asm implement tinygo.Asm by @luoliwoshang in #1217
- cl: llgo.asm implement tinygo.AsmFull by @luoliwoshang in #1224
- feat: implement
llgo.stackSaveby @MeteorsLiu in #1304 - defer: enable loop lowering by @cpunion in #1348
build targets:
- build js/wasm with emscripten by @cpunion in #1123
- windows build support by @runsys in #1127
- build targets task 1: Basic Target Parameter Support for llgo build/run/test commands by @cpunion in #1193
- build target task 2: Multi-Platform LLVM Support and Bootable Code Generation by @cpunion in #1203
- cabi transform by @visualfc in #1188
- internal/cabi: support arch 386 by @visualfc in #1220
- internal/cabi: fix llvm.alloca for callInsrt by @visualfc in #1231
- internal/cabi: call optimization by @visualfc in #1272
- doc: alpine 386 by @visualfc in #1226
- internal/target: read targets consist use LLGoROOT by @luoliwoshang in #1245
- feat: support libc/compiler-rt for small places by @MeteorsLiu in #1246
- optional esp clang by @cpunion in #1233
- embed cmds by @cpunion in #1271
- internal/crosscompile: update clang with older glibc & more small size by @luoliwoshang in #1275
- release:compile & release with esp clang/llvm by @luoliwoshang in #1253
- fix xtensa newlib
stdiostuck and support libc version by @MeteorsLiu in #1264 - fix(runtime): go runtime when building in baremetal environment by @MeteorsLiu in #1268
- Implement llgo build mode support by @cpunion in #1285
- internal/cabi: support target esp32 by @visualfc in #1296
- llgo/embed:compile with
Oz& link with-sfor embed target to reduce size by @luoliwoshang in #1301 - internal/cabi: support risc-v specific target-abi by @visualfc in #1308
- fix(runtime): restore SIGSEGV signal handler for non-wasm platforms by @luoliwoshang in #1383
build:
- build: set exit code when test fail by @luoliwoshang in #1128 #1129
- GOOS=js set -sENVIRONMENT=web,worker by @visualfc in #1143
- compile with clang++ by @luoliwoshang in #1147
- build: switch workdir from testpkg like go behavior by @luoliwoshang in #1151
- fix(build): test all pkg with llgo test ./... by @luoliwoshang in #1171
- build: gen pkg.ll to object by @visualfc in #1164
- refactor(internal/build): remove rpath change by @luoliwoshang in #1174
- internal/build: delete duplicate linkObjFiles by @visualfc in #1202
- internal/build: set CheckLinkArgs disable on default by @visualfc in #1204
- internal/build: include target build-tags in Go package compilation by @luoliwoshang in #1214
- fix: set correct argc=0 in _start() function by @luoliwoshang in #1211
- internal/build: support relocatable lib by @luoliwoshang in #1163
- llgo flags -abi enable in build tags dev by @visualfc in #1222
- build: dev support checkLinkArgs/CheckLLFiles/GenLLFiles by @visualfc in #1228
- internal/build: fix warning duplicate -rpath by @visualfc in #1234
- fix: ldflags -ldl for earlier glibc version by @luoliwoshang in #1274
- build: fix ldflags rewrites and prep caching by @xgopilot[bot] in #1396
runtime:
- runtime: GOOS GOARCH Compiler by @visualfc in #1126
- runtime: forkAndExecInChild chdir by @luoliwoshang in #1140
- uninitiated mutex by @MeteorsLiu in #1134
- runtime/js: js for emscripten by @visualfc in #1180
- runtime/js: impl CopyBytesToGo/CopyBytesToJS by @visualfc in #1182
- runtime: support syscall/js by @visualfc in #1184
- check LLGO_ROOT with pkg github.com/goplus/llgo/runtime by @cpunion in #1255
- fix(runtime): segmentation fault when calling interface private methods cross-package by @luoliwoshang in #1387
libraries:
- syscall: Stat_t for js/wasip1 by @visualfc in #1139
- libffi: support wasm32 by @visualfc in #1144
- reflect: makeFunc by @visualfc in #1148
- debug: fix print stack for wasm by @visualfc in #1181
- os: direntNamePtr for array by @luoliwoshang in #1173
- internal/cpu: use __cpuid_count by @visualfc in #1223
- os: fix readdir for darwin-amd64 by @visualfc in #1240
- runtime: math/big use math_big_pure_go by @visualfc in #1323
- reflect: fix Field closure kind to func by @visualfc in #1328
- fix: add runtime.rand and runtime.memhash for hash/maphash support by @xgopilot[bot] in #1339
- docs: add hash/maphash to README with partial support status by @xgopilot[bot] in #1345
- tls: add gc-aware pthread slots by @cpunion in #1347
- feat(reflect): add Indirect function by @xgopilot[bot] in #1355
- fix: set build.Default.Compiler to gc in init function by @xgopilot[bot] in #1349
- remove redundant CompareString from llgo:skip directive by @xgopilot[bot] in #1352
changes:
- cl: patchType check func signature by @visualfc in #1183
- ssa: PyVal support bool,int,uint,string,complex by @visualfc in #1195
- ssa: PyVal support pyfunc by @visualfc in #1196
- ssa: PyVal support py bytes by @visualfc in #1198
- ssa: PyVal support pointer to long by @visualfc in #1199
- ssa: fix TypeAssert check null by @visualfc in #1210
- rm llgo.old by @xushiwei in #1166
- xtool/safesplit: properly handle consecutive short flags by @luoliwoshang in #1243
- install libunwind-19 & libc++-19 by @luoliwoshang in #1149
- cl/_testrt/vamethod: optimize code by @visualfc in #1284
- reorganize: consolidate demo directories by @cpunion in #1283
- ci: fix clite init() causing linting failure by @MeteorsLiu in #1299
- ssa: impl builtin alignof offsetof by @visualfc in #1318
- fix: GenLL flag to correct compile by @luoliwoshang in #1314
- chore: move _embdemo to _demo by @MeteorsLiu in #1302
- ssa: fix abiTupleOf by @visualfc in #1327
- chore: remove deprecated //export LLGoVersion comment by @xgopilot[bot] in #1386
rename gop => xgo:
- goreleaser: gop => xgo by @luoliwoshang in #1154
- readme(xgo): xgo project by @luoliwoshang in #1153
- chore(xgo):gop_autogen => xgo_autogen by @luoliwoshang in #1152
deps:
- build(deps): bump github.com/goplus/mod 0.17.1 by @dependabot[bot] in #1138
- build(deps): bump github.com/goplus/llvm 0.8.5 by @dependabot[bot] in #1209
- chore(deps): bump github.com/goplus/gogen 1.19.5 by @dependabot[bot] in #1334
- chore(deps): bump github.com/goplus/lib 0.3.1 by @dependabot[bot] in #1391
- build(deps): bump golang.org/x/tools 0.36.0 by @dependabot[bot] in #1208
ci & tools:
- build(deps): bump actions/checkout from 4 to 5 by @dependabot[bot] in #1212
- build(deps): bump actions/setup-go from 5 to 6 by @dependabot[bot] in #1281
- chore(deps): bump actions/setup-node from 5 to 6 by @dependabot[bot] in #1342
- chore(deps): bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #1376
- chore(deps): bump actions/download-artifact from 5 to 6 by @dependabot[bot] in #1375
- ci: concurrency config added & timeout at 30min by @luoliwoshang in #1263
- ci: Release Testing by @luoliwoshang in #1259
- ci: avoid dependbot trigger reduant push event by @luoliwoshang in #1269
- ci: update .sysroot cache key & catch docker exit by @luoliwoshang in #1279
- cl: embed struct / interface support __llgo_va_list by @visualfc in #1282
- ci: fix brew python & update macos-13 -> macos-15 by @luoliwoshang in #1329
- chore(ci): migrate from
macos-13tomacos-15-intelrunner by @aofei in #1320 - ci/gorelease:remove reduant llvm download by @luoliwoshang in #1325
- ci: prevent duplicate workflow runs for xgopilot branches by @luoliwoshang in #1341
- ci: avoid auto upgrade before brew install by @luoliwoshang in #1388
- add CLAUDE.md: AI Assistant Guide by @xgopilot[bot] in #1336
- docs(CLAUDE.md): document out.ll update process after IR changes by @xgopilot[bot] in #1381
New Contributors
- @runsys made their first contribution in #1127
- @xgopilot[bot] made their first contribution in #1336
Full Changelog: v0.11.5...v0.11.6