v0.6.0
What's Changed
llcppsigfetch
- refactor(llcppsigfetch):reuse llgo/preprocessor by @luoliwoshang in #426
- chore: rename internal/config to internal/header by @MeteorsLiu in #430
llcppsymg
- feat(symbol):fetch symbol with llvm-nm by @luoliwoshang in #389
- feat(symg):avoid list not global symbol by @luoliwoshang in #414
- refactor(llcppsymg):ignore unnessary error path check by @luoliwoshang in #422
- refactor(llcppsymg):rm unreach case in method check by @luoliwoshang in #425
- refactor(llcppsymg): isMethod -> beRecv by @luoliwoshang in #424
- refactor(llcppsymg):prepare for static symbol by @luoliwoshang in #432
cl
- feat(cl):implement normal refer func pointer instead c.Pointer by @luoliwoshang in #437
- Revert "feat(gogensig):normal refer func pointer instead (#437)" by @MeteorsLiu in #462
- feat(cl):normal refer func pointer instead by @luoliwoshang in #463
docs
- doc(design):headerfile concept & dependency design by @luoliwoshang in #440
- doc(design):basic name mapping rules by @luoliwoshang in #439
- docs(design):move headerfile example explanation by @luoliwoshang in #443
- docs(design):move cross platform rule by @luoliwoshang in #442
- docs(design):param name by @luoliwoshang in #444
- docs(design):basic type & void * & func pointer map by @luoliwoshang in #445
- docs(design):move usage & step to doc/en/dev by @luoliwoshang in #450
- docs(design):llcppsymg & llcppsigfetch & gogensig by @luoliwoshang in #452
- docs(design):refer named func pointer in struct instead c.Pointer by @luoliwoshang in #446
- docs(design):function map by @luoliwoshang in #458
- docs(readme):add badge to enable auto refresh deepwiki by @luoliwoshang in #451
- readme(xgo):xgo badge by @luoliwoshang in #460
- docs(design):output detail by @luoliwoshang in #461
ci
- ci:test in linux/arm & macos/x86 by @luoliwoshang in #427
- ci: remove brew update by @MeteorsLiu in #435
- ci: move cjson dep by @MeteorsLiu in #464
deps
- build(deps): bump github.com/qiniu/x from 1.15.0 to 1.15.1 by @dependabot in #421
- deps:llgo@fc8664 by @luoliwoshang in #428
- build(deps): bump github.com/goplus/gogen from 1.18.1 to 1.19.0 by @dependabot in #433
- deps(llgo):with clang++ version by @luoliwoshang in #459
test
- test(e2etest):cfg in result dir by @luoliwoshang in #417
- test(e2etest): add llcppcfg end2end test by @MeteorsLiu in #418
- test(e2etest):libxslt depend libxml2 by @luoliwoshang in #419
- test(e2etest): add libtool by @MeteorsLiu in #438
- fix(llcppgtest): seperate temp path for each llgo run by @MeteorsLiu in #447
- fix(llcppgtest): specify GOCACHE by @MeteorsLiu in #454
- test(e2etest): increase timeout by @MeteorsLiu in #457
Full Changelog: v0.5.1...v0.6.0
Function pointer
C function pointer types are converted to Go function types with corresponding parameter and return type mappings,And llgo need to add llgo:type C tag to the function type.
typedef int (*CallBack)(void *L);// llgo:type C
type CallBack func(c.Pointer) c.IntFor function pointer types referenced in function signatures & struct fields, the type is replaced with the converted Go function type.
void exec(void *L, CallBack cb);// llgo:type C
func Exec(L c.Pointer, cb CallBack)typedef struct Stream {
CallBack cb;
} Stream;type Stream struct {
Cb CallBack
}