Releases: goplus/llcppg
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
}v0.5.1
What's Changed
parser & ast:
- internal/parser:block pointer by @luoliwoshang in #371
- internal/unmarshal:unmarshal null by @luoliwoshang in #373
- refactor(parser): replace cjson with json by @MeteorsLiu in #390
- refactor(sigfetch): replace cjson with json by @MeteorsLiu in #396
llcppsymg:
- refactor(llcppgsymg):write with json instead cjson by @luoliwoshang in #387
- refactor(llcppgsymg/symg):do with params instead llcppg.cfg by @luoliwoshang in #391
- refactor(symg):ld search path | search lib file by @luoliwoshang in #399
- refactor(llcppsymg):rm unnessary temp param for parse by @luoliwoshang in #411
- refactor(llcppsymg):process by single unit by @luoliwoshang in #412
- fix(lackfunc):presumeLocation instead cursorLocation for macroExpan by @luoliwoshang in #402
gogensig & cl:
- llcppg/refine:convert return err by @luoliwoshang in #380
- refactor(config):config/ReadPubFile by @luoliwoshang in #384
- refactor(gogensig/conf):rm useless public fn by @luoliwoshang in #385
- refactor(config):avoid reduant symbol table by @luoliwoshang in #386
e2e test:
- test:end2end compare test by @luoliwoshang in #392
- test(end2end):demo test by @luoliwoshang in #394
- test(e2etest):log2file & test parallel by @luoliwoshang in #400
- test(e2etest):sqlite3/3.49.1 by @luoliwoshang in #403
- test(e2etest):zlib by @luoliwoshang in #404
- test(e2etest):cargs by @luoliwoshang in #405
- test(e2etest):bzip3 by @luoliwoshang in #406
- test(e2etest):bzip2 by @luoliwoshang in #408
- test(e2etest):llgo run lock by @luoliwoshang in #407
unit test:
- test:all llgo cmptest to llgo test by @luoliwoshang in #370
- test(ncimpl&cl/convert):patch refactored test by @luoliwoshang in #383
- feat(llcpptest): test packages concurrently by @MeteorsLiu in #398
- fix(llcppgtest): use mutex to protect
llgo runby @MeteorsLiu in #401
deps & ci:
- build(deps): bump github.com/qiniu/x from 1.14.6 to 1.15.0 by @dependabot in #374
- deps:gopmod->xgomod 0.17.0 by @luoliwoshang in #376
- Upgrade llgo to avoid process stucking by @MeteorsLiu in #378
- deps:rm cjson by @luoliwoshang in #397
- ci:continue run when other matrix fail by @luoliwoshang in #409
docs:
- docs(readme):release badge by @luoliwoshang in #395
changes:
- chore:rm todo in lua test case by @luoliwoshang in #381
- refactor(config/GetConfig): replace cjson with json by @MeteorsLiu in #382
- refactor(pkgFileInfo):minize param instead llcppg.cfg by @luoliwoshang in #388
Full Changelog: v0.5.0...v0.5.1
v0.5.0
What's Changed
parser & ast:
- ast: DeclBase => Object; Object.Name by @xushiwei in #339
- ast.ScopingExpr.X: Expr => Ident by @xushiwei in #341
- parser: default use clang++ by @xushiwei in #335
- fix: normalize test cases path by @MeteorsLiu in #360
- xtool/internal/parser:use basic parser. by @luoliwoshang in #362
- fix: remove duplicate codes by @MeteorsLiu in #366
- gogensig:remove duplicate unmarshal by @luoliwoshang in #365
- llcppsymg/tool/cfgparse->llcppsymg/internal/flag by @luoliwoshang in #369
- fix: append system path by default by @MeteorsLiu in #356
- fix: remove resource-dir flags by @MeteorsLiu in #372
compiler:
- cl.NewPackage: use headerGoFile by @xushiwei in #336
- cl.Convert: rm dep of symbolbTableFile by @xushiwei in #337
- rm getConvSym; GetConvSym not allow empty symbFile by @xushiwei in #338
- ConvSym: func(name *ast.Object, mangleName string) (goName string, err error) by @xushiwei in #340
- cl.Convert: rm dep of CfgFile by @xushiwei in #342
- cl.ConvConfig: Pubs => TypeMap by @xushiwei in #343
- cl: remove PkgInfo.Dir by @xushiwei in #344
- cl.ConvConfig: add PkgPath by @xushiwei in #345
- cl.Convert: rm dep of llconfig.Pkg by @xushiwei in #348
- cl/convert: NodeConvert by @luoliwoshang in #351
- cl/convert: find type & check type in
packageby @luoliwoshang in #347 - NodeConverter refactor by @xushiwei in #354
- cl.Convert: rm Config.TypeMap by @xushiwei in #357
- cl/nc: only record third type which have name by @luoliwoshang in #358
- ncimpl: TypeMap => Pubs by @xushiwei in #359
llcppg/tool:
unit test:
- refine: llgo test instead llgo cmptest by @luoliwoshang in #368
deps & ci:
- ci:check llgo test's stderr to exit by @luoliwoshang in #364
- chore: upgrade llgo by @MeteorsLiu in #323
Full Changelog: v0.4.0...v0.5.0
v0.4.0
What's Changed
parser:
- llcppg/parser by @xushiwei in #308 #309
- llclang/parser: intermediate file by @luoliwoshang in #313
- parser/unmarshal => parser/internal/unmarshal by @xushiwei in #317
- llclang/parser: c/cpp Mode by @luoliwoshang in #314
cl:
- llcppg/cl by @xushiwei in #315
- cl/decl.go by @xushiwei in #316
- mv convert => cl/internal/convert by @xushiwei in #318
- cl/NewPackage: multiple C/C++ files by @xushiwei in #319
- cl/fix:test deps internal/convert's pkg by @luoliwoshang in #320
- cl.NewPackage: All the C/C++ header files have been parsed and merged into a single AST by @xushiwei in #321
- cl/convert: pkg not direct depend llcppg.cfg by @luoliwoshang in #327
- cl/convert: avoid write in
packageby @luoliwoshang in #329 - cl: Convert returns Package by @xushiwei in #334
llcppg/tool:
refactor:
- llcppsigfetch/refactor: Do by @luoliwoshang in #296
- mv llcppg => cmd/llcppg by @xushiwei in #305
- llcppg/refactor: rm unuse llcppg.pub param by @luoliwoshang in #324
- demo test: remove llgo/c in libxslt by @luoliwoshang in #328
- fix: remove llgo/c by @MeteorsLiu in #333
cmd/llclang:
- llclang tool by @xushiwei in #310 #311
- llclang: base usage & parseIntermediateFile by @luoliwoshang in #312
deps:
- chore(deps): bump github.com/goplus/mod from 0.16.0 to 0.16.1 by @dependabot in #301
- chore(deps): bump github.com/qiniu/x from 1.14.0 to 1.14.6 by @dependabot in #332
- chore(deps): bump github.com/goplus/gogen 1.18.1 by @dependabot in #330
Full Changelog: v0.3.1...v0.4.0
v0.3.1
What's Changed
feat:
- gogensig:panic when convert fail by @luoliwoshang in #271
- gogensig:panic when func name used & skip processed node by @luoliwoshang in #283
- llcppsigfetch:skip typedef multi-level self-references by @luoliwoshang in #286
- gogensig:only pub enum-item instead upper camel by @luoliwoshang in #299
deps:
- chore(deps): bump github.com/goplus/gogen from 1.17.2 to 1.17.3 by @dependabot in #284
changes:
- gogensig:use same lookup by @luoliwoshang in #272
- gogensig:convert fail with name by @luoliwoshang in #279
- gogensig/chore:remove complete todo comment by @luoliwoshang in #276
- gogensig:simply comment handing by @luoliwoshang in #270
- gogensig/chore:mv unuse filter in converter test by @luoliwoshang in #269
- refactor by @xushiwei in #287
- gogensig/refactor:package_test with empty check & rm go-cmp by @luoliwoshang in #288
- llcppg/refactor:unify debug usage for llcppsigfetch & gogensig by @luoliwoshang in #291
- gogensig/chore:rm unuse dbg flags by @luoliwoshang in #293
- llcppsymg/refactor:pkg symg by @luoliwoshang in #292
- llcppsymg/refactor:unify dbg usage as other component by @luoliwoshang in #294
- gogensig/refactor:collect name map by node by @luoliwoshang in #289
- llcppsymg/refactor:Do by @luoliwoshang in #295
- llcppsymg/refactor: common to tool/.. by @luoliwoshang in #297
- gogensig:lookup origin name for type decl by @luoliwoshang in #290
Full Changelog: v0.3.0...v0.3.1
v0.3.0
What's Changed
features:
- gogensig:gen blank import for all deps by @luoliwoshang in #229
- gogensig:load customize typeMap by llcppg.cfg instead llcppg.pub by @luoliwoshang in #239
- llcppcfg/feat: add -deps for autofilling by @MeteorsLiu in #248
- gogensig:return empty named struct type instead anonymous struct lit by @luoliwoshang in #259
- llcppsymg:read symMap in cjson by @luoliwoshang in #255
- llcppg:correct alias ref by @luoliwoshang in #244
- llcppg:llgo/c -> lib/c by @luoliwoshang in #241
- llcppsymg:symMap instead read llcppg.symb.json to custom by @luoliwoshang in #253
ci/deps:
- ci:llgo 0.10.0 by @luoliwoshang in #233
- deps:use llpkg/cjson instead llgo/c/cjson by @luoliwoshang in #235
- ci:update to go 1.23 by @luoliwoshang in #243
- deps:update gogen by @luoliwoshang in #242
- ci:use checkout to config llgo by @luoliwoshang in #247
- deps:gogen v1.17.1 by @luoliwoshang in #250
- ci:feat: split genpkg tests to enhance speed of ci by @luoliwoshang in #254
- deps:update gogen to fix inittype with alias by @luoliwoshang in #258
- dependabot by @xushiwei in #260
- chore(deps): bump github.com/goplus/mod from 0.13.12 to 0.15.1 by @dependabot in #261
- chore(deps): bump github.com/google/go-cmp from 0.6.0 to 0.7.0 by @dependabot in #262
- chore(deps): bump github.com/goplus/gogen from 1.17.2-0.20250416004850-922a179a64d5 to 1.17.2 by @dependabot in #263
- chore(deps): bump github.com/goplus/mod from 0.15.1 to 0.16.0 by @dependabot in #264
test:
- gogensig:test use config's name instead dir name by @luoliwoshang in #236
- demo test:cjson read obj by @luoliwoshang in #234
- gogensig:check load same llcppg.pub's pubname by @luoliwoshang in #240
- demo test:raylib test demo by @luoliwoshang in #257
- demo test:remove unuse c/os in libxml2 by @luoliwoshang in #266
readme:
- readme:typeMap by @luoliwoshang in #251
- readme:symMap by @luoliwoshang in #278
changes:
- llcppsymg:remove unuse code by @luoliwoshang in #256
- chore:move cmdout by @luoliwoshang in #267
- gogensig/chore:mv unuse _comment_test to converter test by @luoliwoshang in #268
- chore:remove deprecate comment by @luoliwoshang in #273
New Contributors
- @dependabot made their first contribution in #261
Full Changelog: v0.2.1...v0.3.0
Customizing Bindings
Function Customization
After execution, you can directly see the mapped functions in the result.
//go:linkname CreateObject C.cJSON_CreateObject
func CreateObject() *CJSON
// llgo:link (*CJSON).AddItemToObject C.cJSON_AddItemToObject
func (recv_ *CJSON) AddItemToObject(string *c.Char, item *CJSON) Bool {
return 0
}
/* Render a cJSON entity to text for transfer/storage without any formatting. */
// llgo:link (*CJSON).PrintUnformatted C.cJSON_PrintUnformatted
func (recv_ *CJSON) PrintUnformatted() *c.Char {
return nil
}You can specify function mapping behavior in llcppg.cfg by config the symMap field:
{
"symMap":{
"mangle":"<goFuncName> | <.goMethodName> | -"
}
}mangle is the symbol name of the function. For the value of mangle, you can customize it as:
goFuncName- generates a regular function namedgoFuncName.goMethodName- generates a method namedgoMethodName(if it doesn't meet the rules for generating a method, it will be generated as a regular function)-- completely ignore this function
For example, to convert (*CJSON).PrintUnformatted from a method to a function, you can use follow config:
{
"symMap":{
"cJSON_PrintUnformatted":"PrintUnformatted"
}
}This will generate a function instead of a method in the Go code:
//go:linkname PrintUnformatted C.cJSON_PrintUnformatted
func PrintUnformatted(item *CJSON) *c.CharYou can also run llcppsymg separately. To do this, use the command:
llcppg -symbgenIf you only want to generate Go code using an already generated symbol table, execute:
llcppg -codegenType Customization
You can customize type name mappings to better suit your needs.
For instance, if you prefer to use JSON instead of cJSON as the Go type name, simply config the typeMap field of llcppg.cfg as follows:
{
"typeMap": {
"cJSON": "JSON"
}
}After running llcppg again, all generated code will use the new type name. The struct definition and its methods will be automatically updated:
type JSON struct {
// .....
}
// llgo:link (*JSON).PrintBuffered C.cJSON_PrintBuffered
func (recv_ *JSON) PrintBuffered(prebuffer c.Int, fmt Bool) *int8 {
return nil
}More demo projects and configuration files can be found under _llcppgtest directory.
v0.2.1
Function Customization
When you run llcppg directly with the above configuration, it will generate function names according to the configuration. After execution, you'll find a llcppg.symb.json file in the current directory.
[
{
"mangle": "cJSON_CreateObject",
"c++": "cJSON_CreateObject()",
"go": "CreateObject"
},
{
"mangle": "cJSON_AddItemToObject",
"c++": "cJSON_AddItemToObject(cJSON *, const char *, cJSON *)",
"go": "(*CJSON).AddItemToObject"
},
{
"mangle": "cJSON_PrintUnformatted",
"c++": "cJSON_PrintUnformatted(const cJSON *)",
"go": "(*CJSON).PrintUnformatted"
},
]-
manglefield contains the symbol name of function -
c++field shows the function prototype from the header file -
gofield displays the function name that will be generated in LLGo binding.You can customize this field to:
- Change function names (e.g. "CreateObject" to "Object" for simplicity)
- Remove the method receiver prefix to generate a function instead of a method
- Set it to "-" to completely ignore this function
What's Changed
- llcppg:symMap & typeMap config field by @luoliwoshang in #225
- gogensig:ignore symbol by @luoliwoshang in #228
- chore:demo test use the goplus llpkg's libxml2 by @luoliwoshang in #230
- readme:ignore determine func output by @luoliwoshang in #231
Full Changelog: v0.2.0...v0.2.1
v0.2.0
What's Changed
features:
- llcppg:-mod by @luoliwoshang in #221
- gogensig:support load dep with version by @luoliwoshang in #224
docs:
- readme:overview by @luoliwoshang in #214
- readme:llcppg -mod by @luoliwoshang in #222
changes:
- ci:use llgo v0.10.0 by @luoliwoshang in #212
- demo:refine libxslt by @luoliwoshang in #218
- llcppg:avoid literal config by @luoliwoshang in #220
Full Changelog: v0.1.0...v0.2.0
Usage
After creating the configuration file, run:
llcppg llcppg.cfgIf you're not in a Go module or want to create a separate module, you can use the -mod flag to create a new Go module for the generated package:
llcppg -mod github.com/author/cjson llcppg.cfgAfter execution,LLGo Binding will be generated in a directory named after the config name (which is also the package name). For example, with the cjson configuration above, you'll see:
cjson/
├── cJSON.go
├── cJSON_Utils.go
├── cjson_autogen_link.go
├── llcppg.pub
├── go.mod # Contains: module github.com/author/cjson (only when using -mod flag)
└── go.sum # Contains dependency checksums (only when using -mod flag)v0.1.0
What's Changed
llcppg
- llcppg:verbose by @luoliwoshang in #17
- llcppg:cross file forward impl test case by @luoliwoshang in #47
- llcppg:allow same func decl & check methodset avoid duplicate by @luoliwoshang in #126
- llcppg:support split run symbol gen & code gen by @luoliwoshang in #142
- llcppg:use file entry & refine unmarshal error by @luoliwoshang in #162
- [wip] llcppg:linux adapt by @luoliwoshang in #160
- add Impl & IgnoreUnderScore & Mix fields to llcppg.Config and code refactoring by @tsingbx in #173
- llcppg:ast.FileEntry -> llcppg.FileEntry by @luoliwoshang in #185
- llcppg:config.keepUnderScore by @luoliwoshang in #187
- llcppg: interface & implement file convert by @luoliwoshang in #180
- llcppg:refactor dependency by @luoliwoshang in #193
- llcppg:keep underscore by @luoliwoshang in #192
- llcppg:refactor by preprocess by @luoliwoshang in #164
llcppsymg (c symbol info generate component)
- llcppsymg: go symbol name for go struct methodname by @tsingbx in #7
- modify GenMethodName, (Bool).CreateBool to Bool.CreateBool by @tsingbx in #27
- invalid recv type by @tsingbx in #55
- llcppsymg:cache file in translation unit by @luoliwoshang in #117
- llcppsymg:avoid duplicate symbol by @luoliwoshang in #203
- clangutils:test libclang comment by @luoliwoshang in #205
llcppsigfetch (c ast info fetch component)
- llcppsigfetch:abs include path & system header & config mode 's include flags by @luoliwoshang in #6
- llcppsigfetch:fix unexpect typedef decl when forward decl implement by @luoliwoshang in #40
- llcppsigfetch:support elaborate functype in funcdecl by @luoliwoshang in #49
- llcppsigfetch:recursive resolve typedefs to get underlying func type by @luoliwoshang in #52
- fix llcppgsigfetch: lost receiver by @tsingbx in #89
- llcppsigfetch:remove redundant case for param collect by @luoliwoshang in #129
- llcppsigfetch:get normal comment by -fparse-all-comments by @luoliwoshang in #210
gogensig (go code generate component)
- [wip]:gogensig by @luoliwoshang in #1
- gogensig:remove todo by @luoliwoshang in #5
- gogensig:implict forward decl by @luoliwoshang in #4
- gogensig:depend latest llgo by @luoliwoshang in #14
- gogensig:header std incPath to pkg by @luoliwoshang in #12
- gogensig:remove dep test todo by @luoliwoshang in #10
- gogensig:nested record by @luoliwoshang in #21
- gogensig: add llgo:link comment for go struct method name by @tsingbx in #9
- gogensig:func pointer in struct by @luoliwoshang in #23
- gogensig:refactor dep package by @luoliwoshang in #28
- gogensig:fix unexpect impl forwarddecl cause redefine error by @luoliwoshang in #43
- gogensig:defer init typedef a incomplete type by @luoliwoshang in #54
- gogensig:remove extra pointer when ref defined functype (not func pointer) as param by @luoliwoshang in #62
- gogensig:fix unexpect object redeined by @luoliwoshang in #63
- gogensig:fix same cameled type name cause panic by @luoliwoshang in #74
- gogensig:ensure consistent param name in func sig by @luoliwoshang in #80
- gogensig:patch typedef enum test by @luoliwoshang in #81
- gogensig:fix unexpect redefined forward decl 's fail output by @luoliwoshang in #79
- gogensig:typedef a typedefed enumtype alias test by @luoliwoshang in #86
- ignore symbol not found error by @tsingbx in #91
- gogensig:fix unexpect receiver duplicate init by @luoliwoshang in #95
- fix p redeclared in this block by @tsingbx in #87
- gogensig:switch to file before complete a incomplete type by @luoliwoshang in #115
- gogensig:remove enum item prefix by @luoliwoshang in #125
- gogensig: fix type Struct (unnamed at /usr/local/...) by @tsingbx in #131
- chore:patch comment for ignore unexpect struct name by @luoliwoshang in #137
- chore:remove error duplicate source code for sqlite.h by @luoliwoshang in #138
- gogensig:const from simple macro by @luoliwoshang in #135
- gogensig:handle nested typedef of incomplete types by @luoliwoshang in #147
- llcppg:libxslt depend libxml by @luoliwoshang in #156
- gogensig:different size const macro by @luoliwoshang in #158
- gogensig:simple macro define without type by @luoliwoshang in #165
- gogensig:prefix with '_' 's name keep lead part by @luoliwoshang in #169
- gogensig:enum item remove prefix by @luoliwoshang in #182
- gogensig:macro name keep origin by @luoliwoshang in #183
- gogensig:refine _depcjson test by @luoliwoshang in #188
- chore:gogensig test with link file by @luoliwoshang in #197
- gogensig:fmt when finish by @luoliwoshang in #207
llcppgcfg (auto generate llcppg.cfg)
- add llcppcfg by @tsingbx in #29
- llcppcfg: support to sort header files by dependencies by @tsingbx in #130
- modify cfg := NewRunConfig(runPkgMode(appMode)... to cfg := NewRunCon… by @tsingbx in #170
- llcppcfg print clang command error & fix llcppgtest liblzma fail by @tsingbx in #199
llcppgtest (tools for test local c libraries)
- add llcppgtest tool by @tsingbx in #56
- llcppgtest&ci: test demo with generated pkg by @luoliwoshang in #101
- llcppgtest:llcppg.cfg & llcppg.pub with cjson by @luoliwoshang in #112
- llcppgtest:for single demo path by @luoliwoshang in #144
- llcppgtest: add -exts & -excludes flag by @tsingbx in #148
- test:assign conf origin by @luoliwoshang in #190
ci
- TODO: Install llcppg dependencies by @xushiwei in #2
- chore:pkg origin; ci:llgo install by @luoliwoshang in #3
- ci:llgo cmptest for llcppsifetch & llcppsymg by @luoliwoshang in #13
- ci:update test cover report by @luoliwoshang in #11
- ci:remove sub-repo clone by @luoliwoshang in #8
- chore:update test case for refer FILE* from llgo/c by @luoliwoshang in #26
- add demo for cjson by @tsingbx in #34
- add test_demo.sh and modify go.yml by @tsingbx in #33
- ci:fix yaml syntax err by @luoliwoshang in #35
- ci:rename ci test case by @luoliwoshang in #41
- deps:update llgo by @luoliwoshang in #53
- modify llgo version by @tsingbx in #57
- ci:install llcppg,llcppcfg by @luoliwoshang in #96
- ci:reuse install by @luoliwoshang in #98
- demo test:cjson custom pub type by @luoliwoshang in #114
- demo test:sqlite hello by @luoliwoshang in #107
- demo test:zlib hello by @luoliwoshang in #116
- demo test:isl intersect by @luoliwoshang in #118
- demo test:z3 by @luoliwoshang in #122
- demo test:raylib by @luoliwoshang in #120
- demo test:sqlite3 by @luoliwoshang in #136
- demo test:add gmp demo by @MeteorsLiu in https://github.c...