Releases: goplus/llgo
Releases · goplus/llgo
v0.9.8
features:
- debug support (#794 #806)
- cgo support (#866)
- reflect (#769 #826 #847 #852 #886)
- cl: reduce alloca (#875)
libraries:
- c (#797 #798)
- c/clang (#763 #772 #784 #844 #849 #854 #851 #865 #867)
- c/cjson (#767)
- c/lua (#777 #796 #816)
- c/libuv (#799 #800)
- c/os: fix os.Errno 's nil pointer derefer in linux (#828 Maybe we have better solution)
- c/ffi, x/ffi: support libffi (#842 #855)
- cpp/llvm (#885)
- py (#810 #817)
- syscall: correct error of noexist file (#827)
ci & tools:
- ci: fix python deps install (#839)
- ci: make docs testable (#856)
- ci: enable demo test (#876)
- ci: fix linking args, force doc test run on current ref (#869)
- ci: remove pre-installed pkg-config (#873)
- xtool/pydump: fix types error in pydump (#857)
- xtool/nm:flags option & symbol version (#829)
- mv llcppg => github.com/goplus/llcppg (#888)
changes:
- cl: support builtin llgo tag (#765 #783)
- cl: exit 1 when SSA build error (#764)
- cl: check runtimeTypes for generic methods (#782)
- cl: instr funcAddr support typec funclit (#833)
- cl: function fix freevars cache (#775)
- cl: fix type patching (#879)
- test: unify cltest, llgen, gentests to build.Do (#884)
- llgo/ssa: cvtNamed check typeargs (#760)
- llgo/ssa: fix llgo:type c for typeparam named (#770)
- llgo/ssa: use LLVM memset intrinsic for compatibility and performance (#795)
- llgo/ssa: fix unsafe (#838)
- llgo/ssa: fix int constant type conversion (#837)
- llgo/ssa: fix closure type (#846)
- llgo/ssa: fix wrong reflect type of closure (#874)
- llgo/ssa: closure use org signature (#880)
- llgo/ssa: fit unsafe.slice int size (#850)
- llgo/ssa: abi check interface method (#824)
- llgo/ssa: fix gocvt named recurs for typeargs. support sync.Map (#793)
- internal/abi: fix splitName (#761)
- runtime: fix multi chan recv/send select (#792)
- runtime: fix map len and chan len/cap (#809)
v0.9.7
libraries:
- py (#699 #704 #744)
- c (#756)
- c/net (#700)
- c/signal (#710)
- c/pthread (#719 #720)
- c/clang (#715 #728 #729 #732 #736 #740 #743 #748 #749)
- c/lua (#696 #745 #746 #752 #751 #755)
- c/libuv (#706 #718 #692)
- os: patch TempDir, MkdirTemp, CreateTemp (#702)
- os: patch MkdirAll (#705 #711 #712 #725)
- os: fix Execl, Execle, and Execlp func signatures (#721)
- net/textproto: patch Dial (#707)
tools:
- llgo cmptest: add support for comparison with llgo.expect files (#701)
- llgo cmptest -gen (#708)
- llcppg/ast (#727 #691 #730 #731 #737 #734 #733 #741 #739 #738 #747 #750)
- llcppsymg (#693)
features:
- llgo/ssa: SliceToArrayPointer (#689)
- runtime: signal SIGSEGV (#710)
- runtime: init abi.Type.PtrBytes (#518)
- build: check -tags nogc (#724)
changes:
v0.9.6
v0.9.5
highlights:
- priority and state of Go std packages support (#642)
libraries:
- c: calloc (#674)
- c/openssl: rand (#620)
- c/openssl: bignum, rsa (#633)
- c/openssl: bio, pem, rsa (#641)
- c/openssl: hmac (#655)
- c/libuv (#613 #645 #657 #673)
- c/clang (#653 #658 #660 #667 #672 #676)
- c/os: add missing clearenv for macOS (#649)
- cpp/std: fix std::string definition (#654)
- crypto/rand (#622)
- crypto/{sha1, sha256, sha512} (#627 #631)
- crypto/hmac (#663 #665)
- math/big.Int (#634 #637)
- io/ioutil (#644)
- net/url (#656)
- encoding (#623)
- go/{token, scanner} (#623)
- sync: avoid using defer (#648)
- README (#621 #637)
tools:
changes:
v0.9.4
libraries:
- path, path/filepath (#593)
- regexp, regexp/syntax (#598 #602)
- encoding/{binary, hex, base32, base64} (#604)
- hash, hash/{adler32, crc32, crc64} (#615)
- bufio, encoding/csv (#606)
- bytes (#602)
- math/rand (#617)
- crypto/md5 (#608)
- os/exec (#587 #590)
- reflect.Value: Uint fix (#591)
- os.Pipe, syscall.CloseOnExec (#589)
- os.Expand (#596)
- os.ReadFile (#612)
- io.Pipe (#578 #579 #582 #586)
- c/openssl (#607 #616)
- c/zlib: crc32/adler32 (#615)
- c/pthread/sync: use C to wrap return type (#576)
- c/lua:metatable & coroutine (#584)
- c/libuv: fix return type FsType & struct rename (#572)
- cpp/std: support nogc (#594)
- py: add some basic dict methods (#605)
- README (#601 #611 #618)
tools:
- llcppg (#566)
changes:
- llgo/ssa: fix panic in defer (#583)
- llgo/ssa: closure changeType check convert (#600)
- llgo/ssa: add support for min and max built-in functions (#614)
- cl: afterInit skip pkgHasPatch (#580 #581)
- cl: fix pkg init hasPatch && patch io.pipe (#582 #586)
- build: fix sigsetjmp issues and ensure required libs on Linux (#597 #599)
- build: replicate macOS -dead_strip optimization on Linux (#610)
- runtime: fix endSelect (#573)
- runtime.Panic: mv error/Stringer to printany (#585)
- xtool: nm/nmindex (#588)
v0.9.3
v0.9.2
highlights:
- build: support rpath
- c/neco: prepare for future coroutine-based goroutine version
libraries:
- c/syscall: zerrors (#533)
- c/os: Fcntl (#502)
- c/os: Setrlimit/Getrlimit (#533)
- c/clang: castdump (#514 #516)
- c/lua: name style (#507)
- c/neco (#525)
- cpp/llvm (#513)
- cpp/inih: small fix (#509)
- syscall: Wait4 (#533)
- os: Args, StartProcess, Wait, Sysctl, environ (#513 #533)
- fmt: Errorf (#527)
- time: ParseDuration (#527)
- strings (#527)
- flag (#527 #530)
- README (#508 #510 #532 #536)
features:
- build: add llvm.BinDir to PATH (#513)
- build: support rpath (#515 #519 #522 #531)
- cmd: dylibdeps (#528)
- xtool: llvm InstallNameTool (#517 #521)
changes:
v0.9.1
highlights:
- mechanism to support C++ libraries. As part of this, we have migrated the C++
std::string
(see cpp/std package) and a third-party C++ library cpp/inih, which is used for reading ini files.
libraries:
- c: Fopen, Fclose, Perror, AllocaCStrs (#465 #497 #504)
- c/os: Execl, Execv, Fork, etc. (#495)
- c/syscall (#495 #496)
- c/socket (#501 #503)
- c/raylib (#473)
- c/zlib (#472)
- c/lua (#430)
- cpp/std (#505 #506)
- cpp/inih (#466 #505 #506)
- rust/sled: rust sled demo (have moved to llgoexamples) (#450 #480 #499)
- syscall, os, os/exec (#495 #504)
- time: Duration, Timer (#478)
- log (#467)
- context (#468)
features:
- c.AllocaCStrs; ssa: AllocaU/ArrayAlloca/Times/AllocaCStrs (#504)
- cl: support
// llgo:type C
(#454 #476) - build: replace precompiled *.lla with local compilation (#462)
- build: clFiles support cflags (#505)
- build _wrap: llgo_check (to be continued) (#506)
- cmd: add
llgo version
command (#489) - README (#474 #481)
changes:
- llgo/ssa: func binop eq fix (#460)
- llgo/ssa: fix setDirectIface (#470)
- llgo/ssa: fix return multi results (#477)
- llgo/ssa: correct Sizeof to align size properly (#493)
- build: ensure GOBIN directory exists before use (#464)
- build: fix buildpkg (#490)
- xtools: mv xtool/clang/parser, ar => chore/_deprecated (#475)
- ci: implement release-build.yml workflow with GoReleaser (#494)
- ci: update go.yml workflow to trigger on pushes and PRs to any branches (#469)
- mod: github.com/goplus/mod v0.13.12
v0.9.0
highlights:
- All Go syntax (not including
cgo
) is already supported.
features:
libraries:
changes:
v0.8.10
features:
libraries:
- c/math (float32) (#414)
- c/math/rand (#403 #414)
- c/raylib (#409 #410 #415 #423 #427)
- c/raylib: tetris demo (#423 #427)
- c/clang (#410 #416)
- c/clang: use llvm-config (#416)
- c/zlib (#404 #413)
- os: UserHomeDir/UserConfigDir/UserCacheDir (#420)
- os, syscall, io/fs: Errno, Stdin/out/err (#422)
- os.File (#426 #433)
- fmt, os, runtime, syscall, time (#429)
demos:
- cppmintf: implements multiple intefaces in c++ (#398)
- cmptest: sortdemo (#418)
- cmptest: iodemo, fmtdemo (#437)
changes:
- cl linkname: not exist method warning (#436)
- llgo/ssa: phi.AddIncoming fix: use checkExpr (#419)
- llgo/ssa: fix slice high (#428)
- llgo/ssa: makeSlice fit int size and check (#425)
- llgo/ssa: fix abiType && abiMethoOf (#392)
- llgo/ssa: fix abiType & abiNamedOf (#417)
- llgo/ssa: fix abi patch types.pointer (#434)
- runtime: global abi basic (#421)
- runtime: panic with any custom type (#399)
- runtime: type align (#405)
- build: fix link runtime (#438)
- c/llama2: rm precompiled *.ll files (#407)
- c/llama2: explicitly link libm to ensure compatibility with Linux (#408)
- xtool: utilize llvm-config to find LLVM executables (#424)
- update bytealg for pkg bytes/strings (#428)