Releases: goplus/llgo
v0.12.2
What's Changed
build:
- build: add command tracing and entry module name by @cpunion in #1584
- feat: enable icf to reduce binary size by @zhouguangyuan0718 in #1593
compiler:
- refactor: remove init$patchDeps mechanism (no longer needed after PR #1450) by @luoliwoshang in #1596
- cl/_testrt/cast: enable run result test by @xgopilot[bot] in #1562
- Implement register-based closure ctx by @cpunion in #1599
- Revert "Implement register-based closure ctx" by @xushiwei in #1614
- cgo: support C2func* wrappers with errno-based (ret, error) by @cpunion in #1630
- stdlib-opt: trim runtime/internal/lib patches by @cpunion in #1621
- cl: implement go:embed and add std embed tests by @cpunion in #1641
llgo/ssa:
- ssa: fix abi type error by @visualfc in #1595
- cabi: remove unsafe load-to-memcpy optimization by @luoliwoshang in #1607
- fix: generate valid function pointers for embedded type's unexported methods by @luoliwoshang in #1598
- build: use LLVM memcpyopt pass to replace cabi load/store optimization by @luoliwoshang in #1612
- ssa: fix reflect.pointerTo needAbiInit by @visualfc in #1627
- ssa: fix loop defer draining by @cpunion in #1642
- ssa: fix prog.Type error for instantiated generic types by @xgopilot[bot] in #1638
runtime:
- runtime: fix reflect.Value.Method by @visualfc in #1528
- refactor: remove clite.init() for non baremetal targets by @MeteorsLiu in #1300
- runtime: reflect.Copy by @luoliwoshang in #1639
emb:
- feat(esp32c3): QEMU emulator support by @luoliwoshang in #1536
- fix(esp32c3): use semihosting _exit for QEMU emulator support by @luoliwoshang in #1539
chore:
- chore: rename ifaceprom-1599 to ifaceprom-1559 by @xgopilot[bot] in #1579
- docs: update copyright to The XGo Authors (xgo.dev) by @xgopilot[bot] in #1603
- chore: update xgopilot model to claude-4.6-opus by @xgopilot[bot] in #1633
ci & tools:
deps:
- chore(deps): bump github.com/goplus/mod from 0.19.0 to 0.19.2 by @dependabot[bot] in #1647
- chore(deps): bump github.com/goplus/gogen 1.21.2 by @dependabot[bot] in #1646
New Contributors
- @zhouguangyuan0718 made their first contribution in #1593
Full Changelog: v0.12.1...v0.12.2
v0.12.1
What's Changed
build:
- record compiler hash in build fingerprints by @cpunion in #1516
- fix: ensure dev/llgo.sh always rebuilds with -tags=dev by @xgopilot[bot] in #1519
- fix(build): ensure linker always consumes .a archives by @cpunion in #1526
- chore: skip nondeterministic goroutine run result test by @xgopilot[bot] in #1564
compiler:
- cl: fix method thunk name collision causing incorrect type assertions by @xgopilot[bot] in #1522
- test(cl): add run result output verification by @luoliwoshang in #1545
- fix(cl):same float-to-int cast overflow behavior with go by @luoliwoshang in #1544
- fix(cl): fill cross-package unexported method Ifn/Tfn so itab is complete by @luoliwoshang in #1560
llgo/ssa:
- fix: handle untyped shift expressions in SSA build by @cpunion in #1531
- ssa: type assert closure use MatchesClosure func by @visualfc in #1535
runtime:
- runtime: clean code, impl reflect arrayOf, chanOf, structOf by @visualfc in #1515
- runtime/internal/clite/syscall: remove deps errors by @visualfc in #1543
- runtime: align pointer print formatting by @luoliwoshang in #1558
- fix(runtime): make NewItab tolerate unreachable IFn entries by @luoliwoshang in #1576
libraries:
- support os.File.WriteString by @luoliwoshang in #1554
- Implement missing os.File methods by @xgopilot[bot] in #1553
emb:
- chore: remove duplicate paths in getNewlibESP32ConfigRISCV by @xgopilot[bot] in #1541
- feat(embed): add baremetal defer support by @luoliwoshang in #1464
ci & tools:
deps:
- chore(deps): bump github.com/goplus/mod from 0.18.0 to 0.19.0 by @dependabot[bot] in #1575
- chore(deps): bump github.com/goplus/gogen 1.20.2 by @dependabot[bot] in #1577
New Contributors
Full Changelog: v0.12.0...v0.12.1
v0.12.0
What's Changed
llgo/ssa:
- ssa: abi type global constant data by @visualfc in #1450
- ssa: fix map value closure check by @visualfc in #1509
libraries:
- Fix (*os.File).Stat() returning Size() = 0 by @xgopilot[bot] in #1506
- reflect: fix Type.Name() returning empty string for basic types by @luoliwoshang in #1511
ci & tools:
- ci: add cache for ESP Clang toolchain downloads by @luoliwoshang in #1463
- chore: remove unused .gitmodules file by @xgopilot[bot] in #1502
deps:
- chore(deps): bump github.com/goplus/mod from 0.17.3 to 0.18.0 by @dependabot[bot] in #1510
Full Changelog: v0.11.8...v0.12.0
v0.11.8
What's Changed
ssa & abi types:
- ssa: align closure stubs with ctx ABI by @cpunion in #1495
- internal/cabi: fix return attrwidthtype2 optimize by @visualfc in #1470
- fix(ssa): add returns_twice attribute to sigsetjmp by @luoliwoshang in #1499
- ssa: fix jmp_buf size for cross-compilation by @luoliwoshang in #1487
- ssa: fix integer type conversion, add exhaustive BinOp tests, and fix complex division by @xgopilot[bot] in #1480
build:
- feat(test): Add -o and -c flags to llgo test by @xgopilot[bot] in #1455
- feat(test): Add comprehensive testing flags support for llgo test by @cpunion in #1457
runtime:
libraries:
emb:
- fix(esp32c3): correct -march to rv32imc to prevent illegal instruction crashes by @luoliwoshang in #1443
- emb:esp32c3:implement _write by jtag output by @luoliwoshang in #1440
deps:
- chore(deps): bump github.com/goplus/mod from 0.17.2 to 0.17.3 by @dependabot[bot] in #1491
- chore(deps): bump github.com/goplus/gogen from 1.19.6 to 1.19.7 by @dependabot[bot] in #1474
ci & tools:
- time: add time tests and add std symbol coverage checks by @cpunion in #1466
- dev: add reusable Docker dev environments and dev helper scripts by @cpunion in #1465
- feat: optimize link checker to run only on markdown changes and daily schedule by @xgopilot[bot] in #1452
- ci: fix fmt workflow scan by @cpunion in #1467
- chore(deps): bump actions/cache from 4 to 5 by @dependabot[bot] in #1461
- chore(deps): bump actions/checkout from 5 to 6 by @dependabot[bot] in #1498
- chore(deps): bump actions/download-artifact from 6 to 7 by @dependabot[bot] in #1472
- chore(deps): bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in #1473
Full Changelog: v0.11.7...v0.11.8
v0.11.7
What's Changed
features:
- feat: enable target-triple build cache by @cpunion in #1425
- Add -a flag to llgo build to force package rebuilds by @xgopilot[bot] in #1437
- feat: add size report aggregation by @cpunion in #1405
- cl: support //export with different symbol names on embedded targets by @luoliwoshang in #1384
runtime (emb):
- feat: implement baremetal gc by @MeteorsLiu in #1309
- fix(esp32c3): use newlib startup and merge init_array to rodata for println support by @luoliwoshang in #1435
runtime:
- runtime: support runtime.AddCleanup by @visualfc in #1424
- runtime: implement weak by @visualfc in #1416
- refactor runtime instantiation type checking to support "unique" pkg by @visualfc in #1429
changes:
- build: refactor main module generation and fix stdout/stderr null checks by @cpunion in #1400
- correct initialization order for overlay packages by @luoliwoshang in #1414
- internal/build: fix instance patch, remove fakeRuntime by @visualfc in #1423
- docs: update defer in loops documentation by @xgopilot[bot] in #1422
- ssa: fix types named cycle by @visualfc in #1439
deps:
- chore(deps): bump github.com/goplus/mod from 0.17.1 to 0.17.2 by @dependabot[bot] in #1431
- chore(deps): bump github.com/goplus/gogen from 1.19.5 to 1.19.6 by @dependabot[bot] in #1426
ci & tools:
- build: pin WAMR to version 2.4.4 by @xgopilot[bot] in #1433
- chore(deps): bump actions/checkout from 5 to 6 by @dependabot[bot] in #1415
Full Changelog: v0.11.6...v0.11.7
v0.11.6
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/s...
v0.11.5
What's Changed
changes:
- cl: funcName check $bound by @visualfc in #1117
- runtime/internal/clite/syscall: fix init by @visualfc in #1122
- fix reflect.pointer for closure; fix runtime unsafe.pointer ptrBytes by @visualfc in #1121
cmd/llgo:
- cmd/llgo: main cmd by @xushiwei in #1098
- cmd/llog: main_cmd.gox => main_app.gox by @xushiwei in #1102
- add usage for llgo by @tsingbx in #1103
- fix gop run . flag provided but not defined: -ldflags by @tsingbx in #1118
xtool/cppkg:
- xtool/cpgithubpkg by @xushiwei in #1080
- xtool/cppkg: InstallPkg KnownLatestVersion by @xushiwei in #1099
- xtool/cppkg: InstallPkg allows to customize cacheDir by @xushiwei in #1101
- xtool/cppkg: ConanStderr by @xushiwei in #1106
- xtool/cppkg:install in linux by @luoliwoshang in #1104
- github api: EnumTags by @xushiwei in #1107
- github api: release/asset id => int64 by @xushiwei in #1108
- rm xtool/{cppkg,cpgithubpkg} by @xushiwei in #1109
ci & tools:
deps:
- build(deps): bump github.com/goplus/cobra 1.9.12 by @dependabot in #1111
- build(deps): bump github.com/goplus/gogen 1.18.1 by @dependabot in #1119
- build(deps): bump github.com/goplus/mod from 0.16.0 to 0.16.1 by @dependabot in #1097
- build(deps): bump github.com/qiniu/x from 1.14.0 to 1.14.6 by @dependabot in #1112
Full Changelog: v0.11.3...v0.11.5
v0.11.3
What's Changed
features:
- xtool/cppkg by @xushiwei in #1079 #1082 #1090
- cmd/llgo refactor (use cobra xcmd) by @xushiwei #1085 #1086 #1087
- cmd/llgo cppkg by @xushiwei #1088 #1089 #1090
libraries:
changes:
deps:
- build(deps): bump github.com/goplus/gogen from 1.17.2 to 1.17.3 by @dependabot in #1077
Full Changelog: v0.11.2...v0.11.3
v0.11.2
What's Changed
features:
changes:
- Fix args parsing by @cpunion in #1067
- Fix Dead loop in cl/blocks.Infos #965 by @xushiwei in #1072
- Fix runtime/internal/clite/pthread/sync/sync_darwin_amd64: PthreadMutexSize = 64 by @visualfc in #1074
deps:
- build(deps): bump github.com/qiniu/x 1.13.19 by @dependabot in #1071
- build(deps): bump github.com/goplus/gogen 1.17.2 by @dependabot in #1069
- build(deps): bump github.com/goplus/mod 0.16.0 by @dependabot in #1070
Full Changelog: v0.11.0...v0.11.2
v0.11.0
What's Changed
incompatible changes:
- mv llgo/{c,cpp,py,x} => lib/{c,cpp,py,x} by @cpunion in #1052
- fix readme link and tests by @cpunion in #1054
- fix remote install test by @cpunion in #1055
changes:
- split debug and symbols toggle environment variables by @cpunion in #1036
- cl: check wasm sizes by @visualfc in #1044 #1047
deps:
- llvm 19 by @cpunion in #1050
- build(deps): bump github.com/goplus/gogen 1.16.9 by @dependabot in #1040
Full Changelog: v0.10.1...v0.11.0