Compare commits

...

2031 Commits

Author SHA1 Message Date
xushiwei
d483b13107 Merge pull request #1011 from visualfc/deferargs2
support defer args
2025-02-28 18:14:16 +08:00
xushiwei
dea4d9df63 Merge pull request #1015 from luoliwoshang/runtime/rmlog
runtime:rm log of StartProcess
2025-02-28 18:10:54 +08:00
xushiwei
b7601a7f08 Merge pull request #1016 from luoliwoshang/ctype
c:some type & stat's pub
2025-02-28 18:10:27 +08:00
luoliwoshang
2e148d6d0e c/pub:fix stat 2025-02-28 16:45:42 +08:00
luoliwoshang
8835a1a232 c:some type 2025-02-28 16:18:27 +08:00
visualfc
00e3b6b5a0 _demo/defer 2025-02-27 14:38:25 +08:00
visualfc
3bb51c5d51 ssa: defer load/store func and args 2025-02-27 14:32:21 +08:00
luoliwoshang
433df05858 runtime:rm log of StartProcess 2025-02-27 14:18:44 +08:00
xushiwei
22524b03c8 Merge pull request #1013 from tsingbx/llgo/llcppg.pub
add all llcppg.pub for clib
2025-02-27 10:41:44 +08:00
tsingbx
508fa62a48 delete llcppg.pub for debug,llama2,neco,setjmp,sys,syscall 2025-02-26 15:30:45 +08:00
tsingbx
e7f7f98c02 add all llcppg.pub for clib 2025-02-26 15:25:06 +08:00
xushiwei
9edaa8eb93 Merge pull request #1010 from cpunion/fix-empty-content
build: fix empty .ll file name generation
2025-02-22 17:46:36 +08:00
Li Jie
32587c1a40 build: fix empty .ll file name generation 2025-02-22 09:25:44 +08:00
xushiwei
019c482d18 Merge pull request #995 from cpunion/fix-llgo-test-crash
Build on Go 1.24, compatible with Go version directive 1.20-1.24 in go.mod
2025-02-21 06:04:21 +08:00
Li Jie
ca906d9c71 test: add byte and append coverage 2025-02-19 12:27:46 +08:00
Li Jie
35ba8476b0 runtime: net/textproto/textproto.go overlay don't import llgo runtime 2025-02-19 12:09:03 +08:00
Li Jie
a473901cfd runtime: patching testing/testing.go for go1.24 2025-02-19 11:46:47 +08:00
Li Jie
b163d71aed test: 3 attempts to avoid clang errors 2025-02-19 11:35:24 +08:00
Li Jie
d561f1399a test: test compiler/internal/build with verbose to show clang command line 2025-02-19 11:35:24 +08:00
Li Jie
00406e08fb ssa: record NeedRuntime, NeedPyInit in Package to compatible multi-packages building 2025-02-19 11:35:24 +08:00
Li Jie
0e4ca910d6 build: building multi packages outputs to temporary path 2025-02-19 11:35:24 +08:00
Li Jie
b00f52472b build: don't output pkg path 2025-02-19 11:35:24 +08:00
Li Jie
95a6e356ee build: let llgo build without -o outputs executable 2025-02-19 11:35:24 +08:00
Li Jie
f4da8e8876 runtime: disable godebug unimplemented warnings 2025-02-19 11:35:23 +08:00
Li Jie
1a08a59b49 env: fix devel version name 2025-02-19 11:35:23 +08:00
Li Jie
758ceb791b compiler: upgrade x/tools 0.30.0 2025-02-19 11:35:23 +08:00
Li Jie
6a1e0084f4 ssa: support len([]func()) 2025-02-19 11:35:23 +08:00
Li Jie
e318cab252 compiler: add internal/build tests 2025-02-19 11:35:23 +08:00
Li Jie
6b12547303 ci: filter out uncollected packages 2025-02-19 11:35:23 +08:00
Li Jie
96d6c00815 cl: regenerate test snapshots 2025-02-19 11:35:22 +08:00
Li Jie
7be79d81f9 ssa: uniform byte and uint8 name on different platforms 2025-02-19 11:35:22 +08:00
Li Jie
2be558d554 runtime: reflect.Value.Equal 2025-02-19 11:35:22 +08:00
Li Jie
60fac0a010 ci: test on go1.24 2025-02-19 11:35:21 +08:00
Li Jie
df0f239929 runtime: fix patch for testing 2025-02-17 07:50:37 +08:00
Li Jie
4e1aea4597 ci: run llgo test 2025-02-17 07:50:36 +08:00
xushiwei
60224dd77d Merge pull request #1003 from cpunion/fix-sleep
runtime: fix time.Sleep
2025-02-17 06:15:08 +08:00
xushiwei
ded408f145 Merge pull request #1004 from visualfc/goexit2
runtime: goexit use thread key
2025-02-17 06:12:28 +08:00
xushiwei
69deeca321 Merge pull request #1002 from cpunion/fix-global-var-type
cl: fix wrong global variable type patching
2025-02-17 06:09:10 +08:00
xushiwei
5e1e7bdad0 Merge pull request #1005 from cpunion/safe-mutex-init
runtime: safe mutex initialization
2025-02-17 06:08:21 +08:00
Li Jie
22f4924d8e runtime: safe mutex initialization 2025-02-16 20:52:22 +08:00
visualfc
8591275eb2 runtime: goexit use thread key 2025-02-16 19:53:38 +08:00
Li Jie
d91bb33178 runtime: fix time.Sleep 2025-02-16 19:25:59 +08:00
Li Jie
d8e782f3f1 cl: fix wrong global variable type patching 2025-02-16 12:53:42 +08:00
xushiwei
51755b8da3 Merge pull request #998 from visualfc/goexit
runtime: support Goexit
2025-02-16 08:52:10 +08:00
xushiwei
e5c0aed75e Merge pull request #997 from cpunion/fix-release
Fix release build
2025-02-16 08:44:48 +08:00
visualfc
6d7e984238 runtime: support Goexit 2025-02-16 08:24:33 +08:00
Li Jie
4dcc944f53 ci: lock tonistiigi/binfmt:qemu-v7.0.0-28 to avoid binfmt crash 2025-02-15 19:31:01 +08:00
Li Jie
fbb978e8a5 ci: populate linux sysroot in parallel 2025-02-15 19:30:32 +08:00
Li Jie
46a3a4f7e3 ci: disable populate cache 2025-02-15 19:30:07 +08:00
xushiwei
e74d2b45c0 Merge pull request #996 from xushiwei/q
qiniu/x v1.13.12
2025-02-15 18:45:00 +08:00
xushiwei
d40298ac58 qiniu/x v1.13.12 2025-02-15 18:30:57 +08:00
xushiwei
87d7a4862e Merge pull request #978 from visualfc/llruntime
runtime: config hasAltPkg and overlay
2025-02-15 15:26:50 +08:00
visualfc
8be9a560e9 runtime: rm ignoreName 2025-02-15 14:56:59 +08:00
visualfc
0d218bb4b9 runtime: config overlay 2025-02-15 13:25:25 +08:00
visualfc
1b3464b610 runtime: config hasAltPkg and ignoreName 2025-02-15 13:22:28 +08:00
xushiwei
c4e66a104b Merge pull request #994 from xushiwei/q
README: Key modules move into compiler directory
2025-02-15 13:20:19 +08:00
xushiwei
d4eaef6ac8 README: Key modules move into compiler directory 2025-02-15 13:19:38 +08:00
xushiwei
9a634b22a7 Merge pull request #991 from cpunion/update-doc
doc: update install instructions
2025-02-15 12:02:45 +08:00
xushiwei
54f5f38637 Merge pull request #946 from cpunion/testing
llgo test
2025-02-15 12:01:49 +08:00
Li Jie
21a5180b2f cl: regenerate test snapshots 2025-02-15 11:18:03 +08:00
Li Jie
8116d34a60 runtime: runtime.Callers, runtime.CallersFrames 2025-02-15 11:18:03 +08:00
Li Jie
c6462cbcc7 ssa: fix type assertion of same type 2025-02-15 11:18:03 +08:00
Li Jie
4e34ce7470 runtime: fix incorrect function signature 2025-02-15 11:18:03 +08:00
Li Jie
c2299818cd compiler: fix llgo build test 2025-02-14 19:02:35 +08:00
Li Jie
2d06dc5cfe demo: call println, c.Printf, fmt.Println 2025-02-14 19:02:35 +08:00
Li Jie
5329f28580 runtime: testing runtime 2025-02-14 19:02:32 +08:00
Li Jie
66909b3000 ci: continue on error 2025-02-14 15:56:19 +08:00
Li Jie
ae92904e7d ssa: show type assertion failed details 2025-02-14 15:56:19 +08:00
Li Jie
70fb5ec7e1 ci: replace setup-go with custom action to avoid cache error and test pre-release go 2025-02-14 15:56:19 +08:00
Li Jie
058f74c12c deps: add libuv into system deps 2025-02-14 15:56:18 +08:00
Li Jie
3a2d24d7cc doc: update doc test for installation instructions 2025-02-13 16:16:25 +08:00
Li Jie
49f2f0dbfd doc: update install instructions 2025-02-13 15:52:11 +08:00
Li Jie
5b216153e9 cl: LLGO_TRACE 2025-02-13 15:47:53 +08:00
Li Jie
43175bb642 build: supports LLGoFiles in patches 2025-02-13 15:47:53 +08:00
Li Jie
c1da220a99 ssa: toType(ssa.TypeParam) 2025-02-13 15:47:53 +08:00
Li Jie
164c3e0e7b cl: fix null pointer in processing debug location 2025-02-13 15:47:52 +08:00
Li Jie
491a23b21e cl: don't ignore standard libraries 2025-02-13 15:47:52 +08:00
Li Jie
727ec8a5cf build: weak syscall.init for syscall imported but not compiled 2025-02-13 15:47:52 +08:00
Li Jie
28b3ec322c build: show cgo compile errors 2025-02-13 15:47:52 +08:00
Li Jie
38cb89a946 build: show full link errors 2025-02-13 15:47:52 +08:00
Li Jie
b07116f302 build: patch packages supports cgo 2025-02-13 15:47:15 +08:00
Li Jie
623b5a511a cl: process llgo:skip on const, type declaration, deprecate llgo:skip on import 2025-02-13 15:47:15 +08:00
Li Jie
d5d2d6826f build: patch package with ID 2025-02-13 15:47:14 +08:00
Li Jie
227f6a4ed7 build: update go/parser/resolve.go (compatible go 1.23) 2025-02-13 15:47:14 +08:00
Li Jie
e23d7082fe build: overlay testing/testing.go for defer in loop 2025-02-13 15:47:14 +08:00
Li Jie
569a29454e build: run llgo test 2025-02-13 15:47:14 +08:00
Li Jie
a07f711e22 build: only limit run command to single package 2025-02-13 15:47:13 +08:00
Li Jie
946f304bb2 compiler: add go test command 2025-02-13 15:47:13 +08:00
Li Jie
6b11c100ba cl: process all go directives 2025-02-13 15:47:13 +08:00
Li Jie
6048693423 ssa: remove unused funcs 2025-02-13 15:47:13 +08:00
Li Jie
a7287754be compiler: remove unused func llgoRuntimeImported 2025-02-13 15:47:13 +08:00
Li Jie
d9037a7fce build: remove generated code after link 2025-02-13 15:47:12 +08:00
Li Jie
f06d292382 test: regenerate test files with gentests 2025-02-13 15:47:12 +08:00
Li Jie
85d01d6f28 compiler: make main function normally to compatible multiple main functions in testing mode 2025-02-13 15:47:12 +08:00
xushiwei
5cfeddef73 Merge pull request #988 from visualfc/reflect_typeof
runtime/internal/lib/reflect: fix TypeOf check nil
2025-02-13 15:20:24 +08:00
xushiwei
b975e77a63 Merge pull request #990 from cpunion/install-and-devel
Install and devel scripts
2025-02-13 15:19:52 +08:00
Li Jie
ba46181365 add llgo.sh for ease development 2025-02-13 13:46:44 +08:00
Li Jie
370604f8eb add install.sh for local and remote installation 2025-02-13 13:34:45 +08:00
visualfc
368c7d6cda runtime/internal/lib/reflect: fix TypeOf check closure 2025-02-13 10:28:36 +08:00
xushiwei
0a9dfdc5c0 Merge pull request #986 from goplus/dependabot/go_modules/compiler/github.com/goplus/mod-0.13.17
build(deps): bump github.com/goplus/mod from 0.13.16 to 0.13.17 in /compiler
2025-02-12 17:28:06 +08:00
dependabot[bot]
72d0d4e274 build(deps): bump github.com/goplus/mod in /compiler
Bumps [github.com/goplus/mod](https://github.com/goplus/mod) from 0.13.16 to 0.13.17.
- [Release notes](https://github.com/goplus/mod/releases)
- [Commits](https://github.com/goplus/mod/compare/v0.13.16...v0.13.17)

---
updated-dependencies:
- dependency-name: github.com/goplus/mod
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-11 00:29:06 +00:00
xushiwei
d0067ccf68 Merge pull request #981 from visualfc/reflectlite
runtime/internal/lib/reflectlite: implement func
2025-02-10 13:55:16 +08:00
xushiwei
409793cb21 Merge pull request #980 from cpunion/fix-env-injection
build: fix goreleaser env injection
2025-02-10 13:52:16 +08:00
xushiwei
a9eb65926f Merge pull request #984 from goplus/dependabot/go_modules/compiler/github.com/qiniu/x-1.13.12
build(deps): bump github.com/qiniu/x from 1.13.11 to 1.13.12 in /compiler
2025-02-10 13:51:08 +08:00
dependabot[bot]
18d8677fe6 build(deps): bump github.com/qiniu/x in /compiler
Bumps [github.com/qiniu/x](https://github.com/qiniu/x) from 1.13.11 to 1.13.12.
- [Release notes](https://github.com/qiniu/x/releases)
- [Commits](https://github.com/qiniu/x/compare/v1.13.11...v1.13.12)

---
updated-dependencies:
- dependency-name: github.com/qiniu/x
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-10 00:46:38 +00:00
visualfc
09c8567e39 runtime/internal/lib/reflectlite: implement func 2025-02-07 12:04:54 +08:00
Li Jie
6bbd4b214a build: fix goreleaser env injection 2025-02-07 09:58:23 +08:00
xushiwei
a345746cbd Merge pull request #979 from luoliwoshang/clang/presume
c/clang:presume location
2025-02-06 17:00:32 +08:00
luoliwoshang
0a0bb128d6 c/clang:presume location 2025-02-06 16:37:07 +08:00
xushiwei
29ec3014e7 Merge pull request #911 from visualfc/reflect.conv
internal/lib/reflect: convertOp
2025-02-05 20:12:51 +08:00
visualfc
9ddd4d4161 compiler/cl/_testgo: reflectconv 2025-02-05 16:13:29 +08:00
visualfc
3caae31374 internal/runtime: pointer set abi.KindDirectIface 2025-02-05 15:20:20 +08:00
visualfc
b69abd1058 internal/runtime: find type 2025-02-05 15:20:20 +08:00
visualfc
114c6bd6fc internal/lib/reflect: fix call method 2025-02-05 15:20:20 +08:00
visualfc
d81c5e750d internal/runtime: impl ifaceE2I 2025-02-05 15:20:20 +08:00
visualfc
281d29a100 internal/lib/reflect: DeepEqual 2025-02-05 15:20:20 +08:00
visualfc
46492009a1 internal/lib/reflect: specialChannelAssignability 2025-02-05 15:20:20 +08:00
visualfc
ec549a6a25 internal/lib/reflect: value.convert check func 2025-02-05 15:20:20 +08:00
visualfc
71766d9c55 ssa/abi: StructName not pub 2025-02-05 15:20:20 +08:00
visualfc
d2d8bd550a internal/lib/reflect: fix Int/Uint/Float flagIndir 2025-02-05 15:20:20 +08:00
visualfc
0c2f6c46f6 internal/runtime: newPointer set KindDirectIface 2025-02-05 15:20:20 +08:00
visualfc
c90b93c1b7 internal/lib/reflect: convertOp 2025-02-05 15:20:20 +08:00
xushiwei
faef4fffab Merge pull request #977 from visualfc/test_debug
compiler/ssa: test debug check verbose
2025-02-05 12:19:52 +08:00
visualfc
8e8b97f623 compiler/ssa: test debug check verbose 2025-02-05 10:07:55 +08:00
xushiwei
e23d18dab8 Merge pull request #976 from visualfc/ci
ci: go test remove -v
2025-02-05 09:50:21 +08:00
visualfc
3a0d1466cc ci: go test remove -v 2025-02-05 09:32:42 +08:00
xushiwei
83dd77f4c4 Merge pull request #974 from cpunion/fix-doc-links
Fix doc links
2025-02-04 14:53:32 +08:00
xushiwei
c601c992c1 Merge pull request #975 from visualfc/namedslice
compiler/cl: fix named slice type
2025-02-04 14:52:46 +08:00
visualfc
5727761551 compiler/cl: fix named slice type 2025-02-03 20:13:57 +08:00
Li Jie
08365721de test: increase test times to try to avoid clang error 2025-02-03 18:47:24 +08:00
Li Jie
692c3542d9 doc: update links 2025-02-03 18:26:41 +08:00
Li Jie
60dc1f7d75 ci: verify markdown links by lychee 2025-02-03 18:26:16 +08:00
xushiwei
e5ff33fcc6 Merge pull request #969 from cpunion/find-llgo-root
test: retry failed test to avoid clang error
2025-02-01 21:54:50 +08:00
xushiwei
c60979fff7 Merge pull request #970 from xushiwei/q
README: C/C++, ObjC, Swift
2025-02-01 21:10:38 +08:00
xushiwei
961ad6ebca README: C/C++, ObjC, Swift 2025-02-01 21:00:01 +08:00
Li Jie
f18237a005 test: retry llgo test to avoid clang error 2025-02-01 20:56:55 +08:00
xushiwei
cba93e61b4 Merge pull request #960 from visualfc/instnamed
ssa: abi.NamedName for instance named
2025-02-01 19:23:25 +08:00
xushiwei
e0a6e5d2f9 Merge pull request #968 from cpunion/find-llgo-root
Find llgo root
2025-02-01 19:01:34 +08:00
Li Jie
a9ee323760 test: disable log and output to speed up testing 2025-02-01 14:11:46 +08:00
Li Jie
977db86700 env: warning and fallback if LLGO_ROOT is invalid 2025-02-01 14:11:46 +08:00
Li Jie
93d36d40d8 env: fix version 2025-02-01 14:11:46 +08:00
Li Jie
cabc7ffca8 env: find llgo root for development 2025-02-01 14:11:46 +08:00
Li Jie
521b70c715 test: llgo clean, llgo cmptest, llgo cmptest -gen 2025-02-01 14:11:46 +08:00
Li Jie
b6c5503c5b test: chore/llgen 2025-02-01 14:11:46 +08:00
Li Jie
e7e2ba4790 test: test llgo run -v 2025-02-01 14:11:45 +08:00
Li Jie
8749923f1a test: make cmd testable 2025-02-01 14:11:45 +08:00
Li Jie
25a3e19384 ci: update codecov ignore config 2025-02-01 14:11:40 +08:00
visualfc
b6b686665a compiler/cl: inst named stable sort 2025-02-01 13:52:10 +08:00
visualfc
4f5468469b compiler/cl/_testgo: add tpinst 2025-02-01 12:28:09 +08:00
visualfc
7bc7f23125 ssa: abi.NamedName for instance named 2025-02-01 10:29:35 +08:00
xushiwei
25ed652fc0 Merge pull request #966 from visualfc/reflect_go123
runtime: fix reflect type for go1.23
2025-02-01 03:39:45 +08:00
xushiwei
cc2913352a Merge pull request #955 from visualfc/conv
ssa: fix cvtType check types.Alias
2025-01-30 11:59:35 +08:00
visualfc
ad796ebbec compiler: fix build go1.22 for GODEBUG=gotypesalias=1 2025-01-29 19:07:37 +08:00
visualfc
edd561f8ba runtime: fix reflect type for go1.23 2025-01-29 18:58:36 +08:00
xushiwei
0b1c4fb54f Merge pull request #964 from goplus/dependabot/go_modules/compiler/github.com/goplus/gogen-1.16.6
build(deps): bump github.com/goplus/gogen from 1.16.5 to 1.16.6 in /compiler
2025-01-23 13:44:19 +08:00
dependabot[bot]
9f4eb4f7db build(deps): bump github.com/goplus/gogen in /compiler
Bumps [github.com/goplus/gogen](https://github.com/goplus/gogen) from 1.16.5 to 1.16.6.
- [Release notes](https://github.com/goplus/gogen/releases)
- [Commits](https://github.com/goplus/gogen/compare/v1.16.5...v1.16.6)

---
updated-dependencies:
- dependency-name: github.com/goplus/gogen
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-22 01:15:38 +00:00
xushiwei
f6e3a3917e Merge pull request #959 from luoliwoshang/sys/ExecInChild
syscall(linux): forkAndExecInChild
2025-01-21 07:30:48 +08:00
luoliwoshang
1b536bf5f8 syscall(linux):use clone as go instead fork 2025-01-20 08:30:02 +00:00
xushiwei
e3afdb6c02 Merge pull request #962 from cpunion/fix-abi
fix(ssa): fix incorrectly ABI for uninstantiated generic methods
2025-01-18 23:55:27 +08:00
Li Jie
918b36e28f fix(ssa): fix incorrectly generated ABI for uninstantiated generic methods 2025-01-17 20:36:04 +08:00
luoliwoshang
ce26637410 demo:command run 2025-01-17 08:30:07 +00:00
luoliwoshang
2053c72008 c/os:dup3 2025-01-16 11:00:18 +00:00
luoliwoshang
275bde6461 syscall(linux): forkAndExecInChild 2025-01-16 10:59:38 +00:00
luoliwoshang
f85382edd4 c/syscall: zsysnum 2025-01-14 14:09:52 +00:00
xushiwei
e016e92c41 Merge pull request #949 from goplus/dependabot/go_modules/compiler/github.com/goplus/gogen-1.16.5
build(deps): bump github.com/goplus/gogen from 1.16.4 to 1.16.5 in /compiler
2025-01-13 19:48:20 +08:00
dependabot[bot]
2594b8e3f9 build(deps): bump github.com/goplus/gogen in /compiler
Bumps [github.com/goplus/gogen](https://github.com/goplus/gogen) from 1.16.4 to 1.16.5.
- [Release notes](https://github.com/goplus/gogen/releases)
- [Commits](https://github.com/goplus/gogen/compare/v1.16.4...v1.16.5)

---
updated-dependencies:
- dependency-name: github.com/goplus/gogen
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-13 11:08:50 +00:00
xushiwei
1e1ef594c8 Merge pull request #951 from xushiwei/q
xtool/clang: disable types
2025-01-13 19:08:05 +08:00
xushiwei
01c660faba Merge pull request #952 from goplus/dependabot/go_modules/compiler/github.com/goplus/mod-0.13.16
build(deps): bump github.com/goplus/mod from 0.13.15 to 0.13.16 in /compiler
2025-01-13 19:07:35 +08:00
visualfc
9f76237705 ssa: fix cvtType check types.Alias 2025-01-13 12:38:15 +08:00
dependabot[bot]
59d3e3f3da build(deps): bump github.com/goplus/mod in /compiler
Bumps [github.com/goplus/mod](https://github.com/goplus/mod) from 0.13.15 to 0.13.16.
- [Release notes](https://github.com/goplus/mod/releases)
- [Commits](https://github.com/goplus/mod/compare/v0.13.15...v0.13.16)

---
updated-dependencies:
- dependency-name: github.com/goplus/mod
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-13 01:05:42 +00:00
xushiwei
e5dd237f12 xtool/clang: disable types 2025-01-13 09:05:19 +08:00
xushiwei
e9729bea7e Merge pull request #945 from goplus/dependabot/go_modules/compiler/github.com/goplus/mod-0.13.15
build(deps): bump github.com/goplus/mod from 0.13.13 to 0.13.15 in /compiler
2025-01-12 09:11:46 +08:00
dependabot[bot]
d46b17d8a0 build(deps): bump github.com/goplus/mod in /compiler
Bumps [github.com/goplus/mod](https://github.com/goplus/mod) from 0.13.13 to 0.13.15.
- [Release notes](https://github.com/goplus/mod/releases)
- [Commits](https://github.com/goplus/mod/compare/v0.13.13...v0.13.15)

---
updated-dependencies:
- dependency-name: github.com/goplus/mod
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-11 19:36:26 +00:00
xushiwei
383d25226e Update dependabot.yml 2025-01-12 03:35:27 +08:00
xushiwei
745eff0783 Merge pull request #943 from goplus/dependabot/github_actions/actions/cache-4
build(deps): bump actions/cache from 3 to 4
2025-01-10 09:59:23 +08:00
dependabot[bot]
ac301045b9 build(deps): bump actions/cache from 3 to 4
Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-10 00:58:56 +00:00
xushiwei
e1f3ca8172 Merge pull request #929 from cpunion/go123
Separate compiler, runtime and llgo library
2025-01-09 20:13:35 +08:00
Li Jie
4ff4ceeb22 ssa: show detail message of runtime failed 2025-01-09 19:50:01 +08:00
Li Jie
4126992a8f compiler: remove completed todo 2025-01-09 19:39:12 +08:00
Li Jie
fd99f63bd6 ci: hello world testing with different version declarations in go.mod and go versions 2025-01-09 18:55:22 +08:00
Li Jie
46dc7c3a77 test: increase test coverage 2025-01-09 18:55:22 +08:00
Li Jie
a8cb551465 env: add tests for codecov 2025-01-09 18:55:21 +08:00
Li Jie
5a5674809c ssa: Builder.TypeName processes types.Alias 2025-01-09 16:59:51 +08:00
Li Jie
761e8a2ac6 compiler: make compiler working on go 1.23 project 2025-01-09 16:11:39 +08:00
Li Jie
dfa7effa14 ci: config release build 2025-01-09 15:39:03 +08:00
Li Jie
09c022e209 cmd: fix return value with arguments 2025-01-09 15:32:27 +08:00
Li Jie
8666a75161 ci: remove unused python libraries installation step 2025-01-09 11:58:24 +08:00
Li Jie
68018d8d04 runtime: clean demo 2025-01-09 09:05:45 +08:00
Li Jie
3d2c014801 cl: clean test 2025-01-09 00:47:45 +08:00
Li Jie
4f9c341103 ci: update codecov ignore 2025-01-09 00:23:30 +08:00
Li Jie
563f03554f test: llgo commands 2025-01-09 00:09:47 +08:00
Li Jie
219376044a ci: fix llgo workflow name 2025-01-08 23:23:58 +08:00
Li Jie
591dac8b41 compiler: remove unused packages 2025-01-08 23:02:46 +08:00
Li Jie
2bc96ade33 lldb: test lldb cross go compilers 2025-01-08 22:16:03 +08:00
Li Jie
95c4456ccc env: get GOROOT from env variable or go env GOROOT 2025-01-08 22:16:03 +08:00
Li Jie
6e6b8b404f runtime: rename clite conflicts function names 2025-01-08 22:16:02 +08:00
Li Jie
27052c21be ci: test lldb last 2025-01-08 22:16:02 +08:00
Li Jie
ec744f7385 chore: move compiler/chore/_xtool to _xtool 2025-01-08 22:16:02 +08:00
Li Jie
d8c5105c91 ci: set LLGO_ROOT for doc test 2025-01-08 22:16:01 +08:00
Li Jie
acd5fb19f5 ci: rename llgo test job name 2025-01-08 15:55:38 +08:00
Li Jie
52ac486814 doc: fix llgo installation 2025-01-08 15:40:11 +08:00
Li Jie
a64b32bf9c ci: compile go with go1.23, test llgo with go 1.20-1.23 2025-01-08 15:36:41 +08:00
Li Jie
b299800e64 compiler: move _lldb into compiler/ 2025-01-08 15:22:09 +08:00
Li Jie
60c430abad test: regenerate test snapshots with gentests 2025-01-08 15:19:38 +08:00
Li Jie
255cce4f9a test: move cchan/cchansel into runtime/_test 2025-01-08 15:03:58 +08:00
Li Jie
1ed99c2574 cl: isAny compatible alias 2025-01-08 14:59:02 +08:00
Li Jie
64b54d4380 ssa: make alias working in go 1.22 2025-01-08 14:59:02 +08:00
Li Jie
6170973b48 compiler: build separation runtime with clite 2025-01-08 14:59:01 +08:00
Li Jie
1172e5bdce build: separate compiler and libs 2025-01-08 14:59:01 +08:00
Li Jie
b0123567cd ci: ignore code coverage of llgo libs 2025-01-08 14:59:00 +08:00
Li Jie
81598621e8 ci: codecov report excludes llgo library 2025-01-08 14:59:00 +08:00
Li Jie
239ac496b2 test: map/slice clear 2025-01-08 14:59:00 +08:00
Li Jie
76fb91619a demo: workaround for reflect abi initialization on go@1.23 2025-01-08 14:58:59 +08:00
Li Jie
e3a2d43ffa runtime: add missing SliceClear 2025-01-08 14:58:59 +08:00
Li Jie
b3f4716616 runtime: patch internal/filepathlite 2025-01-08 14:58:59 +08:00
Li Jie
c602038597 demo: don't use symlinks for x/tools compatible 2025-01-08 14:58:59 +08:00
Li Jie
03b469212e feat: upgrade to x/tools 0.28 2025-01-08 14:58:59 +08:00
xushiwei
db3f6e077e Merge pull request #941 from cpunion/fix-doc-verify
doc: fix macos installation doc verify
2025-01-08 08:58:31 +08:00
Li Jie
06816c51a5 doc: fix macos installation doc verify 2025-01-07 21:28:14 +08:00
xushiwei
9e9e8e82b2 Merge pull request #936 from cpunion/optional-llgo-root
build: make llgo root usage optional for runtime loading
2025-01-07 19:47:40 +08:00
xushiwei
031d4ebedc Merge pull request #937 from MeteorsLiu/main
README: fix dependences requirement for macOS
2025-01-07 18:40:03 +08:00
xushiwei
3446715af8 Merge pull request #934 from cpunion/fix-build
build.ParseArgs returns new slices to fix wrong patterns with flags appending
2025-01-07 18:07:13 +08:00
Rick Guo
c7e68dab62 README: fix dependences for macOS 2025-01-06 17:38:36 +08:00
Li Jie
7093ced2d8 build: make llgo root usage optional for runtime loading
When github.com/goplus/llgo is imported in go.mod, use the user-specified
version instead of LLGoROOT. This allows users to upgrade llgo via go.mod
while maintaining backward compatibility for cases without explicit imports.

Note: This is a temporary solution. The runtime's dependency on
github.com/goplus/llgo/c/* needs to be addressed in future improvements.
2025-01-06 16:36:16 +08:00
Li Jie
179f4dfe22 build: ParseArgs return new slices 2025-01-06 10:10:11 +08:00
xushiwei
03517ce22e Merge pull request #933 from cpunion/independent
env: allow compiling code outside llgo directory
2025-01-05 07:10:29 +08:00
Li Jie
290f99b4d1 env: allow compiling code outside llgo directory 2025-01-04 23:40:13 +08:00
xushiwei
7f10bc2a1b Merge pull request #930 from cpunion/panic-stacktrace
runtime: show stacktrace when panic
2025-01-03 12:04:12 +08:00
Li Jie
9cb48003b0 ci: add libunwind-dev on ubuntu 2025-01-02 23:27:45 +08:00
Li Jie
6df961292d doc: install libunwind-dev on ubuntu 2025-01-02 23:27:45 +08:00
Li Jie
65f855b251 runtime: show stacktrace when panic 2025-01-02 23:27:41 +08:00
xushiwei
5131881bf2 Merge pull request #928 from goplus/dependabot/go_modules/github.com/goplus/llvm-0.8.1
build(deps): bump github.com/goplus/llvm from 0.8.0 to 0.8.1
2024-12-31 19:19:16 +08:00
dependabot[bot]
8fbad90e9d build(deps): bump github.com/goplus/llvm from 0.8.0 to 0.8.1
Bumps [github.com/goplus/llvm](https://github.com/goplus/llvm) from 0.8.0 to 0.8.1.
- [Release notes](https://github.com/goplus/llvm/releases)
- [Commits](https://github.com/goplus/llvm/compare/v0.8.0...v0.8.1)

---
updated-dependencies:
- dependency-name: github.com/goplus/llvm
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-31 11:06:15 +00:00
xushiwei
d0aceebaad Merge pull request #926 from goplus/dependabot/go_modules/github.com/goplus/gogen-1.16.4
build(deps): bump github.com/goplus/gogen from 1.16.3 to 1.16.4
2024-12-31 13:57:06 +08:00
dependabot[bot]
01b6680000 build(deps): bump github.com/goplus/gogen from 1.16.3 to 1.16.4
Bumps [github.com/goplus/gogen](https://github.com/goplus/gogen) from 1.16.3 to 1.16.4.
- [Release notes](https://github.com/goplus/gogen/releases)
- [Commits](https://github.com/goplus/gogen/compare/v1.16.3...v1.16.4)

---
updated-dependencies:
- dependency-name: github.com/goplus/gogen
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-31 05:40:12 +00:00
xushiwei
638883f352 Merge pull request #925 from goplus/dependabot/go_modules/github.com/goplus/mod-0.13.13
build(deps): bump github.com/goplus/mod from 0.13.12 to 0.13.13
2024-12-31 08:10:07 +08:00
dependabot[bot]
467c2fb28d build(deps): bump github.com/goplus/mod from 0.13.12 to 0.13.13
Bumps [github.com/goplus/mod](https://github.com/goplus/mod) from 0.13.12 to 0.13.13.
- [Release notes](https://github.com/goplus/mod/releases)
- [Commits](https://github.com/goplus/mod/compare/v0.13.12...v0.13.13)

---
updated-dependencies:
- dependency-name: github.com/goplus/mod
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-30 23:56:08 +00:00
xushiwei
0fd129a0d8 Merge pull request #924 from xushiwei/q
llgo get: todo
2024-12-30 21:17:04 +08:00
xushiwei
282125a84b llgo get: todo 2024-12-30 21:16:22 +08:00
xushiwei
97a2824473 Merge pull request #915 from visualfc/runtime.hash
[WIP] internal/runtime: type hash
2024-12-26 08:30:34 +08:00
xushiwei
eff1333269 Merge pull request #922 from visualfc/fixfloat
ssa: fix bitcast for float32
2024-12-24 20:19:32 +08:00
visualfc
3741a28d94 ssa: fix bitcast for float32 2024-12-24 10:02:30 +08:00
xushiwei
6dd4ec160d Merge pull request #921 from visualfc/runtime.closure
ssa: closure use specific struct field name
2024-12-23 10:53:12 +08:00
visualfc
a6a3c09c05 ssa: closure use specific struct field name { $f ftype, $data unsafe.pointer } 2024-12-22 12:44:33 +08:00
visualfc
620cfeabe0 internal/runtime: type hash 2024-12-21 20:07:28 +08:00
xushiwei
070d64f365 Merge pull request #920 from visualfc/runtime.namedset
[WIP] internal/runtime: named(ptr) type preset for method type
2024-12-21 07:13:39 +08:00
visualfc
1d3c98372a internal/runtime: cache rtypeList 2024-12-20 20:45:46 +08:00
visualfc
c1588d70cd internal/runtime: structStr 2024-12-20 16:09:39 +08:00
visualfc
ef28abe896 internal/runtime: funcStr, interfaceStr, array str 2024-12-20 12:33:34 +08:00
visualfc
d251232f8a internal/runtime: named(ptr) type preset for method type 2024-12-20 11:37:30 +08:00
xushiwei
05334de855 Merge pull request #914 from aofei/README
README: add install instructions for Alpine
2024-12-19 18:14:15 +08:00
xushiwei
539b55f826 Merge pull request #917 from visualfc/conststring
ssa: fix const for named string
2024-12-19 18:13:24 +08:00
xushiwei
0699832240 Merge pull request #919 from visualfc/runtime.named
internal/runtime: NewNamedInterface check exist
2024-12-19 18:12:53 +08:00
visualfc
ce169163b9 internal/runtime: NewNamedInterface check exist 2024-12-17 21:36:51 +08:00
xushiwei
b4af70ada9 Merge pull request #916 from visualfc/runtime.interface
abi: fix named interface init
2024-12-17 14:43:15 +08:00
xushiwei
424670d854 Merge pull request #918 from tsingbx/c/_types
include/_types: add Uint8T, Uint16T, Uint32T, Uint64T, IntmaxT, UintmaxT
2024-12-17 14:41:44 +08:00
tsingbx
6ce4644120 include/_types: add Uint8T, Uint16T, Uint32T, Uint64T, IntmaxT, UintmaxT 2024-12-16 18:15:01 +08:00
visualfc
eaf7e56083 ssa: fix const for named string 2024-12-16 15:00:32 +08:00
visualfc
e55a5d7486 internal/runtime: NewNamedInterface, InitNamedInterface 2024-12-16 12:07:13 +08:00
Aofei Sheng
e1d14b1324 README: add install instructions for Alpine
Fixes #910

Signed-off-by: Aofei Sheng <aofei@aofeisheng.com>
2024-12-14 18:06:16 +08:00
xushiwei
04d09eb891 Merge pull request #913 from xushiwei/q
README: cgo, c/ffi
2024-12-14 09:16:18 +08:00
xushiwei
09b4f5dffd README: cgo, c/ffi 2024-12-14 08:15:08 +08:00
xushiwei
29ad96862f Merge pull request #628 from visualfc/go
ssa: fix ssa.go for builtin
2024-12-14 06:44:35 +08:00
xushiwei
839d68d62c Merge pull request #912 from luoliwoshang/c/clang/typesize
c/clang:type size
2024-12-12 22:10:34 +08:00
luoliwoshang
a4d3bf3cb2 c/clang:type size 2024-12-12 18:16:40 +08:00
xushiwei
a05bda9fc3 Merge pull request #762 from spongehah/golib/time
lib/time: patch div and Time.Round
2024-12-10 18:51:45 +08:00
xushiwei
5936b57bac Merge pull request #909 from tsingbx/llgo/linkerror
fix link fail for cjsondemo
2024-12-08 11:24:55 +08:00
tsingbx
af2bcd389e fix link error 2024-12-08 10:18:47 +08:00
xushiwei
4bec9b038b Merge pull request #906 from visualfc/llccheck
[WIP] build: env LLGO_CHECK=1 for llc check module
2024-12-05 12:17:15 +08:00
visualfc
0b3ce5f65a build: env LLGO_CHECK=1 for llc check module 2024-12-05 11:07:21 +08:00
xushiwei
cb8e820f5d Merge pull request #905 from luoliwoshang/c/FILE
c:file
2024-12-05 09:56:43 +08:00
luoliwoshang
0a4ce9d65e c:FILE 2024-12-04 15:02:54 +08:00
xushiwei
f20d74c1f3 Merge pull request #904 from visualfc/revert-630-deferargs
Revert "ssa: defer load/store func and args"
2024-12-04 09:47:36 +08:00
七叶
3505be422e Revert "ssa: defer load/store func and args" 2024-12-03 21:00:49 +08:00
xushiwei
7e9542e79a Merge pull request #898 from visualfc/expand
xtool/env: fix ExpandEnvToArgs check pkg-config
2024-12-03 09:33:59 +08:00
visualfc
a1c1a4889b xtool/env: fix ExpandEnvToArgs check pkg-config 2024-12-03 09:17:54 +08:00
visualfc
7eeb8084bf ssa: fix ssa.go for builtin 2024-12-02 15:40:56 +08:00
xushiwei
7a5bd6ae6a Merge pull request #630 from visualfc/deferargs
ssa: defer load/store func and args
2024-12-02 13:51:25 +08:00
xushiwei
d20e60afb3 Merge pull request #891 from visualfc/debug
[WIP] c/debug: func addr and info
2024-12-02 13:46:56 +08:00
xushiwei
7340263e6a Merge pull request #893 from tsingbx/clang
add clang.GoString, clang.File functions for helper of llcppsymg struct_methodname
2024-12-02 13:45:55 +08:00
visualfc
6e8cecd13e cl/_testgo: defer6 2024-12-02 11:43:20 +08:00
tsingbx
f106a0854f use temp to reduse clangStr.CStr call times 2024-12-02 10:20:41 +08:00
tsingbx
68b09e87b3 add clang.GoString, clang.File functions for helper of llcppsymg struct_methodname 2024-12-02 09:52:35 +08:00
visualfc
11f2ecd675 ssa: defer load/store func and args 2024-11-30 14:31:23 +08:00
visualfc
7b6b8b0eeb c/debug: StackTrace 2024-11-30 13:47:37 +08:00
visualfc
67f9580c5d c/debug: func addr and info 2024-11-30 13:45:19 +08:00
xushiwei
6a3fce97cf Merge pull request #894 from cpunion/fix-release-build
ci: lock release build to llvm@18
2024-11-29 16:43:35 +08:00
Li Jie
2bd266a7fc ci: lock release build to llvm@18 2024-11-29 10:26:14 +08:00
xushiwei
f6946b88d2 Merge pull request #890 from luoliwoshang/c/sizet
c:some stdint type
2024-11-28 18:25:08 +08:00
xushiwei
5e5df6becd Merge pull request #881 from cpunion/cgo-extra
cgo: support macros and callbacks (fpvars)
2024-11-28 18:24:11 +08:00
luoliwoshang
6c4cb92249 c:stdint type 2024-11-27 23:48:02 +08:00
Li Jie
c3407eac5e cgo: supports //export functions only calls in C 2024-11-27 20:24:53 +08:00
Li Jie
e46b3e24d6 test: move cgo demo into _testgo, and make links 2024-11-27 18:41:56 +08:00
Li Jie
90763de93c cgo: supports c/go callback funcs 2024-11-27 18:41:56 +08:00
Li Jie
5380ffa471 cgo: ignore funcs won't be compiled 2024-11-27 18:41:56 +08:00
Li Jie
c9f436cc47 cgo: full test
cgo: test returning void
2024-11-27 18:41:56 +08:00
Li Jie
39dc68fa4e demo/cgofull: add multi cgo module and macro calling 2024-11-27 18:41:56 +08:00
Li Jie
d6c527f662 cgo: support macros 2024-11-27 18:41:56 +08:00
xushiwei
38a7f4f7d5 Merge pull request #888 from xushiwei/q
mv llcppg => github.com/goplus/llcppg
2024-11-27 17:35:50 +08:00
xushiwei
1605959a04 ci: rm Install llcppg 2024-11-27 17:24:12 +08:00
xushiwei
b837e0005a gogensig 2024-11-27 17:19:21 +08:00
xushiwei
58937a5366 mv llcppsigfetch,llcppsymg => github.com/goplus/llcppg 2024-11-27 17:17:40 +08:00
xushiwei
8562c03f80 mv llcppg => github.com/goplus/llcppg 2024-11-27 17:08:27 +08:00
xushiwei
1cd61b9169 Merge pull request #886 from visualfc/reflect.map
reflect: implement map
2024-11-27 14:12:56 +08:00
xushiwei
c69e289afe Merge pull request #887 from goplus/dependabot/go_modules/github.com/goplus/gogen-1.16.3
build(deps): bump github.com/goplus/gogen from 1.16.2 to 1.16.3
2024-11-27 14:12:31 +08:00
visualfc
91b46b05ad cl/_testgo/reflect: map demo 2024-11-27 11:31:28 +08:00
visualfc
2412760f1c internal/lib/reflect: makemap 2024-11-27 11:31:07 +08:00
dependabot[bot]
d83c5493c7 build(deps): bump github.com/goplus/gogen from 1.16.2 to 1.16.3
Bumps [github.com/goplus/gogen](https://github.com/goplus/gogen) from 1.16.2 to 1.16.3.
- [Release notes](https://github.com/goplus/gogen/releases)
- [Commits](https://github.com/goplus/gogen/compare/v1.16.2...v1.16.3)

---
updated-dependencies:
- dependency-name: github.com/goplus/gogen
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-27 03:26:05 +00:00
xushiwei
d041703dc6 Merge pull request #885 from cpunion/fix
fix: wrong llvm libs flag
2024-11-27 11:24:39 +08:00
visualfc
ecba13c38e internal/lib/reflect: use sync.Map 2024-11-27 10:33:22 +08:00
visualfc
cd3a4bb8c8 reflect: implement map 2024-11-26 20:45:01 +08:00
Li Jie
97f72b93e1 fix: wrong llvm libs flag 2024-11-26 16:08:29 +08:00
xushiwei
e93d57983e Merge pull request #884 from cpunion/unify-build
Unify cltest, llgen, gentests to build.Do
2024-11-26 15:58:06 +08:00
Li Jie
43c4a3bfdc test: enable debug testing 2024-11-26 15:43:34 +08:00
Li Jie
954cc0e8bc test: ignore syncmap since different pthread_mutex_t size on macOS and linux 2024-11-26 13:21:33 +08:00
Li Jie
ad48325dff test: regenerate test fixtures 2024-11-26 13:21:01 +08:00
Li Jie
fa1ad20d5d ffi: fix ci and install doc 2024-11-26 13:19:02 +08:00
Li Jie
0547dede21 cpp: fix ldflags of llvm 2024-11-26 13:19:02 +08:00
Li Jie
284ae23db2 doc: install missing libsqlite3-dev 2024-11-26 13:19:02 +08:00
Li Jie
9105f28c13 ci: don't install pkg-config explicitly 2024-11-26 13:18:59 +08:00
Li Jie
06cc43b11f test: test dirs under _demo only has *.go files 2024-11-26 13:17:36 +08:00
Li Jie
d879d0d924 build: make llgen, cltest, gentests call build.Do 2024-11-26 13:17:36 +08:00
xushiwei
25bc84817a Merge pull request #880 from visualfc/valist
ssa: closure use org signature
2024-11-26 13:02:30 +08:00
visualfc
8fb0dfad94 ssa: abiNamed use NameOf 2024-11-26 12:46:11 +08:00
visualfc
c2138037d2 internal/lib/reflect: call variadic check 2024-11-26 12:46:11 +08:00
visualfc
fadd64c1e9 ssa: cvtClosure remove closureCtx param 2024-11-26 12:46:11 +08:00
visualfc
4552691aed ssa: toLLVMFunc by NameValist 2024-11-26 12:46:11 +08:00
xushiwei
bab5c0589f Merge pull request #883 from luoliwoshang/ci/llcppg
ci:install llcppg dependent
2024-11-26 12:44:31 +08:00
luoliwoshang
2a2c614eb4 ci:remove pre-install pkg-config 2024-11-26 11:52:35 +08:00
luoliwoshang
12529ec81e ci:install llcppg dependent 2024-11-26 11:13:25 +08:00
luoliwoshang
0179609a49 ci:trigger for sub-repositories 2024-11-26 10:56:37 +08:00
xushiwei
860c551aa6 Merge pull request #876 from cpunion/fix-demo-test
Enable demo test
2024-11-25 12:15:33 +08:00
Li Jie
1ba3474a5a lib: impl syscall.Faccesat 2024-11-25 12:05:12 +08:00
Li Jie
f26c283541 ci: enable demo result checking 2024-11-25 12:05:12 +08:00
Li Jie
56e9dab2ce ci: test demo with python 3.12 2024-11-25 12:05:12 +08:00
Li Jie
b1fcae5cec cgo: only scan non-directories and ignore *_test.c 2024-11-25 12:05:12 +08:00
xushiwei
93245ac37a Merge pull request #879 from cpunion/fix-type-patching
Fix type patching
2024-11-25 11:52:48 +08:00
Li Jie
3f795e44c7 demo: sizeof sync.Mutex 2024-11-25 11:36:26 +08:00
Li Jie
e732e5158e cl: fix package patching 2024-11-25 11:36:26 +08:00
xushiwei
2f5c033f09 Merge pull request #878 from cpunion/update-code-gen
test: update generated code
2024-11-25 11:32:17 +08:00
Li Jie
6099369019 test: update generated code 2024-11-25 11:18:46 +08:00
xushiwei
8d2b65386c Merge pull request #874 from cpunion/fix-closure
ssa: fix wrong reflect type of closure
2024-11-25 11:05:04 +08:00
xushiwei
ed835225cf Merge pull request #875 from cpunion/fix-alloc-in-loop
Reduce alloca
2024-11-25 10:54:28 +08:00
Li Jie
43c1bc8d5f ssa: compile go string constant without alloca 2024-11-24 15:29:20 +08:00
Li Jie
17832fe18c ssa: fix type of ChanOp.Size 2024-11-24 15:21:32 +08:00
Li Jie
252f3f0bd6 ssa: fix closure type 2024-11-24 10:54:00 +08:00
xushiwei
e042aad819 Merge pull request #873 from luoliwoshang/workflow/pkgconf
ci: remove pre-installed pkg-config
2024-11-23 19:41:13 +08:00
luoliwoshang
9966daf0cf ci: remove pre-installed pkg-config 2024-11-23 19:27:11 +08:00
xushiwei
daf5e9cccf Merge pull request #871 from luoliwoshang/doc/ssizet
doc:ssize_t
2024-11-22 23:13:39 +08:00
xushiwei
bf63d731d3 Merge pull request #870 from luoliwoshang/llcppsigfetch/otherdefinetype
llcppsigfetch:typedef refer same struct & remove tokenize check for underlying
2024-11-22 23:12:34 +08:00
luoliwoshang
12abfc0fcf doc:ssize_t 2024-11-21 21:38:11 +08:00
xushiwei
dea1b520f7 Merge pull request #852 from visualfc/reflect.func
internal/lib/reflect: support method call
2024-11-21 07:42:18 +08:00
luoliwoshang
a5c268491e llcppsigfetch: test typedef anonymous enum with multiple type names 2024-11-20 17:56:44 +08:00
luoliwoshang
bf34f553bb llcppsigfetch:typedef refer same anony struct & fix typedef 's underlying token out of bound 2024-11-20 16:58:18 +08:00
luoliwoshang
97c61404ca llcppsigfetch:test config 2024-11-20 14:09:58 +08:00
visualfc
c40d9f54a2 internal/lib/reflect: value.call support multi ret 2024-11-19 20:51:08 +08:00
visualfc
5e08593358 internal/lib/reflect: toFFIArg check interface 2024-11-19 20:51:08 +08:00
visualfc
1f06b12f86 internal/lib/reflect: toFFIArg 2024-11-19 20:51:08 +08:00
visualfc
c7351f724e internal/lib/reflect: toFFIType 2024-11-19 20:51:08 +08:00
visualfc
1851bce497 internal/lib/reflect: Value.InterfaceData 2024-11-19 20:51:08 +08:00
visualfc
5fb8503fd2 internal/lib/reflect: Value.IsZero 2024-11-19 20:51:08 +08:00
visualfc
792716eefc internal/lib/reflect: Value.SetZero 2024-11-19 20:51:08 +08:00
visualfc
15a6c779b8 internal/lib/reflect: Value.New 2024-11-19 20:51:08 +08:00
visualfc
93d24e7106 internal/lib/reflect: Value.UnsafePointer 2024-11-19 20:51:08 +08:00
visualfc
b8a185c112 internal/lib/reflect: Value.Slice Value.Slice3 2024-11-19 20:51:08 +08:00
visualfc
e242e65569 internal/lib/reflect: Value.SetLen Value.SetCap 2024-11-19 20:51:08 +08:00
visualfc
62ab33a434 internal/lib/reflect: Value.Len Value.Cap 2024-11-19 20:51:08 +08:00
visualfc
f403916ef8 internal/lib/reflect: Value.bytesSlow 2024-11-19 20:51:08 +08:00
visualfc
38f1585ac6 internal/lib/reflect: Value.Float Value.Bool 2024-11-19 20:51:08 +08:00
visualfc
1f757270d9 internal/lib/reflect: impl Value.Field 2024-11-19 20:51:08 +08:00
visualfc
e6de8401bf internal/lib/reflect: makeMethodValue 2024-11-19 20:51:08 +08:00
visualfc
df2e34ac51 internal/lib/reflect: call.method 2024-11-19 20:51:08 +08:00
visualfc
7bbd3a7e36 internal/lib/reflect: TypeOf check closure 2024-11-19 20:51:07 +08:00
visualfc
85a736d49b internal/lib/reflect: closure keep orgtype 2024-11-19 20:51:07 +08:00
xushiwei
f9eb313f7c Merge pull request #869 from cpunion/fix-linking
Fix linking args, force doc test run on current ref
2024-11-19 17:46:14 +08:00
Li Jie
9cec486a1b build: compatible spaces in path outputted from pkg-config 2024-11-19 16:43:45 +08:00
Li Jie
7734c654a7 doc: make doc test use current ref 2024-11-19 10:50:49 +08:00
Li Jie
8e5fff6c5f build: fix linking args and llgo install 2024-11-19 10:50:45 +08:00
xushiwei
faa9a740db Merge pull request #866 from cpunion/cgo
Full cgo support
2024-11-16 05:33:16 +08:00
xushiwei
70e39e9902 Merge pull request #867 from luoliwoshang/c/clang/file2loc
c/clang:file to loc
2024-11-16 05:31:22 +08:00
Li Jie
9f0b3963cb cgo: support full cgo tags 2024-11-15 16:08:24 +08:00
xushiwei
7ec2ce851c Merge pull request #868 from goplus/dependabot/github_actions/codecov/codecov-action-5
build(deps): bump codecov/codecov-action from 4 to 5
2024-11-15 12:54:29 +08:00
dependabot[bot]
94ee4223d2 build(deps): bump codecov/codecov-action from 4 to 5
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4 to 5.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-15 00:23:06 +00:00
Li Jie
a64f4219e9 cgo: full supports cgo preambles and auto compile c files 2024-11-14 23:44:25 +08:00
luoliwoshang
78e96cc312 c/clang:file to loc 2024-11-14 14:31:20 +08:00
Li Jie
89b111edca cgo: examples 2024-11-13 20:32:12 +08:00
Li Jie
ec38943c53 cl: compile cgo 2024-11-13 20:32:08 +08:00
xushiwei
ea654ef235 Merge pull request #865 from luoliwoshang/clang/include
clang:included & system header
2024-11-12 22:48:58 +08:00
luoliwoshang
288b705450 clang:included & system header 2024-11-12 20:26:33 +08:00
xushiwei
73ca579056 Merge pull request #863 from tsingbx/llcppsigfetch/c.Printf
fix llcppsigfetch: invalid memory address or nil pointer dereference
2024-11-12 15:29:38 +08:00
xushiwei
8b5d7dc181 Merge pull request #859 from goplus/dependabot/github_actions/actions/setup-go-5
build(deps): bump actions/setup-go from 4 to 5
2024-11-12 10:53:14 +08:00
xushiwei
f05f6294cd Merge pull request #861 from goplus/dependabot/go_modules/github.com/goplus/gogen-1.16.2
build(deps): bump github.com/goplus/gogen from 1.16.1 to 1.16.2
2024-11-12 10:52:55 +08:00
tsingbx
b2c466cf3f fix llcppsigfetch: invalid memory address or nil pointer dereference 2024-11-12 09:37:22 +08:00
dependabot[bot]
da1b9a0e91 build(deps): bump github.com/goplus/gogen from 1.16.1 to 1.16.2
Bumps [github.com/goplus/gogen](https://github.com/goplus/gogen) from 1.16.1 to 1.16.2.
- [Release notes](https://github.com/goplus/gogen/releases)
- [Commits](https://github.com/goplus/gogen/compare/v1.16.1...v1.16.2)

---
updated-dependencies:
- dependency-name: github.com/goplus/gogen
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-11 00:38:39 +00:00
dependabot[bot]
6cbb5a9215 build(deps): bump actions/setup-go from 4 to 5
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 4 to 5.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-11 00:36:37 +00:00
xushiwei
cfdbb86bfa Merge pull request #856 from cpunion/doc-and-fmt-test
Make docs testable
2024-11-08 16:34:21 +08:00
Li Jie
d61783b2c0 doc: install numpy in virtualenv to run test 2024-11-07 11:34:58 +08:00
Li Jie
65c1e1b9e5 ci: build chore/_xtool/... 2024-11-07 11:03:07 +08:00
Li Jie
17d509a45a doc: make doc testable 2024-11-07 11:03:01 +08:00
Li Jie
c7649766fd c: fix format 2024-11-07 09:47:22 +08:00
xushiwei
c0ec5e53ba Merge pull request #855 from luoliwoshang/libffi
workflow:libffi
2024-11-07 08:01:05 +08:00
xushiwei
a0a18017e8 Merge pull request #851 from luoliwoshang/c/clang/sliceran
c/clang:demo common iterate
2024-11-07 08:00:11 +08:00
xushiwei
411b84fcc2 Merge pull request #854 from luoliwoshang/c/clang/loc2cursor
c/clang:location to cursor
2024-11-07 07:59:43 +08:00
xushiwei
e499eeb8cc Merge pull request #857 from cpunion/fix-pydump
chore: fix types error in pydump
2024-11-07 07:59:15 +08:00
Li Jie
803d1de5db chore: fix types error in pydump 2024-11-06 11:30:35 +08:00
luoliwoshang
fc8117c8e7 workflow:libffi 2024-11-05 17:15:20 +08:00
luoliwoshang
8bef0ede1b c/clang:location to cursor 2024-11-04 15:50:05 +08:00
luoliwoshang
88128cde48 c/clang:demo common iterate 2024-11-04 09:55:35 +08:00
xushiwei
d0217e62f0 Merge pull request #850 from luoliwoshang/ssa/slicelen
ssa:fit unsafe.slice int size
2024-11-04 06:49:34 +08:00
xushiwei
bba680b636 Merge pull request #849 from luoliwoshang/c/clang/visitinclude
c/clang:include
2024-11-04 06:45:27 +08:00
luoliwoshang
feb914b5c4 ssa:fit slice int size 2024-11-01 19:54:44 +08:00
luoliwoshang
0a65ea34f3 c/clang:include 2024-11-01 18:49:48 +08:00
xushiwei
bf299edfc7 Merge pull request #847 from visualfc/reflect.call
[WIP]  internal/lib/reflect: implement reflect.call
2024-11-01 17:41:57 +08:00
visualfc
6b0122547e reflect.call: internal/abi: TFlagClosure, internal/lib/reflect: flagClosure. 2024-11-01 15:27:40 +08:00
xushiwei
88c0e149b5 Merge pull request #793 from visualfc/abitypes
ssa: fix gocvt named recurs for typeargs. support sync.Map
2024-10-30 22:00:22 +08:00
visualfc
38091b2021 ssa: func Instantiate 2024-10-30 21:39:30 +08:00
visualfc
ce87f293aa ssa: fix map key has typeargs 2024-10-30 20:22:05 +08:00
visualfc
dca028a84f ssa: fix goTypes.cvtNamed recurs for typeargs 2024-10-30 20:22:05 +08:00
visualfc
be3c4ab24a ssa: cache types named in runtime 2024-10-30 20:22:05 +08:00
xushiwei
67c9a14902 Merge pull request #846 from visualfc/closureiface
ssa: fix closure type
2024-10-30 11:02:43 +08:00
visualfc
014bdb795f ssa: program.Closure, removeCtx for MakeClosure 2024-10-30 10:42:32 +08:00
visualfc
df7e8b2e64 cl/cltest: TestCompileEx check debug flag 2024-10-30 10:18:58 +08:00
visualfc
2b5fdd3548 ssa: fix closure type 2024-10-29 20:50:02 +08:00
xushiwei
e92a0eb901 Merge pull request #806 from cpunion/llvm-debug
Debug: fix struct vars debug, params modication, supports expressions, lexical scope/lifecycle
2024-10-29 11:09:00 +08:00
xushiwei
e72a67f5de Merge pull request #788 from luoliwoshang/llcppsymg/classname
llcppsymg:refine class fetch,test case,-v
2024-10-28 11:00:55 +08:00
xushiwei
65dc291ff5 Merge pull request #812 from luoliwoshang/llcppsigfetch/refine
llcppsigfetch:cross-platform,log,fix bugs
2024-10-28 10:54:33 +08:00
xushiwei
0bfc190a86 Merge pull request #845 from goplus/dependabot/go_modules/github.com/goplus/gogen-1.16.1
build(deps): bump github.com/goplus/gogen from 1.16.0 to 1.16.1
2024-10-28 10:53:47 +08:00
dependabot[bot]
f8303f2e7a build(deps): bump github.com/goplus/gogen from 1.16.0 to 1.16.1
Bumps [github.com/goplus/gogen](https://github.com/goplus/gogen) from 1.16.0 to 1.16.1.
- [Release notes](https://github.com/goplus/gogen/releases)
- [Commits](https://github.com/goplus/gogen/compare/v1.16.0...v1.16.1)

---
updated-dependencies:
- dependency-name: github.com/goplus/gogen
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-28 00:44:02 +00:00
张之阳
8ad72b167c Merge pull request #124 from luoliwoshang/llcppsymg/underprefix
llcppsymg:underprefix
2024-10-26 18:56:56 +08:00
luoliwoshang
7747082ae8 llcppsymg:remove one leading underscore only in mac 2024-10-26 18:43:14 +08:00
luoliwoshang
a7727adca2 llcppsigfetch:remove one leading underscore only in mac 2024-10-26 13:09:30 +08:00
xushiwei
028b53816d Merge pull request #844 from luoliwoshang/c/clang/reference
c/clang:referenced
2024-10-25 11:41:40 +08:00
张之阳
5a77117a9b Merge pull request #116 from luoliwoshang/llcppsigfetch/enum_anony
llcppsigfetch:anonymous enumdecl
2024-10-24 17:50:09 +08:00
luoliwoshang
05777019c8 llcppsigfetch:anony enum 2024-10-24 17:46:33 +08:00
luoliwoshang
7ebaad5099 c/clang:referenced 2024-10-24 09:46:52 +08:00
张之阳
09885c8f41 Merge pull request #112 from luoliwoshang/llcppsigfetch/closure
llcppsigfetch:use closure refine collection
2024-10-23 16:06:28 +08:00
luoliwoshang
4f5ebb279d llcppsigfetch:refine field collection 2024-10-23 16:02:39 +08:00
luoliwoshang
91ebf88c97 llcppsigfetch:use fmt to log because linux nil defer of log 2024-10-23 15:44:41 +08:00
luoliwoshang
a608c51e36 llcppsigfetch:fix fopen's return type nil 2024-10-23 15:44:41 +08:00
luoliwoshang
3877dcf83a llcppsigfetch:refine log out 2024-10-23 15:44:41 +08:00
luoliwoshang
72d176b77a llcppsigfetch:-v 2024-10-23 15:44:41 +08:00
luoliwoshang
8840968e07 llcppsigfetch:refine args parse 2024-10-23 15:44:41 +08:00
luoliwoshang
b6b889bff6 llcppsigfetch:remove leading underscores 2024-10-23 15:44:41 +08:00
luoliwoshang
a30bdcbb50 gogensig:unsigned & signed char 2024-10-23 15:44:41 +08:00
luoliwoshang
82275d49a6 llcppg:pipe writer close 2024-10-23 15:44:41 +08:00
luoliwoshang
ee335de222 llcppsigfetch:use stdin 2024-10-23 15:44:41 +08:00
luoliwoshang
01bf7c8c38 llcppsymg & llcppsigfetch parse args 2024-10-23 15:44:41 +08:00
xushiwei
5529a1b0b3 Merge pull request #842 from visualfc/libffi
[WIP] c/ffi x/ffi: import libffi
2024-10-23 14:44:57 +08:00
visualfc
363be18599 x/ffi: wrap c/ffi 2024-10-23 11:44:34 +08:00
xushiwei
ae8ad3b68b Merge pull request #837 from cpunion/const-conv
ssa: fix int constant type conversion
2024-10-23 10:58:08 +08:00
xushiwei
348b850e36 Merge pull request #838 from cpunion/unsafe-fix
fix unsafe
2024-10-23 10:57:22 +08:00
visualfc
92c267758e c/ffi: add _demo 2024-10-23 10:53:18 +08:00
visualfc
b7d1ab6105 c/ffi: import libffi 2024-10-23 10:53:18 +08:00
xushiwei
f7f1b4f594 Merge pull request #775 from visualfc/freevars
cl: function fix freevars cache
2024-10-23 10:49:51 +08:00
xushiwei
6492bea846 Merge pull request #824 from visualfc/chkabi
ssa: abi check interface method
2024-10-23 10:45:06 +08:00
Li Jie
b1cb89b0c2 test: unsafe.{Add, Alignof, Offsetof, String, StringData, SliceData, Slice} 2024-10-21 18:53:05 +08:00
Li Jie
7ecd98b0a0 ssa: fix type of unsafe.SliceData 2024-10-21 18:53:00 +08:00
Li Jie
7d7d4db329 ssa: fix int constant type conversion 2024-10-21 18:50:32 +08:00
luoliwoshang
e6bfe1fc88 llcppsymg:refine args 2024-10-21 18:48:56 +08:00
luoliwoshang
151d3a9610 llcppsymg:libs,cflags parse 2024-10-21 18:48:56 +08:00
luoliwoshang
905ed36afd llcppsymg:symbol debug log 2024-10-21 18:48:56 +08:00
luoliwoshang
7fe9c9366e llcppsymg:linux sys path 2024-10-21 18:48:56 +08:00
luoliwoshang
d5237d1a07 llcppsymg:multiple dylib path search 2024-10-21 18:48:56 +08:00
luoliwoshang
7bd3b29a11 llcppsymg:remove leading underscores 2024-10-21 18:48:56 +08:00
luoliwoshang
60aa74257f chore:remove folder 2024-10-21 18:48:56 +08:00
luoliwoshang
ca0492d997 llcppsymg:config & clangutil test
llcppsymg:clangutil test
2024-10-21 18:48:56 +08:00
luoliwoshang
944133de6e llcppsymg:symbol generate test
llcppsymg:symbo test

llcppsymg:exist symb file test

llcppsymg:GenSymbolTabledata

llcppsymg:GenSymbolTableData test

llcppsymg:full symg operation test
2024-10-21 18:48:56 +08:00
luoliwoshang
174fdd40da llcppsymg:refine dylib parse 2024-10-21 18:48:56 +08:00
luoliwoshang
ffa823f748 llcppsymg:gendylib path test
llcppsymg:headerpath test
2024-10-21 18:48:56 +08:00
luoliwoshang
a83f7a822e llcppsymg:refine logic & parse symbol test 2024-10-21 18:48:56 +08:00
luoliwoshang
29d527bee1 llcppsymg:refine classname fetch 2024-10-21 18:48:56 +08:00
luoliwoshang
75e282c2ac llcppsymg & llcppsigfetch parse args 2024-10-21 18:46:57 +08:00
xushiwei
8419d9114b Merge pull request #839 from cpunion/fix-gh-action
ci: fix python deps install
2024-10-21 18:41:33 +08:00
Li Jie
1c414af7b9 ci: instead pip3 with pip3.12 2024-10-21 18:34:44 +08:00
Li Jie
834e8c64c5 ssa: unsafe.Add 2024-10-21 17:31:58 +08:00
xushiwei
1b3bb86546 Merge pull request #828 from luoliwoshang/os/errno
os:fix os.Errno 's nil pointer derefer in linux
2024-10-21 13:44:56 +08:00
xushiwei
aa560f42e7 Merge pull request #833 from visualfc/funcaddr
cl: instr funcAddr support typec funclit
2024-10-19 16:06:32 +08:00
visualfc
4e69cd28cd cl: instr funcAddr support typec funclit 2024-10-17 20:30:39 +08:00
xushiwei
5f0e30e17a Merge pull request #829 from luoliwoshang/xtool/nm
xtool/nm:flags option & symbol version
2024-10-16 18:11:40 +08:00
luoliwoshang
d682771c35 xtool/nm:symbol version 2024-10-15 15:29:30 +08:00
luoliwoshang
ace3c3e421 nmdump:flags option 2024-10-15 12:01:42 +08:00
luoliwoshang
94005b0c22 xtool/nm:flags option 2024-10-15 10:40:25 +08:00
luoliwoshang
e9177c8932 os/errno:fix os.Errno 's nil pointer derefer in linux 2024-10-12 16:30:14 +08:00
visualfc
d62c2d913e ssa: abi check interface method 2024-10-12 15:59:10 +08:00
xushiwei
9ea88fe247 Merge pull request #827 from luoliwoshang/os/stat
[wip] os:correct error of noexist file & os.Error 's nil pointer dereference in linux
2024-10-12 11:28:32 +08:00
xushiwei
e0867a5d11 Merge pull request #826 from visualfc/reflect_value
internal/lib/reflect: fix valueInterface
2024-10-12 11:27:20 +08:00
luoliwoshang
ae91101ea1 os:correct error of noexist file 2024-10-11 16:22:14 +08:00
visualfc
515057c41a internal/lib/reflect: Value.Type 2024-10-11 09:14:36 +08:00
visualfc
d946ba426e internal/lib/reflect: fix valueInterface 2024-10-11 07:43:46 +08:00
xushiwei
07874cf77f Merge pull request #816 from luoliwoshang/c/lua/debug
c/lua:debug
2024-10-10 15:31:48 +08:00
xushiwei
1d9f9e838b Merge pull request #817 from cpunion/remove-inline-py-methods
py: remove static methods
2024-10-10 15:31:01 +08:00
xushiwei
101691e970 Merge pull request #822 from goplus/dependabot/github_actions/thollander/actions-comment-pull-request-3
build(deps): bump thollander/actions-comment-pull-request from 2 to 3
2024-10-10 15:30:05 +08:00
dependabot[bot]
e2498c31ea build(deps): bump thollander/actions-comment-pull-request from 2 to 3
Bumps [thollander/actions-comment-pull-request](https://github.com/thollander/actions-comment-pull-request) from 2 to 3.
- [Release notes](https://github.com/thollander/actions-comment-pull-request/releases)
- [Commits](https://github.com/thollander/actions-comment-pull-request/compare/v2...v3)

---
updated-dependencies:
- dependency-name: thollander/actions-comment-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-10 00:34:41 +00:00
Li Jie
9d8c6122cc py: remove inline methods 2024-10-05 23:10:00 +08:00
Li Jie
227dda38a2 lldb: fix slice index expression 2024-10-05 17:46:54 +08:00
luoliwoshang
e2091413ea c/lua:extraspace 2024-10-04 15:37:28 +08:00
luoliwoshang
4976e82f0f c/lua:debug 2024-10-04 15:37:28 +08:00
xushiwei
5e949d2c6f Merge pull request #809 from visualfc/maplen
runtime: fix map len and chan len/cap
2024-10-04 11:34:49 +08:00
xushiwei
fec7688241 Merge pull request #810 from visualfc/py
py: remove llgo_autogen.lla
2024-10-01 06:07:04 +08:00
Li Jie
2732f6036e debug: refactor test script 2024-09-30 16:38:37 +08:00
Li Jie
387c44031a ci: show lldb tests details 2024-09-30 16:38:37 +08:00
Li Jie
6cbd1c5fb1 debug: switch scope test 2024-09-30 16:38:37 +08:00
Li Jie
447b9e1ea7 debug: disable failed tests 2024-09-30 16:38:25 +08:00
Li Jie
be08bcaafc debug: compile to dwarf-4 2024-09-30 15:22:38 +08:00
Li Jie
1b5e8e0181 ci: return non-zero if run lldb tests failed 2024-09-30 15:10:12 +08:00
visualfc
d2ffbd0395 cl: function fix freevars cache 2024-09-30 10:29:38 +08:00
Li Jie
88cb607975 debug: supports scope (if, for) 2024-09-30 10:15:47 +08:00
Li Jie
e392956e2a debug: fix basic types 2024-09-27 21:36:12 +08:00
Li Jie
3028081fa2 chore: fix exit code in runtest.sh 2024-09-27 21:36:12 +08:00
Li Jie
4003c59471 ssa: debug info types.Named -> typedef 2024-09-27 21:36:12 +08:00
Li Jie
2e042f0c59 lldb: fix struct vars debugging 2024-09-27 21:36:08 +08:00
visualfc
9a4238d4e2 py: remove llgo_autogen.lla 2024-09-27 10:37:41 +08:00
visualfc
c184dc8d2f runtime: fix map len and chan len/cap 2024-09-25 20:51:58 +08:00
xushiwei
32f41a04ac Merge pull request #757 from luoliwoshang/llcppg/ast/mangle
llcppg/ast:func mangle name
2024-09-25 11:05:06 +08:00
xushiwei
4b8174f75a Merge pull request #803 from luoliwoshang/llcppsigfetch/output
llcppsigfetch:refine
2024-09-24 19:08:53 +08:00
luoliwoshang
313e14bc54 llcppsigfetch:refine mock gettype 2024-09-24 15:09:03 +08:00
luoliwoshang
7aca31992b llcppsigfetch:reuse clangutil 2024-09-24 14:43:33 +08:00
Li Jie
56f53e508f lldb: add more tests 2024-09-24 14:18:32 +08:00
Li Jie
6c18dc63aa build: enable ssa.GlobalDebug when LLGO_DEBUG=1 enabled, enable ssa.NaiveForm when LLGO_OPTIMIZED=0 2024-09-24 14:16:49 +08:00
luoliwoshang
7b498065b5 llcppsigfetch:use the closure in visitTop & enumtype 2024-09-24 12:22:01 +08:00
luoliwoshang
81bd225ff7 llcppsigfetch:keep line break 2024-09-24 11:26:34 +08:00
luoliwoshang
074090a0aa llcppsigfetch:config the output 2024-09-24 11:26:34 +08:00
Li Jie
3fcbcca8e4 lldb: fix log output when exit 2024-09-23 21:14:26 +08:00
xushiwei
dbaf12b043 Merge pull request #769 from visualfc/lib_reflect
[wip] lib reflect
2024-09-23 00:37:28 +08:00
visualfc
9eb9b48534 internal/lib/reflect: type.Field FieldByIndex FieldByName 2024-09-22 20:56:15 +08:00
visualfc
e085fd1d57 internal/lib/reflect: type.Name type.Elem 2024-09-22 20:44:57 +08:00
visualfc
9cc71b320b internal/lib/reflect: type.method 2024-09-22 20:44:55 +08:00
visualfc
7b74cf1ab9 internal/lib/reflect: interface.method 2024-09-22 20:43:40 +08:00
visualfc
fb0c0e07f7 internal/lib/reflect: reflect.pointer 2024-09-22 20:43:40 +08:00
Li Jie
c6bb4a23ae ssa: add debug info of function return type 2024-09-22 17:43:31 +08:00
Li Jie
70e271959b lldb: fix runlldb.sh to load llgo plugin 2024-09-22 14:57:21 +08:00
Li Jie
379abeb262 lldb: support expression includes dereference, parentheses 2024-09-22 14:57:16 +08:00
xushiwei
9e884847b1 Merge pull request #794 from cpunion/llvm-debug
ssa: add llvm debug info
2024-09-22 12:08:16 +08:00
Li Jie
5dadf9a087 lldb: skip some fail cases 2024-09-22 11:52:26 +08:00
Li Jie
c0630b782a ci: run lldb test 2024-09-22 11:52:26 +08:00
Li Jie
62beb73aa2 x 2024-09-22 11:52:26 +08:00
Li Jie
7b6fe0159f lldb: fix shellcheck warning 2024-09-22 11:52:26 +08:00
Li Jie
dad22b1686 cl: switch debug symbols with LLGO_DEBUG 2024-09-22 11:52:23 +08:00
xushiwei
a715a51865 Merge pull request #780 from luoliwoshang/llcppsymg/language
llcppsymg:parse c / c++ &  output  func proto
2024-09-22 08:03:19 +08:00
xushiwei
d4ec2319f9 Merge pull request #683 from luoliwoshang/llcppsigfetch/basic
llcppsigfetch
2024-09-22 07:58:35 +08:00
Li Jie
88b980ac17 lldb: refactor plugin and test scripts 2024-09-21 10:03:49 +08:00
Li Jie
867c01d5e8 ssa: clean 2024-09-21 09:10:08 +08:00
luoliwoshang
c8a064af3e llcppsigfetch:handle unexpect tag 2024-09-21 01:52:19 +08:00
Li Jie
12439f2b99 lldb: debug info test, lldb plugin, readme 2024-09-21 00:11:06 +08:00
Li Jie
fb47ea301f lldb: set llvm.ident to "LLGo Compiler" 2024-09-20 23:40:58 +08:00
Li Jie
6adecbd7aa lldb: add llgo plugin 2024-09-20 23:40:13 +08:00
Li Jie
f71e34fd9f ssa: fix function and global var debug info scope 2024-09-20 17:14:27 +08:00
xushiwei
dfe89588f0 Merge pull request #787 from luoliwoshang/llcppsymg/filter
llcppsymg:filter public method
2024-09-20 15:51:57 +08:00
Li Jie
d89b68a279 cl: don't declare var of ssa.Alloc and ssa.FieldAddr 2024-09-20 12:20:46 +08:00
Li Jie
2a4a01cb7b lldb test: test params 2024-09-20 10:21:37 +08:00
luoliwoshang
c81b7f6bb4 llcppsymg:to camel 2024-09-20 10:16:00 +08:00
Li Jie
0c11afad7a lldb test: clean 2024-09-19 21:49:41 +08:00
Li Jie
d6b26c9975 lldb test: ctrl+d to next interactive, ctrl+c to break 2024-09-19 21:45:39 +08:00
Li Jie
98c628f3eb lldb test: fix formatting 2024-09-19 21:45:34 +08:00
Li Jie
36b2026075 run lldb tests 2024-09-19 20:31:05 +08:00
Li Jie
7c535ff1a3 ssa: complex type name 2024-09-19 20:24:01 +08:00
xushiwei
c6436ea6d1 Merge pull request #800 from hackerchai/feat/c-libuv-thread
feat(c/libuv): Implement thread related funcs
2024-09-19 18:52:35 +08:00
xushiwei
5a8dee3cbe Merge pull request #799 from hackerchai/fix/c-libuv-loop
fix(c/libuv): Add missing essential funcs for uv_loop_t & uv_req_t
2024-09-19 18:50:12 +08:00
xushiwei
d9450d6e12 Merge pull request #798 from spongehah/c/sysconf
c/sysconf
2024-09-19 18:48:41 +08:00
hackerchai
80377b3705 feat(c/libuv): Implement thread related funcs
Signed-off-by: hackerchai <i@hackerchai.com>
2024-09-19 18:44:38 +08:00
hackerchai
847a76b3a2 fix(c/libuv): Add missing essential funcs for uv_loop_t & uv_req_t
Signed-off-by: hackerchai <i@hackerchai.com>
2024-09-19 18:42:31 +08:00
luoliwoshang
2c3d46bb80 llcppsigfetch:order output 2024-09-19 16:49:05 +08:00
luoliwoshang
e0cb6d4531 llcppsigfetch:output fileset 2024-09-19 15:35:42 +08:00
luoliwoshang
78f0177ac4 llcppsymg:use clang's displayname with semantic parent to construct func proto for c/c++ 2024-09-19 14:33:53 +08:00
luoliwoshang
4688434c08 llcppsymg:parse with language config 2024-09-19 14:33:53 +08:00
luoliwoshang
8913eeb1c1 llcppsymg:translation unit util 2024-09-19 14:33:53 +08:00
Li Jie
75574e97cc ssa: fix debug info of local vars 2024-09-19 10:29:11 +08:00
Li Jie
f4089bc164 ssa: struct debug info creation supports resursive 2024-09-19 09:45:26 +08:00
Li Jie
b0f04d91bf cl: fix dbg.declare (and local var) 2024-09-18 23:47:48 +08:00
Li Jie
3b514d194c ssa: remove unused 2024-09-18 23:27:54 +08:00
Li Jie
3ba405383e ssa: fix type name of debug info 2024-09-18 23:04:09 +08:00
Li Jie
87f6c8087f ssa: debug info of global variable 2024-09-18 22:17:49 +08:00
Li Jie
90a83c8f11 ssa: debug info of function/closure 2024-09-18 21:14:04 +08:00
Li Jie
27f892a14b ssa: debug info of chan 2024-09-18 21:14:04 +08:00
Li Jie
bf4525d82d ssa: debug info of Map 2024-09-18 21:14:04 +08:00
Li Jie
6bfb1a7fff ssa: debug info of interface 2024-09-18 21:14:04 +08:00
Li Jie
a53ab7438c ssa: debug info of Array and Slice 2024-09-18 21:14:04 +08:00
Li Jie
d85a080f9b ssa: support string and pointer debug info, fix params debugging 2024-09-18 21:14:04 +08:00
Li Jie
4dbfc9483e support complex debug info 2024-09-18 21:14:04 +08:00
Li Jie
53097ab183 fix debug info of struct parameter, 2024-09-18 21:14:04 +08:00
Li Jie
9978a370f1 x 2024-09-18 21:14:04 +08:00
Li Jie
24995f46cb debug test cover more types 2024-09-18 21:14:04 +08:00
Li Jie
7ddc8c6aeb increase coverage rate 2024-09-18 21:14:04 +08:00
Li Jie
4a447f5c12 cover integers, floats, bool, array, complex 2024-09-18 21:14:04 +08:00
Li Jie
e56647f24d remove unused DILexicalBlock 2024-09-18 21:14:04 +08:00
Li Jie
25238b53c9 hide llvm types on DIBuilder methods 2024-09-18 21:14:04 +08:00
Li Jie
1ed798342a move debug test into _testdata 2024-09-18 21:14:04 +08:00
Li Jie
1d6eb07c62 generate debug with dwarf language C 2024-09-18 21:14:04 +08:00
Li Jie
8e3d76b7ea gentests and cltest supports flags.txt (currently just -dbg used) 2024-09-18 21:14:04 +08:00
Li Jie
d8838503b2 generate llvm.dbg.value 2024-09-18 21:14:04 +08:00
Li Jie
78b7742354 fix argNo with 1-based index 2024-09-18 21:14:04 +08:00
Li Jie
3d9dca47b8 fix dwarf language code 2024-09-18 21:14:04 +08:00
Li Jie
c06c96bc1f add types.Map debug info, more debug symbol tests 2024-09-18 21:14:04 +08:00
Li Jie
db128dbc40 test: debug symbols generation 2024-09-18 21:14:04 +08:00
Li Jie
d6f87a8254 rename debug info class/funcs 2024-09-18 21:14:04 +08:00
Li Jie
4c5f37db0f debug symbols switch 2024-09-18 21:14:04 +08:00
Li Jie
3e5338c902 ssa: add llvm debug info 2024-09-18 21:14:04 +08:00
spongehah
848b7c7a34 c/sysconf 2024-09-18 18:40:16 +08:00
xushiwei
4bf5dd15e9 Merge pull request #796 from luoliwoshang/c/lua/fn
c/lua:custom alloc
2024-09-18 12:04:06 +08:00
张之阳
d4273d8e3f remove redundant fn body 2024-09-17 09:01:44 +08:00
xushiwei
780347776b Merge pull request #795 from cpunion/memset
Use LLVM memset intrinsic for compatibility and performance
2024-09-17 08:44:50 +08:00
xushiwei
5dd6986ad4 Merge pull request #797 from luoliwoshang/c/realloc
c:realloc
2024-09-17 08:40:05 +08:00
luoliwoshang
51bf41009e c:realloc 2024-09-16 23:37:22 +08:00
luoliwoshang
4defe734e2 c/lua:custom alloc for state 2024-09-16 23:33:14 +08:00
luoliwoshang
e3cb4ebfdc c/lua:alloc 2024-09-16 23:30:35 +08:00
luoliwoshang
c6345279cc c/lua:table field operate 2024-09-16 22:16:01 +08:00
luoliwoshang
e5a9af9a31 c/lua:remove redundant 2024-09-16 09:51:55 +08:00
Li Jie
c0e1e31572 rebuild tests 2024-09-14 16:14:50 +08:00
Li Jie
1e58c365ed instead runtime.Zeroinit of memset to compatible build.NaiveForm 2024-09-14 15:44:36 +08:00
luoliwoshang
bf87b76adb llcppsigfetch:variadic order 2024-09-13 16:06:06 +08:00
luoliwoshang
c8e06b5837 llcppsigfetch:func mangled name 2024-09-13 16:02:00 +08:00
luoliwoshang
ee5cd06077 llcppsigfetch:distinguish collect doc&comment 2024-09-13 16:02:00 +08:00
luoliwoshang
140352b637 llcppsigfetch:avoid tab 2024-09-13 16:02:00 +08:00
luoliwoshang
b369321e2f llcppsigfetch:unexpect typedef record type's named anonymous record decl resolve to normal anonymous record refer 2024-09-13 16:02:00 +08:00
luoliwoshang
b9aaba7b16 llcppsigfetch:fix nil type of FuncNoProto in C mode 2024-09-13 16:02:00 +08:00
luoliwoshang
07519732a1 llcppsigfetch:based on language configuration analysis 2024-09-13 16:02:00 +08:00
luoliwoshang
ae71f3c186 llcppsigfetch:extract info command 2024-09-13 16:02:00 +08:00
luoliwoshang
e1236f9deb llcppsigfetch:typedef anonymous record type correct refer by __ANONY_ name 2024-09-13 16:02:00 +08:00
luoliwoshang
3c9bfb5b4d llcppsigfetch:determine unexpected named typedecl in typedef anonymous 2024-09-13 16:02:00 +08:00
luoliwoshang
86b50b0a93 llcppsigfetch:null processing 2024-09-13 16:02:00 +08:00
luoliwoshang
da6706cb93 llcppsigfetch:complex typedef decl 2024-09-13 16:02:00 +08:00
luoliwoshang
2842a109da llcppsigfetch:right reference 2024-09-13 16:02:00 +08:00
luoliwoshang
021ddefb10 llcppsigfetch:dump node type for unmarshal 2024-09-13 16:02:00 +08:00
luoliwoshang
7d0b47c5cb llcppsigfetch:field access & static field 2024-09-13 16:02:00 +08:00
luoliwoshang
9351a1f900 llcppsigfetch:anonymous elaborated type refer 2024-09-13 16:02:00 +08:00
luoliwoshang
0ac48369fe llcppsigfetch:variadic param 2024-09-13 16:02:00 +08:00
luoliwoshang
e57ee17532 llcppsigfetch:func pointer 2024-09-13 16:01:59 +08:00
luoliwoshang
a897683272 Use semantic parent to refactor scoping expression construction 2024-09-13 16:01:59 +08:00
luoliwoshang
38eb981d2c llcppsigfetch:remove redundant test case 2024-09-13 16:01:59 +08:00
luoliwoshang
b524472b9e llcppsigfetch:out of class method 2024-09-13 16:01:59 +08:00
luoliwoshang
fc04083cb2 llcppsigfetch:collect public methods 2024-09-13 16:01:59 +08:00
luoliwoshang
b1225951f2 llcppsigfetch:func inline & static 2024-09-13 16:01:59 +08:00
luoliwoshang
24fd2e1849 llcppsigfetch:free override cursor 2024-09-13 16:01:59 +08:00
luoliwoshang
5e5c975a9c llcppsigfetch:constructor,destructor,static,override,virtual 2024-09-13 16:01:59 +08:00
luoliwoshang
c6336e920f llcppsigfetch:qualified name whith tag 2024-09-13 16:01:59 +08:00
luoliwoshang
cd19625522 llcppsigfetch:enum type 2024-09-13 16:01:59 +08:00
luoliwoshang
3ac95a9213 llcppsigfetch:refactor type reference test logic 2024-09-13 16:01:59 +08:00
luoliwoshang
e57ea9b501 llcppsigfetch/chore:rename 2024-09-13 16:01:59 +08:00
luoliwoshang
14b335a51e llcppsigfetch:correct class scoping 2024-09-13 16:01:59 +08:00
luoliwoshang
319e746a55 llcppsigfetch:qualified name refer 2024-09-13 16:01:59 +08:00
luoliwoshang
eb4d721175 llcppsigfetch:tag expr 2024-09-13 16:01:59 +08:00
luoliwoshang
a4f850c0c6 llcppsigfetch:lvalue & rvalue refer 2024-09-13 16:01:59 +08:00
luoliwoshang
0a8e25b405 llcppsigfetch:simpilfy func test 2024-09-13 16:01:59 +08:00
luoliwoshang
1557a76225 llcppsigfetch:split test directory 2024-09-13 16:01:59 +08:00
luoliwoshang
d4fa379f11 llcppsigfetch:record type 2024-09-13 16:01:59 +08:00
luoliwoshang
e09c5fcb3c llcppsigfetch:TypedefDecl & Elaborated Type Refer 2024-09-13 16:01:59 +08:00
luoliwoshang
815fe25f2c llcppsigfetch:anonymous record name 2024-09-13 16:01:59 +08:00
luoliwoshang
5e5c84ba27 llcppsigfetch:json memory free 2024-09-13 16:01:59 +08:00
luoliwoshang
2974b23f26 llcppsigfetch:refine file handling, remove curFile field 2024-09-13 16:01:59 +08:00
luoliwoshang
697c21b120 llcppsigfetch:typedecl name 2024-09-13 16:01:59 +08:00
luoliwoshang
1f72a52015 llcppsigfetch:free token 2024-09-13 16:01:59 +08:00
luoliwoshang
43bcf1051d llcppsigfetch:union 2024-09-13 16:01:59 +08:00
luoliwoshang
bf8aa502f9 llcppsigfetch:marco tokens & refine test 2024-09-13 16:01:59 +08:00
luoliwoshang
f0e92343cb llcppsigfetch:complex 2024-09-13 16:01:59 +08:00
luoliwoshang
48efd6689e llcppsigfetch:conveter config 2024-09-13 16:01:59 +08:00
luoliwoshang
090e689689 llcppsigfetch:basic enum 2024-09-13 16:01:59 +08:00
luoliwoshang
9d16df5f25 llcppsigfetch:include 2024-09-13 16:01:59 +08:00
luoliwoshang
02651c93a7 llcppsigfetch:basic marco process 2024-09-13 16:01:59 +08:00
luoliwoshang
2b1d4b6672 llcppsigfetch:output result 2024-09-13 16:01:59 +08:00
luoliwoshang
9087dac6fe llcppsigfetch:basic class & struct 's process 2024-09-13 16:01:59 +08:00
luoliwoshang
762ed994c1 llcppsigfetch:Decl Comment 2024-09-13 16:01:59 +08:00
luoliwoshang
2c8a9d1160 llcppsigfetch:Scope Context 2024-09-13 16:01:59 +08:00
luoliwoshang
f613316046 chore:remove the capital of Path 2024-09-13 16:01:59 +08:00
luoliwoshang
6b1bc15f37 llcppsigfetch:Constant & Incomplete Array 2024-09-13 16:01:59 +08:00
luoliwoshang
9a77a0c201 llcppsigfetch:move type test 2024-09-13 16:01:59 +08:00
luoliwoshang
755cdbb238 llcppsigfetch:collect func param name 2024-09-13 16:01:59 +08:00
luoliwoshang
1996db4b95 llcppsigfetch:refine cjson dump logic 2024-09-13 16:01:59 +08:00
luoliwoshang
6297f69e70 llcppsigfetch:basic cjson dump for ast.File 2024-09-13 16:01:59 +08:00
luoliwoshang
a796f9f8a8 llcppsigfetch:tempfile converter option 2024-09-13 16:01:59 +08:00
luoliwoshang
0de9c57ade llcppsigfetch:builtin type convert 2024-09-13 16:01:59 +08:00
luoliwoshang
95dc01cdcb llcppsigfetch:basic fileset 2024-09-13 16:01:59 +08:00
luoliwoshang
364d3996f4 llcppsigfetch:basic process type 2024-09-13 16:01:59 +08:00
luoliwoshang
33af9e878b llcppsigfech:basic struct
llcppsigfetch:basic parse converter

llcppsigfetch:converter top decl

llcppg:converter test
2024-09-13 16:01:59 +08:00
xushiwei
9f8b9ea806 Merge pull request #784 from luoliwoshang/c/clang/displayname
c/clang:displayname & comment range
2024-09-13 15:37:57 +08:00
xushiwei
d53876ee1b Merge pull request #782 from visualfc/runtimetypes
cl: processPkg check runtimeTypes for generic method
2024-09-12 12:47:53 +08:00
xushiwei
4f654e81c8 Merge pull request #792 from visualfc/selects
runtime: fix multi chan recv/send select
2024-09-12 12:46:22 +08:00
visualfc
aa33ddcf19 runtime: fix multi chan recv/send select 2024-09-11 16:09:15 +08:00
xushiwei
c8a57676b4 Merge pull request #783 from cpunion/builtin-llgo-tag
llgen: builtin llgo tag
2024-09-11 11:00:08 +08:00
luoliwoshang
d0d2bc1996 llcppsymg:filter public method 2024-09-10 14:36:26 +08:00
luoliwoshang
2b8d2b0026 c/clang:comment range 2024-09-09 18:35:52 +08:00
luoliwoshang
735953a262 c/clang:displayname 2024-09-09 15:45:09 +08:00
Li Jie
1c686f10a1 llgen: builtin llgo tag 2024-09-09 13:52:15 +08:00
visualfc
b7088510c5 cl: remove checkInstanceNamed 2024-09-09 11:36:39 +08:00
visualfc
3bdb921ee5 cl: processPkg check runtimeTypes for generic method 2024-09-09 11:22:03 +08:00
xushiwei
74b48ff56b Merge pull request #771 from luoliwoshang/chore/llcppsymg/config
llcppsymg:language config
2024-09-08 17:25:49 +08:00
xushiwei
9410370cc5 Merge pull request #777 from luoliwoshang/c/lua/thread
c/lua:thread
2024-09-08 17:22:01 +08:00
luoliwoshang
743ddf83c1 c/lua:thread 2024-09-07 18:55:24 +08:00
luoliwoshang
caa707325a llcppsymg:language config 2024-09-06 09:05:35 +08:00
xushiwei
3c588e67b8 Merge pull request #767 from tsingbx/cjson
Improve the llgo cjson library
2024-09-06 06:56:49 +08:00
xushiwei
6c26dad048 Merge pull request #770 from visualfc/tpfunc
ssa: fix llgo:type c for typeparam named
2024-09-06 06:51:30 +08:00
xushiwei
393e2c125e Merge pull request #772 from luoliwoshang/castdump/typedef
castdump:use UnderlyingType instead CanonicalType in typedef
2024-09-06 06:48:12 +08:00
luoliwoshang
e56dc2ed6a castdump:use UnderlyingType instead CanonicalType 2024-09-05 15:45:36 +08:00
tsingbx
4a449ed85e change comment cBool to cJSON_Bool 2024-09-05 11:01:34 +08:00
tsingbx
88dbe90075 Revert "change comment cBool to Bool"
This reverts commit a6f6451434.
2024-09-05 11:00:20 +08:00
tsingbx
a6f6451434 change comment cBool to Bool 2024-09-05 10:58:40 +08:00
tsingbx
8a4370c1f6 change ParseBytes and ParseString, change JSON_bool to Bool, remove Bool() 2024-09-05 10:55:49 +08:00
xushiwei
7a068450b3 Merge pull request #764 from cpunion/ssa-error-exit
cl: exit 1 when SSA build error
2024-09-05 08:42:21 +08:00
xushiwei
ae3222e4c2 Merge pull request #761 from visualfc/abiname
internal/abi: fix splitName
2024-09-05 08:34:27 +08:00
xushiwei
27b4bfa3fa Merge pull request #758 from luoliwoshang/llcppg/language
llcppg/config:language
2024-09-05 08:32:49 +08:00
xushiwei
8af229947f Merge pull request #765 from cpunion/builtin-llgo-tag
cl: builtin llgo tag
2024-09-05 08:32:06 +08:00
xushiwei
f235a2f539 Merge pull request #763 from luoliwoshang/c/clang/usr
c/clang:usr & range
2024-09-05 08:31:37 +08:00
visualfc
b0ebb479f6 ssa: fix llgo:type c for typeparam named 2024-09-04 21:53:50 +08:00
tsingbx
df92e21520 fix error 2024-09-04 20:31:45 +08:00
tsingbx
a1a25cc57f complete cjson 2024-09-04 20:23:47 +08:00
Li Jie
e9aaf8e0af cl: builtin llgo tag 2024-09-04 10:07:22 +08:00
Li Jie
7a80e407af cl: exit 1 when SSA build error 2024-09-04 09:55:56 +08:00
luoliwoshang
57f8d535fb c/clang:usr & range 2024-09-03 18:33:40 +08:00
赵英杰
170a6096b9 lib/time: patch div and Time.Round 2024-09-03 18:28:15 +08:00
visualfc
fcc444a100 internal/abi: fix splitName 2024-09-03 15:24:08 +08:00
luoliwoshang
8ccb3c21e1 llcppg/config:language 2024-09-03 15:17:03 +08:00
luoliwoshang
0484d4bb77 llcppg/ast:func mangle name 2024-09-03 15:16:36 +08:00
xushiwei
3ce9567f62 Merge pull request #760 from visualfc/cvtnamed
ssa: cvtNamed check typeargs
2024-09-03 15:05:39 +08:00
visualfc
765e812b77 ssa: cvtNamed check typeargs 2024-09-03 11:37:31 +08:00
xushiwei
1a63c9296b Merge pull request #750 from luoliwoshang/llcppg/ast/access
llcppg/ast:field access & static
2024-09-01 05:56:23 +08:00
xushiwei
9510b5aea5 Merge pull request #755 from luoliwoshang/c/lua/dump
c/lua:dump & load
2024-09-01 05:55:47 +08:00
xushiwei
490e859fbf Merge pull request #756 from luoliwoshang/c/fread
c:fread
2024-09-01 05:55:10 +08:00
luoliwoshang
85c4a2fdc2 c/lua:dump & load demo use go file operate 2024-09-01 00:33:00 +08:00
luoliwoshang
3b9c9f6a97 c:fread 2024-08-31 20:49:23 +08:00
luoliwoshang
d1f64d3059 c/lua:dump & load 2024-08-31 20:45:19 +08:00
luoliwoshang
f62bcdc803 llcppg/ast:field access & static 2024-08-30 10:11:23 +08:00
xushiwei
2434fd778f Merge pull request #751 from hackerchai/fix/c-libuv-error-eof
fix(c/libuv): Fix EOF error value
2024-08-30 09:01:53 +08:00
xushiwei
1a38726fb7 Merge pull request #752 from spongehah/c/libuv
feature(c/libuv): Add Idle and Check
2024-08-30 09:01:34 +08:00
赵英杰
24cffb2a69 feature(c/libuv): Add idle and check 2024-08-29 17:52:18 +08:00
hackerchai
527918545e fix(c/libuv): Fix EOF error value
Signed-off-by: hackerchai <i@hackerchai.com>
2024-08-28 17:12:38 +08:00
xushiwei
4d268f67ae Merge pull request #749 from luoliwoshang/c/clang/variadic
c/clang:variadic
2024-08-28 06:23:31 +08:00
luoliwoshang
a65c2f4312 c/clang:variadic 2024-08-27 18:54:41 +08:00
xushiwei
c490f2b849 Merge pull request #692 from spongehah/refactor/c-libuv-remove-go-wrapper
fix(c/libuv): Change the request calling method of echo_server
2024-08-27 05:23:28 +08:00
xushiwei
282f7fc2e3 Merge pull request #747 from luoliwoshang/llcppg/ast/variadic
llcppg/ast:variadic func
2024-08-27 05:21:36 +08:00
xushiwei
52348af8ec Merge pull request #748 from luoliwoshang/c/clang/cursor
c/clang:cursor
2024-08-27 05:20:20 +08:00
luoliwoshang
39d15ead6f c/clang:cursor 2024-08-26 18:47:56 +08:00
luoliwoshang
d232109fce llcppg/ast:variadic func 2024-08-26 15:11:31 +08:00
xushiwei
8e9c43610d Merge pull request #746 from luoliwoshang/c/lua/corroutine
c:lua:coroutine continuation
2024-08-25 17:52:36 +08:00
xushiwei
53a8c20cb9 Merge pull request #743 from luoliwoshang/c/clang/class
c/clang:class & method
2024-08-25 17:51:15 +08:00
xushiwei
333f60a2a6 Merge pull request #744 from aisk/py-set
feat(py): add set type
2024-08-25 17:49:55 +08:00
xushiwei
0bacc20a58 Merge pull request #745 from luoliwoshang/c/lua/userdata
c/lua:userdata
2024-08-25 17:49:14 +08:00
luoliwoshang
3e932c9bdf c/lua:coroutine continuation 2024-08-25 15:31:10 +08:00
luoliwoshang
cf8a170133 c/lua:register 2024-08-25 12:32:31 +08:00
AN Long
67a89d4b6b feat(py): add set discard 2024-08-25 00:05:00 +08:00
luoliwoshang
85c2cda7b6 c/lua:userdata 2024-08-24 15:24:47 +08:00
AN Long
61757a6518 feat(py): add set type 2024-08-24 01:10:31 +08:00
luoliwoshang
e245d08e54 c/clang:func,class,method attr 2024-08-23 23:01:39 +08:00
luoliwoshang
29f797dc24 c/clang:correct order 2024-08-23 22:50:26 +08:00
xushiwei
54ce1d8d2f Merge pull request #738 from luoliwoshang/llcppg/ast/exprnode
llcppg/ast:expr node
2024-08-22 22:33:59 +08:00
xushiwei
8e47f70066 Merge pull request #740 from luoliwoshang/c/clang/nonref
c/clang:noref type
2024-08-22 22:33:30 +08:00
xushiwei
01548089ee Merge pull request #739 from luoliwoshang/llcppg/ast/enumtype
llcppg/ast:enum type
2024-08-22 22:33:07 +08:00
xushiwei
de8d598f46 Merge pull request #741 from luoliwoshang/llcppg/ast/scoping
llcppg/ast:scoping for Tagexpr
2024-08-22 22:32:07 +08:00
luoliwoshang
63aad4b9bf llcppg/ast:scoping for Tagexpr 2024-08-22 17:17:51 +08:00
luoliwoshang
33cdb7a541 c/clang:noref type 2024-08-22 12:18:38 +08:00
luoliwoshang
7c2f769a9a llcppg/ast:enum type 2024-08-22 10:25:02 +08:00
luoliwoshang
e084550390 llcppg/ast:expr 2024-08-22 10:00:19 +08:00
xushiwei
3c282e8cf9 Merge pull request #735 from visualfc/linkname
[wip] ssa: prog.linkname; abi llvm.LinkOnceAnyLinkage always
2024-08-22 05:44:16 +08:00
xushiwei
3c4fbdb50e Merge pull request #733 from luoliwoshang/llcppg/ast/refertype
llcppg/ast:rvalue reference
2024-08-22 05:40:39 +08:00
xushiwei
18cdc28963 Merge pull request #734 from luoliwoshang/llcppg/ast/func
llcppg/ast:func decl
2024-08-22 05:40:05 +08:00
xushiwei
5f004e7167 Merge pull request #736 from luoliwoshang/c/clang/anonymous
c/clang:anonymous record & underlying type
2024-08-22 05:37:00 +08:00
xushiwei
96489607ab Merge pull request #737 from luoliwoshang/llcppg/ast/typeexpr
llcppg/ast:record type
2024-08-22 05:35:55 +08:00
luoliwoshang
7436e44416 llcppg/ast:record type 2024-08-21 20:49:59 +08:00
luoliwoshang
8d30e51603 c/clang:typedef 2024-08-21 18:34:12 +08:00
luoliwoshang
64b582e397 c/clang:anonymous record 2024-08-21 14:55:43 +08:00
luoliwoshang
8b86d07bfc llcppg/ast:func decl 2024-08-21 14:12:24 +08:00
luoliwoshang
e3fefdebe1 llcppg/ast:value reference 2024-08-21 10:39:02 +08:00
xushiwei
46aec4a593 Merge pull request #731 from luoliwoshang/llcppg/ast/tagexpr
llcppg/ast:TagExpr
2024-08-21 06:30:19 +08:00
visualfc
2feb3e1d7a ssa: prog.linkname; abi llvm.LinkOnceAnyLinkage always 2024-08-20 21:11:27 +08:00
luoliwoshang
2609f45799 llcppg/ast:TagExpr 2024-08-20 12:03:21 +08:00
xushiwei
9053cbb90f Merge pull request #732 from luoliwoshang/c/clang/freetoken
c/clang:free tokens
2024-08-20 11:44:32 +08:00
luoliwoshang
3794d7ab65 c/clang:free tokens 2024-08-20 11:10:29 +08:00
xushiwei
7eeca21a05 Merge pull request #730 from xushiwei/q
llgocppg ast/token
2024-08-20 09:05:48 +08:00
xushiwei
70464154c7 Merge pull request #691 from luoliwoshang/llcppg/builtin
llcppg/ast:builtin type
2024-08-20 09:05:34 +08:00
xushiwei
1b29078fad Merge pull request #729 from luoliwoshang/c/clang/elementtype
c/clang:element type
2024-08-20 08:59:29 +08:00
xushiwei
864b078610 llgocppg ast/token 2024-08-20 08:58:43 +08:00
xushiwei
1a8b319ce2 Merge pull request #727 from luoliwoshang/llcppg/ast/marco
llcppg/ast:marco & token
2024-08-20 08:50:28 +08:00
luoliwoshang
a353514fc8 c/clang:element type 2024-08-19 18:07:36 +08:00
luoliwoshang
06e294fb3e llcppg/ast:builtin type 2024-08-19 11:25:47 +08:00
luoliwoshang
961d4c4a3a llcppg/ast:marco & token 2024-08-19 11:25:18 +08:00
xushiwei
876aea39e5 Merge pull request #728 from luoliwoshang/c/clang/tokenkind
c/clang:token kind
2024-08-17 22:37:19 +08:00
luoliwoshang
67be2ba95b c/clang:token kind 2024-08-16 18:46:36 +08:00
xushiwei
53d2d080f4 Merge pull request #726 from visualfc/fixmap
ssa: fix map zero
2024-08-16 16:52:29 +08:00
xushiwei
998fbeb381 Merge pull request #724 from visualfc/gc
build: check -tags nogc
2024-08-16 16:45:59 +08:00
xushiwei
1c6e4b7750 Merge pull request #725 from luoliwoshang/os/tomode
lib/os:fix error fileMode to ModeT
2024-08-16 16:42:28 +08:00
visualfc
8fbe21c79c ssa: fix map zero 2024-08-16 14:51:52 +08:00
visualfc
d6d0faac6e build: check -tags nogc 2024-08-16 11:34:58 +08:00
luoliwoshang
2d4f01e6cb lib/os:fix error fileMode to ModeT 2024-08-16 09:38:00 +08:00
xushiwei
b42ad3170e Merge pull request #722 from xushiwei/q
README: net/textproto
2024-08-15 22:08:48 +08:00
xushiwei
a8dddc81f1 README: net/textproto 2024-08-15 22:08:21 +08:00
xushiwei
2e1e6f784b Merge pull request #714 from luoliwoshang/llcppg/ast/basiclit
llcppg/ast:basiclit
2024-08-15 22:02:47 +08:00
xushiwei
2af9b95c7a Merge pull request #707 from spongehah/golib/net/textproto
lib/net/textproto: patch Dial
2024-08-15 20:58:14 +08:00
xushiwei
90be010c2b Merge pull request #721 from aofei/os
c/os: fix `Execl`, `Execle`, and `Execlp` func signatures
2024-08-15 20:53:31 +08:00
xushiwei
3b6b16cf77 Merge pull request #720 from xushiwei/q
c/pthread: nogc
2024-08-15 20:53:16 +08:00
xushiwei
c0c5c87c29 mv _pthread => _wrap 2024-08-15 20:47:42 +08:00
xushiwei
f5bbf4b515 c/pthread: nogc 2024-08-15 20:43:52 +08:00
Aofei Sheng
c7465608a7 c/os: fix Execl, Execle, and Execlp func signatures 2024-08-15 20:32:54 +08:00
xushiwei
03f0a4289b Merge pull request #719 from aofei/bdwgc
gc: fix missing pthread registration causing unknown thread error
2024-08-15 20:06:21 +08:00
xushiwei
bb2a6b73fe Merge pull request #518 from visualfc/ptrsize
runtime: init abi.Type.PtrBytes
2024-08-15 19:56:56 +08:00
Aofei Sheng
8e66091dd2 gc: fix missing pthread registration causing unknown thread error
- Use `GC_pthread_create` instead of `pthread_create` when GC is
  enabled.
2024-08-15 19:55:05 +08:00
xushiwei
a5c114a848 Merge pull request #693 from luoliwoshang/llcppsymg/unuse-comment
llcppsymg:remove unused bug-fix loop
2024-08-15 19:52:08 +08:00
xushiwei
254b2c27ac Merge pull request #700 from hackerchai/fix/c-net-byte-order-conv-func
refactor(c/net): Use c link instead of manual implement func
2024-08-15 19:45:57 +08:00
xushiwei
29fcb4504c Merge pull request #712 from luoliwoshang/os/mkdirdemo
lib/os:mkdir demo
2024-08-15 19:30:53 +08:00
xushiwei
ec7402b80a Merge pull request #715 from luoliwoshang/c/clang/arraysize
c/clang:array size & raw comment
2024-08-15 19:30:10 +08:00
xushiwei
4501519c4f Merge pull request #716 from aisk/py-tuple-helper
feat(py): Add Python tuple constructor helper
2024-08-15 18:21:51 +08:00
xushiwei
58ad7dab1b Merge pull request #718 from spongehah/c/libuv
refactor(c/libuv): Add multiple struct size
2024-08-15 18:18:58 +08:00
xushiwei
4da26a2f8d Merge pull request #717 from visualfc/funcdecl
ssa: makeInterface check funcdecl => closure
2024-08-15 18:18:28 +08:00
visualfc
9e6aed0760 runtime: init abi.Type.PtrBytes 2024-08-15 15:40:43 +08:00
luoliwoshang
7033f11d56 c/clang:array size & raw comment 2024-08-15 15:29:26 +08:00
赵英杰
8fcac42f34 c/libuv: Add multiple struct size 2024-08-15 10:57:29 +08:00
赵英杰
4a6a97ee75 lib/net/textproto: patch Dial 2024-08-15 10:43:57 +08:00
visualfc
2174d8fe8c ssa: makeInterface check funcdecl => closure 2024-08-15 10:12:18 +08:00
AN Long
eb6f487e2a fix: typo in document 2024-08-14 22:40:55 +08:00
AN Long
6bbe68dfcb test: Add py.Tuple test 2024-08-14 22:07:00 +08:00
AN Long
bbeceae42e feat(py): Add Python tuple constructor helper 2024-08-14 21:45:46 +08:00
luoliwoshang
cfe785762d llcppg/ast:basiclit 2024-08-14 18:27:15 +08:00
luoliwoshang
fdbb329fb6 lib/os:mkdir demo 2024-08-14 15:22:11 +08:00
xushiwei
9f1100b967 Merge pull request #710 from visualfc/sigsegv
[wip] runtime: signal SIGSEGV
2024-08-14 15:09:10 +08:00
xushiwei
94706d6139 Merge pull request #711 from luoliwoshang/os/filemode
lib/os:fileMode to ModeT , `Mkdir` run normally
2024-08-14 15:07:56 +08:00
xushiwei
b63609e2fa Merge pull request #695 from visualfc/instance_abi
cl: makeInterface check instance named
2024-08-14 15:06:07 +08:00
luoliwoshang
84c420139d lib/os:fileMode to ModeT 2024-08-14 14:24:15 +08:00
visualfc
027d21035e runtime: signal SIGSEGV 2024-08-14 11:30:24 +08:00
xushiwei
cc9de01c99 Merge pull request #705 from luoliwoshang/os/mkdir
[wip] lib/os: patch MkdirAll
2024-08-14 10:29:48 +08:00
xushiwei
61c6f240e9 Merge pull request #708 from xushiwei/q
llgo cmptest -gen
2024-08-14 10:27:33 +08:00
luoliwoshang
997d673b83 lib/os:MkdirAll use 1.21.13 2024-08-14 10:22:54 +08:00
xushiwei
6c72846d63 llgo cmptest -gen 2024-08-14 09:47:40 +08:00
luoliwoshang
8bd6e1d119 lib/os: patch MkdirAll 2024-08-14 09:41:16 +08:00
xushiwei
6484a8e6a4 Merge pull request #706 from hackerchai/fix/c-libuv-struct-size
fix(c/libuv): Add multiple struct size
2024-08-14 08:57:54 +08:00
xushiwei
0e8e108680 Merge pull request #701 from aofei/cmptest
cmptest: add support for comparison with `llgo.expect` files
2024-08-14 08:57:20 +08:00
visualfc
3435b6c4a4 cl: makeInterface check instance named 2024-08-13 21:59:19 +08:00
xushiwei
d4af6af594 Merge pull request #703 from visualfc/constuptr
ssa: const support unsafe.pointer
2024-08-13 17:22:12 +08:00
xushiwei
b834abd293 Merge pull request #702 from aofei/os.CreateTemp
lib/os: patch `TempDir`, `MkdirTemp`, `CreateTemp`
2024-08-13 17:13:07 +08:00
xushiwei
01a6dd79c4 Merge pull request #704 from aisk/py-uintptr-to-int
fix(py): Change uintptr to int in container types
2024-08-13 17:10:37 +08:00
hackerchai
948b6cf7e7 fix(c/libuv): Add multiple struct size
Signed-off-by: hackerchai <i@hackerchai.com>
2024-08-13 16:51:42 +08:00
visualfc
b1718f329e ssa: const support unsafe.pointer 2024-08-12 22:01:15 +08:00
AN Long
7237f549a6 fix(py): Change uintptr to int in container types 2024-08-12 21:56:57 +08:00
Aofei Sheng
30b1660005 lib/os: patch TempDir, MkdirTemp, CreateTemp 2024-08-12 18:20:22 +08:00
Aofei Sheng
200fe07473 cmptest: add support for comparison with llgo.expect files
Fixes #671
2024-08-12 13:52:20 +08:00
hackerchai
86cb22d8c9 refactor(c/net): Use c link instead of manual implement func
Signed-off-by: hackerchai <i@hackerchai.com>
2024-08-12 10:53:18 +08:00
xushiwei
321766fd46 Merge pull request #699 from aisk/py-tuple
feat(py): Add more method to tuple object
2024-08-12 09:38:47 +08:00
xushiwei
3eedad96ed Merge pull request #696 from luoliwoshang/c/lua/custom-panic
c/lua:custom panic
2024-08-12 09:36:42 +08:00
AN Long
4b26dac08a feat(py): Add more method to tuple object 2024-08-11 20:40:06 +08:00
luoliwoshang
04ef069a20 c/lua:custom panic 2024-08-10 20:18:31 +08:00
luoliwoshang
b925ed60e3 llcppsymg:remove unused bug-fix loop 2024-08-09 14:20:33 +08:00
xushiwei
dfd85a7c53 Merge pull request #643 from visualfc/defernext
ssa: fix defer move block[0] index
2024-08-09 12:54:46 +08:00
visualfc
6ca63d4c68 ssa: fix defer move block[0] index 2024-08-09 12:07:07 +08:00
赵英杰
2325b547fd fix(c/libuv): Change the request calling method of echo_server 2024-08-09 10:35:14 +08:00
xushiwei
34e454c054 Merge pull request #689 from visualfc/slicetoarray
ssa: SliceToArrayPointer
2024-08-09 09:44:46 +08:00
visualfc
302386d22c ssa: SliceToArrayPointer 2024-08-09 09:02:57 +08:00
xushiwei
210c483635 Merge pull request #687 from xushiwei/q
library syscall: linux fix
2024-08-09 00:33:09 +08:00
xushiwei
8ca4212650 library syscall: linux fix 2024-08-09 00:22:29 +08:00
xushiwei
c91dba5ed6 Merge pull request #686 from xushiwei/q
rollback golang.org/x/tools v0.22.0 => v0.19.0
2024-08-08 23:58:31 +08:00
xushiwei
c8de05f101 rollback golang.org/x/tools v0.22.0 => v0.19.0 2024-08-08 23:52:29 +08:00
xushiwei
0ac7cde498 Merge pull request #684 from visualfc/initafter
cl: build initAfter
2024-08-08 23:05:02 +08:00
visualfc
108829ad9c cl: build initAfter 2024-08-08 21:36:18 +08:00
xushiwei
c5b96f4e9c Merge pull request #681 from luoliwoshang/llcppsymg/refine
llcppsymg:improve parse symbol
2024-08-08 16:26:24 +08:00
luoliwoshang
4c2099d33e llcppg:remove unuse types 2024-08-08 15:18:16 +08:00
luoliwoshang
fe5de95008 llcppsymg:improve parsing process 2024-08-08 15:17:10 +08:00
xushiwei
4b0cfc0751 Merge pull request #677 from tsingbx/bigInt
llgo support big.Int
2024-08-08 14:23:32 +08:00
tsingbx
c2bf05942e add openssl BIGNUM support 2024-08-08 13:34:04 +08:00
tsingbx
df37f80c8e add big.Int Lsh and Rsh and test it 2024-08-08 13:33:14 +08:00
xushiwei
2c19d7218d Merge pull request #680 from xushiwei/q
llcppg design
2024-08-08 11:57:20 +08:00
xushiwei
34899e8d36 llcppg design 2024-08-08 11:49:55 +08:00
xushiwei
bf8c10ed25 Merge pull request #678 from spongehah/refactor/c-libuv-remove-go-wrapper
fix(c/libuv): Adjust comment errors and demo code
2024-08-08 11:33:10 +08:00
xushiwei
93c33e08c2 Merge pull request #679 from xushiwei/hmac
llcppg/ast: ppdNode
2024-08-08 11:31:01 +08:00
xushiwei
3992dd1dd0 Merge pull request #675 from hackerchai/feature/c-net-add-missing-funcs
feat(c/net): Add SockaddrStorage func, Ntohs func & SetSockOpt func
2024-08-08 11:30:48 +08:00
xushiwei
cab29c2be7 llcppg/ast: ppdNode 2024-08-08 11:21:56 +08:00
hackerchai
f582657ffd fix(c/net): Remove unused implicit import
Signed-off-by: hackerchai <i@hackerchai.com>
2024-08-08 10:12:47 +08:00
赵英杰
2823ac1aee fix(c/libuv): Adjust comment errors and demo code 2024-08-08 10:04:20 +08:00
tsingbx
289caa7cc2 add BN_CTX Start, Get, End and Add big.Int Mul and test it 2024-08-08 09:10:31 +08:00
tsingbx
0a8bad46b5 add big.Int Set, Abs, Neg and add test it 2024-08-08 08:31:03 +08:00
xushiwei
aa4f518262 Merge pull request #673 from cpunion/libuv-async
Add libuv async
2024-08-07 21:43:50 +08:00
xushiwei
f76fa879fc Merge pull request #676 from luoliwoshang/xtool/ast/funcproto
castdump:funcproto type & computed enum value
2024-08-07 21:42:47 +08:00
luoliwoshang
8d70aba1f5 castdump:funcproto type & enum value 2024-08-07 20:33:35 +08:00
Li Jie
a44bb35aec libuv: add async 2024-08-07 20:24:43 +08:00
xushiwei
4fda2b656f Merge pull request #672 from luoliwoshang/c/clang/type-tree
castdump:array,typedef,pointer,funcproto,enum & builtin type
2024-08-07 19:15:37 +08:00
xushiwei
e626d00fdf Merge pull request #674 from hackerchai/feature/c-calloc
feat(c): Add Calloc func
2024-08-07 18:39:35 +08:00
hackerchai
bf09e3c3ae feat(c/net): Add SockaddrStorage func, Ntohs func & SetSockOpt func 2024-08-07 18:04:04 +08:00
hackerchai
753dcd3301 feat(c): Add Calloc func 2024-08-07 16:45:17 +08:00
Li Jie
8b5dee510e libuv: add uv_stop 2024-08-07 16:21:12 +08:00
luoliwoshang
9cb73fbf78 castdump:array,typedef,pointer & builtin type 2024-08-07 15:52:26 +08:00
xushiwei
e6b4deb5c4 Merge pull request #657 from hackerchai/fix/c-libuv-missing-func
feat(c/libuv): Add libuv missing funcs & refactor go func style
2024-08-07 15:04:52 +08:00
hackerchai
8848222728 feat(c/libuv): Add GetIoWatcherFd func using LLGoFiles 2024-08-07 14:49:21 +08:00
hackerchai
3cd62994c7 Revert "refactor(c/libuv): Use cgo alias replace struct assertion in fs"
This reverts commit 45ba5b8dc50a13223e05ad673f4e57d7277d3f24.

# Conflicts:
#	c/libuv/net.go
2024-08-07 14:49:20 +08:00
hackerchai
dd93a97790 Revert "feat(c/libuv): Add GetIoWatcherFd func"
This reverts commit 1ce16727b1195a65c8f2c9de07a864ed5e3902ef.

Signed-off-by: hackerchai <i@hackerchai.com>
2024-08-07 14:49:19 +08:00
hackerchai
e40e2d2d14 style(c/libuv): Use go type funcs & update demo(syanc_fs, echo_server) 2024-08-07 14:49:18 +08:00
hackerchai
26f8ce7b5a refactor(c/libuv): Use cgo alias replace struct assertion in fs
refactro(c/libuv): Use cgo alias avoid implicit struct member declaration
2024-08-07 14:49:17 +08:00
hackerchai
9a61e374b5 refactor(c/libuv): Move some func due to libuv doc
doc: https://docs.libuv.org/en/v1.x/
2024-08-07 14:49:16 +08:00
hackerchai
9b12e9819c fix(c/libuv/demo): Fix echo_server stream convert 2024-08-07 14:49:15 +08:00
hackerchai
5d0a91239c feat(c/libuv): Add GetIoWatcherFd func 2024-08-07 14:49:14 +08:00
hackerchai
c848278690 feat(c/libuv): Add uv_close & uv_signal func
Signed-off-by: hackerchai <i@hackerchai.com>

feat(c/libuv): Add uv_signal_stop func

Signed-off-by: hackerchai <i@hackerchai.com>

feat(c/libuv): Add GetIoWatcher, GetFd func & add Io srtuct

Signed-off-by: hackerchai <i@hackerchai.com>

refactor(c/libuv):  Rename some func

refactor(c/libuv): Remove net go wrapper

refactor(c/libuv):  Add GetIoWatcherFd func
2024-08-07 14:49:13 +08:00
luoliwoshang
2ebb929e2c castdump:accessMap 2024-08-07 10:59:27 +08:00
xushiwei
b34334ba93 Merge pull request #669 from visualfc/abimap
ssa: fix abi map init
2024-08-07 07:54:27 +08:00
visualfc
05a01cd803 ssa: fix abi map init 2024-08-06 22:24:21 +08:00
xushiwei
9ac0c06f26 Merge pull request #667 from luoliwoshang/c/clang/type
c/clang:cursor enum & type kind
2024-08-06 22:00:27 +08:00
xushiwei
52af22b0e8 Merge pull request #660 from luoliwoshang/c/clang/fullast
c/clang:full ast dump
2024-08-06 21:56:06 +08:00
luoliwoshang
81cfc73b48 castdump:full ast dump 2024-08-06 21:37:00 +08:00
xushiwei
f892bfccdf Merge pull request #665 from xushiwei/hmac
library: crypto/hmac, internal/fmtsort
2024-08-06 18:56:37 +08:00
xushiwei
dbed8fefac library: crypto/hmac 2024-08-06 18:49:24 +08:00
luoliwoshang
ca14637909 c/clang:type kind 2024-08-06 18:23:31 +08:00
luoliwoshang
7db618fba5 c/clang:cursor enum & access pecifier 2024-08-06 18:23:19 +08:00
xushiwei
29c74c09ce library/README: crypto/hmac, crypto/subtle 2024-08-06 17:19:31 +08:00
xushiwei
a2b5b9f97e library (todo): crypto/hmac, internal/fmtsort 2024-08-06 17:03:22 +08:00
tsingbx
6a05aa4e53 llgo support crypto hmac (#663)
* llgo support crypto/hmac
2024-08-06 16:47:51 +08:00
xushiwei
43fd5d233a Merge pull request #662 from xushiwei/cast
TypedefDecl
2024-08-06 15:10:15 +08:00
xushiwei
0bd39ed035 TypedefDecl 2024-08-06 15:09:39 +08:00
xushiwei
1db8aad039 Merge pull request #661 from xushiwei/cast
llcppg: c/c++ ast
2024-08-06 11:00:51 +08:00
xushiwei
fb2d4267f5 llcppg: c/c++ ast 2024-08-06 11:00:13 +08:00
xushiwei
d7b203ae08 Merge pull request #655 from tsingbx/hmac2
add openssl hmac
2024-08-05 23:21:19 +08:00
xushiwei
3e07f2e3bc Merge pull request #656 from spongehah/golib/net-url
library: net/url
2024-08-05 20:11:31 +08:00
xushiwei
94cf6f6640 Merge pull request #658 from luoliwoshang/c/clang/marco
c/clang:marco content
2024-08-05 20:10:10 +08:00
luoliwoshang
6da5fe4317 c/clang:marco content 2024-08-05 19:38:29 +08:00
赵英杰
3a68dee850 library: net/url 2024-08-05 18:00:27 +08:00
tsingbx
2ccfa6a2e8 add EVP_sha1, EVP_sha224.... 2024-08-05 17:38:01 +08:00
tsingbx
f7bf671050 add openssl hmac
delete GetMD and HMAC function

delete macro

tidy code

add hmac
2024-08-05 16:57:47 +08:00
xushiwei
4bff9cc3df Merge pull request #653 from luoliwoshang/c/clang/marco
[wip] c/clang:marco info
2024-08-05 12:53:23 +08:00
xushiwei
13c68a0184 Merge pull request #654 from visualfc/fixstd
cpp/std: fix std::string def
2024-08-05 12:48:33 +08:00
visualfc
6d92949715 cpp/std: fix std::string def 2024-08-05 11:17:42 +08:00
luoliwoshang
5cf31bd3f3 c/clang:marco info 2024-08-04 17:35:15 +08:00
xushiwei
929d4c8d61 Merge pull request #647 from aofei/ssa-llgolink
ssa: add `llgo:link` support to `Builder.abiMthd`
2024-08-04 12:08:52 +08:00
Aofei Sheng
482f796bad ssa: add llgo:link support to Builder.abiMthd 2024-08-04 11:00:31 +08:00
xushiwei
d85f532ab1 Merge pull request #652 from xushiwei/q
c/os: llgoClearenv
2024-08-04 10:55:03 +08:00
xushiwei
b1654f7807 c/os: llgoClearenv 2024-08-04 10:54:41 +08:00
xushiwei
4f8526e527 Merge pull request #649 from aofei/clearenv
fix(c/os): add missing `clearenv` for macOS
2024-08-04 10:50:18 +08:00
Aofei Sheng
4b568fc469 fix(c/os): add missing clearenv for macOS 2024-08-04 09:58:01 +08:00
xushiwei
d06146ed97 Merge pull request #645 from spongehah/refactor/c-libuv-remove-go-wrapper
refactor(c-libuv): Added TODO(uid) comment & adjusted the position of Handle, Stream, Req, Write, Connect
2024-08-04 07:35:21 +08:00
xushiwei
8e0e809733 Merge pull request #648 from aofei/sync
perf(lib/sync): avoid using `defer`
2024-08-04 07:31:49 +08:00
Aofei Sheng
d1f33a6c4c perf(lib/sync): avoid using defer 2024-08-03 09:05:43 +08:00
赵英杰
b3e1b6fdbf refactor(c-libuv): Added TODO(uid) comment & adjusted the position of Handle, Stream, Req, Write, Connect 2024-08-03 00:25:14 +08:00
xushiwei
0bd259403c Merge pull request #644 from xushiwei/q
library: io/ioutil
2024-08-02 14:35:23 +08:00
xushiwei
c186846463 README: io/ioutil 2024-08-02 14:27:10 +08:00
xushiwei
5f92c3b3fc library: io/ioutil 2024-08-02 14:26:13 +08:00
xushiwei
0665091cef Merge pull request #641 from xushiwei/q
c/openssl: bio, pem, rsa
2024-08-01 23:03:48 +08:00
xushiwei
688d153427 c/openssl: bio, pem, rsa 2024-08-01 22:55:17 +08:00
xushiwei
bec5ba7a73 Merge pull request #638 from luoliwoshang/doc/c/visibile
doc/c:refine symbol visibility desc
2024-08-01 17:17:39 +08:00
xushiwei
acedf4d6a3 Merge pull request #613 from hackerchai/fix/c-libuv-struct
fix(c/libuv): Add libuv fs struct new func & fix async_fs demo
2024-08-01 17:13:51 +08:00
hackerchai
5dd5494f93 refactor(c/libuv): Adapt libuv.Fs struct 2024-08-01 10:57:59 +08:00
hackerchai
f253e4fabe Revert "fix(c/libuv): Add libuv fs struct new func"
This reverts commit 5fdb0a9634b5ecc29ddd50b6e5cce9938bcb7934.

# Conflicts:
#	c/libuv/_wrap/fs.c
#	c/libuv/fs.go
2024-08-01 10:57:58 +08:00
hackerchai
acd09d24d5 fix(c/libuv): Fix async_fs demo return 255 error & pointer not allocated error
Signed-off-by: hackerchai <i@hackerchai.com>

fix(c/libuv): Mv LLGoFiles declaration

Signed-off-by: hackerchai <i@hackerchai.com>

fix(c/libuv/demo): Fix return 255 error & pointer not allocated error

Signed-off-by: hackerchai <i@hackerchai.com>

refactor(c/libuv): Rewrite FsNew() logic

Signed-off-by: hackerchai <i@hackerchai.com>
2024-08-01 10:57:57 +08:00
hackerchai
ceac95c81a fix(c/libuv): Add libuv fs struct new func
Signed-off-by: hackerchai <i@hackerchai.com>
2024-08-01 10:54:01 +08:00
luoliwoshang
47a05d0ea2 doc/c:refine symbol visibility description 2024-08-01 09:54:48 +08:00
xushiwei
d2975479f2 Merge pull request #637 from xushiwei/q
README: math/big
2024-08-01 08:52:27 +08:00
xushiwei
3c238ffae7 Merge pull request #629 from luoliwoshang/doc/c
doc/c: fix incorrect Constructor and Destructor usage in bindings
2024-08-01 08:51:38 +08:00
xushiwei
69f8d1b717 README: math/big 2024-08-01 08:46:37 +08:00
xushiwei
45cd9e65d3 Merge pull request #634 from xushiwei/q
library: math/big.Int (mini-impl for _cmptest/bigintdemo)
2024-08-01 00:38:24 +08:00
xushiwei
2e4b1d8c2b library: math/big.Int (mini-impl for _cmptest/bigintdemo) 2024-08-01 00:32:21 +08:00
luoliwoshang
4e3b65188d doc/c:update implicit destructors description 2024-08-01 00:10:03 +08:00
xushiwei
0ab32e066b Merge pull request #633 from xushiwei/q
c/openssl: bignum, rsa
2024-07-31 23:21:25 +08:00
xushiwei
79d8b00b27 c/openssl: bignum, rsa 2024-07-31 22:34:13 +08:00
xushiwei
eb02c5a451 Merge pull request #631 from xushiwei/q
library: crypto, crypto/{sha1, sha256, sha512}
2024-07-31 19:04:24 +08:00
xushiwei
85509c777d library: crypto 2024-07-31 18:59:25 +08:00
xushiwei
27677f86e4 library: crypto/{sha1, sha256, sha512} 2024-07-31 18:55:46 +08:00
xushiwei
16174ca874 Merge pull request #627 from tsingbx/main
add crypto sha1,sha256,sha512
2024-07-31 18:39:54 +08:00
luoliwoshang
a4e9233231 doc/c:fix incorrect usage in construtors 2024-07-31 15:24:31 +08:00
luoliwoshang
4fdfafa17f doc/c:update destructor usage 2024-07-31 15:10:50 +08:00
tsingbx
c9a7dab419 delete sum 2024-07-31 14:56:03 +08:00
tsingbx
8882d75132 fix test error 2024-07-31 14:36:42 +08:00
tsingbx
f67b15b926 fix test fail 2024-07-31 14:28:15 +08:00
tsingbx
2d7958f726 add crypto sha1, sha256, sha512 2024-07-31 13:56:42 +08:00
xushiwei
36072584d0 Merge pull request #626 from aofei/goreleaser
fix(.goreleaser.yaml): correct ldflags for build version and time
2024-07-31 13:38:40 +08:00
Aofei Sheng
2119e52f55 fix(.goreleaser.yaml): correct ldflags for build version and time 2024-07-31 13:27:54 +08:00
xushiwei
ca1aa6b663 Merge pull request #625 from aofei/opt-deps
ci: install further optional dependencies for demos
2024-07-31 13:00:34 +08:00
xushiwei
10af671b76 Merge pull request #624 from xushiwei/q
library: go/parser (todo)
2024-07-31 13:00:09 +08:00
Aofei Sheng
a4ec6cce96 ci: install further optional dependencies for demos
Achieved 100% pass rate for demo tests, at least on macOS.
2024-07-31 12:34:51 +08:00
xushiwei
5082ba7102 library: go/parser (todo) 2024-07-31 12:29:09 +08:00
xushiwei
7405e7001b Merge pull request #623 from xushiwei/q
library: encoding, go/{token, scanner}
2024-07-31 11:56:09 +08:00
xushiwei
4c70651b81 library: go/{token, scanner} 2024-07-31 11:33:15 +08:00
xushiwei
21b5b60278 Merge pull request #622 from xushiwei/q
library: crypto/rand
2024-07-31 10:30:20 +08:00
xushiwei
0abc5ec452 README: crypto/rand 2024-07-31 10:30:04 +08:00
xushiwei
b1d2d620fa Merge pull request #621 from aofei/deps
deps: require zlib 1.2+
2024-07-31 10:27:47 +08:00
xushiwei
af6e4abe84 library: crypto/rand 2024-07-31 10:26:18 +08:00
Aofei Sheng
45b4315842 deps: require zlib 1.2+ 2024-07-31 09:52:48 +08:00
xushiwei
d2cb96a9e5 Merge pull request #620 from xushiwei/q
c/openssl: rand
2024-07-31 01:33:10 +08:00
xushiwei
a3ff845a14 c/openssl: rand 2024-07-31 01:27:08 +08:00
xushiwei
621f05c687 Merge pull request #566 from luoliwoshang/llcppg/symg/header
[wip] llcppg/symg
2024-07-30 22:11:31 +08:00
xushiwei
daf97eabab Merge pull request #618 from xushiwei/q
README: c/openssl
2024-07-30 22:01:20 +08:00
xushiwei
ee3d11cb53 README: c/openssl 2024-07-30 21:56:19 +08:00
xushiwei
1bc7e5e0a5 Merge pull request #617 from xushiwei/q
library: math/rand
2024-07-30 21:50:22 +08:00
xushiwei
9280d23b1a Merge pull request #616 from tsingbx/main
add openssl sha1,sha256,sha512
2024-07-30 21:46:21 +08:00
xushiwei
cacd52f81d library: math/rand 2024-07-30 21:41:26 +08:00
tsingbx
95f64761ca add SHA224_CTX, SHA384_CTX 2024-07-30 21:24:03 +08:00
tsingbx
6e24792b9b Remove redundant code and add examples 2024-07-30 21:06:17 +08:00
luoliwoshang
9afe26f1d6 c/clang/symg:keep user edit symbol 2024-07-30 20:50:22 +08:00
xushiwei
e7d959da90 Merge pull request #614 from aofei/min-max
ssa: add support for `min` and `max` built-in functions
2024-07-30 19:59:33 +08:00
xushiwei
c3f0867d2c Merge pull request #615 from xushiwei/q
library: hash, hash/{adler32, crc32, crc64}; c/zlib: crc32/adler32
2024-07-30 19:44:17 +08:00
xushiwei
1eaf124d4e library: hash/{crc32, adler32} 2024-07-30 19:36:36 +08:00
tsingbx
03076bdc76 Merge branch 'main' of https://github.com/tsingbx/tsingbx-llgo 2024-07-30 19:20:54 +08:00
tsingbx
cd32d6debe add openssl sha1,sha256,sha512 2024-07-30 19:20:15 +08:00
xushiwei
3212f059ff c/zlib: crc32/adler32 2024-07-30 18:53:55 +08:00
tsingbx
9ae4b93083 add openssl sha1,sha256,sha512 2024-07-30 18:32:27 +08:00
xushiwei
aae7af2194 library: hash, hash/crc64 2024-07-30 18:26:33 +08:00
luoliwoshang
63f4c73ef0 c/clang/symg:remove example config file 2024-07-30 17:25:33 +08:00
luoliwoshang
f93d3381e0 c/clang/symg:move get conf func 2024-07-30 17:25:33 +08:00
luoliwoshang
099c80e04b c/clang/symg: use xtool/nm to parse symbol 2024-07-30 17:25:33 +08:00
luoliwoshang
14face336e c/clang/symg:remove JSONPath 2024-07-30 17:25:33 +08:00
luoliwoshang
67b10d8d38 c/clang/symg:refine config usage 2024-07-30 17:25:33 +08:00
luoliwoshang
1219230168 c/clang/symg:genSymbolTableFile 2024-07-30 17:25:33 +08:00
luoliwoshang
8d840e694d c/clang/symg:remove unuse comment 2024-07-30 17:25:33 +08:00
luoliwoshang
87382aad4d c/clang/symg:use unsafe.String to avoid memory copy 2024-07-30 17:25:33 +08:00
luoliwoshang
aca3a05222 c/clang/symg:abstract json item fetch 2024-07-30 17:25:33 +08:00
luoliwoshang
84ca145663 c/clang/symg:merge llcppinfofetch to llcppsymg 2024-07-30 17:25:33 +08:00
luoliwoshang
01d0338851 c/clang/symg:use llvm to demangle name 2024-07-30 17:25:33 +08:00
luoliwoshang
f427c0532d c/clang/symg:use cjson get conf 2024-07-30 17:25:33 +08:00
luoliwoshang
c8532a548c c/clang/symg:abstract common type 2024-07-30 17:25:33 +08:00
luoliwoshang
1e3aef5b94 c/clang/symg:remove chinese 2024-07-30 17:25:33 +08:00
morpingsss
0d3180271b feat(llgo/chore/llcppg): add JSONPath 2024-07-30 17:25:33 +08:00
luoliwoshang
f0d17b13f2 c/clang/symg:multiple header file 2024-07-30 17:25:33 +08:00
morpingsss
9a46301d46 feat(llgo/xtools): delete chinese 2024-07-30 17:25:33 +08:00
luoliwoshang
3bd609ee41 c/clang/symg:filter unuse file 2024-07-30 17:25:33 +08:00
luoliwoshang
2c7f0e8583 c/clang/symg:get constructor & destructor 2024-07-30 17:25:33 +08:00
morpingsss
ce36a25ba3 feat(llgo/xtools): add TrimPrefix 2024-07-30 17:25:33 +08:00
luoliwoshang
c53484f92e c/clang/symg:normal gen json 2024-07-30 17:25:33 +08:00
luoliwoshang
f391ccb8e8 c/clang/symg/header:get func info 2024-07-30 17:25:33 +08:00
morpingsss
a96d6a8148 feat(llgo/xtools): add llcppsymg.go 2024-07-30 17:25:33 +08:00
xushiwei
bdca09007d Merge pull request #612 from xushiwei/q
library: os.ReadFile
2024-07-30 17:18:28 +08:00
xushiwei
c0e84043c9 library: os.ReadFile 2024-07-30 17:14:59 +08:00
Aofei Sheng
0a884df74f ssa: add support for min and max built-in functions 2024-07-30 17:09:41 +08:00
xushiwei
519b14d506 Merge pull request #611 from aofei/openssl
deps: require OpenSSL 3.0+
2024-07-30 15:35:08 +08:00
Aofei Sheng
f008a65d91 deps: require OpenSSL 3.0+ 2024-07-30 14:17:45 +08:00
xushiwei
61bb70cd30 Merge pull request #610 from aofei/build
build: replicate macOS `-dead_strip` optimization on Linux
2024-07-30 10:18:27 +08:00
Aofei Sheng
68fa3dadb0 build: replicate macOS -dead_strip optimization on Linux
Added `-fdata-sections` and `-ffunction-sections` compiler flags to work
with `--gc-sections` on Linux. This combination achieves similar dead
code elimination as macOS's `-dead_strip`, reducing binary size and
resolving undefined symbol issues. Ensures consistent optimization
across macOS and Linux builds.
2024-07-30 08:52:29 +08:00
xushiwei
eb38d03976 Merge pull request #608 from xushiwei/q
library: crypto/md5
2024-07-30 02:11:38 +08:00
xushiwei
d480bb3ecd library: crypto/md5 2024-07-30 02:07:19 +08:00
xushiwei
dfdb6fa1a6 Merge pull request #607 from xushiwei/q
library: c/openssl
2024-07-30 01:40:46 +08:00
xushiwei
42352d9f57 library: c/openssl 2024-07-30 01:35:49 +08:00
xushiwei
eae1c5db70 Merge pull request #606 from xushiwei/q
library: bufio, encoding/csv
2024-07-30 00:48:05 +08:00
xushiwei
cc37097164 library: bufio, encoding/csv 2024-07-30 00:44:03 +08:00
xushiwei
6597cc9ce8 Merge pull request #605 from aisk/py-dict
feat(py): add some basic dict methods
2024-07-30 00:40:06 +08:00
xushiwei
b3f752d46c Merge pull request #604 from xushiwei/q
library: encoding/{binary, hex, base32, base64}
2024-07-30 00:38:12 +08:00
xushiwei
679e2d0f6b library: encoding/hex 2024-07-30 00:33:44 +08:00
AN Long
4607079ca9 feat(python): Add some basic dict methods 2024-07-30 00:33:21 +08:00
xushiwei
ad1a42d6a5 library: encoding/base32 2024-07-30 00:30:58 +08:00
xushiwei
afdf31a66c library: encoding/{binary, base64} 2024-07-30 00:28:04 +08:00
xushiwei
37956e2f05 Merge pull request #600 from visualfc/closureconv
ssa: closure changeType check convert
2024-07-30 00:17:35 +08:00
visualfc
dc6aa66f9a ssa: closure changeType check convert 2024-07-29 20:53:13 +08:00
xushiwei
f16f16c15e Update How-to-support-a-C&C++-Library.md 2024-07-29 19:50:23 +08:00
xushiwei
3b95cbd960 Merge pull request #599 from aofei/sigsetjmp
ssa: fix `Builder.Sigsetjmp` for Linux
2024-07-29 17:54:19 +08:00
Aofei Sheng
3b5e8edd37 ssa: fix Builder.Sigsetjmp for Linux
This follows up on #597.
2024-07-29 16:52:24 +08:00
xushiwei
5f4571e895 Merge pull request #602 from xushiwei/q
library: bytes, regexp, regexp/syntax
2024-07-29 16:37:42 +08:00
xushiwei
2d5e991eaf library: bytes, regexp, regexp/syntax 2024-07-29 16:31:59 +08:00
xushiwei
7ba8bb4405 Merge pull request #601 from aofei/python3.12
installation: require Python 3.12
2024-07-29 15:22:34 +08:00
Aofei Sheng
82aa181540 installation: require Python 3.12 2024-07-29 14:34:40 +08:00
xushiwei
1a3e17bae8 Merge pull request #598 from xushiwei/q
cmptest: regexdemo (todo)
2024-07-29 11:49:47 +08:00
xushiwei
e0e3664fdb cmptest: regexdemo (todo) 2024-07-29 11:44:49 +08:00
xushiwei
23bfaf1ba2 Merge pull request #597 from aofei/build
build: fix `sigsetjmp` issues and ensure required libs on Linux
2024-07-29 11:26:03 +08:00
Aofei Sheng
e7d72b6f53 build: fix sigsetjmp issues and ensure required libs on Linux
1. Handle `sigsetjmp` platform differences:
   - Separate `sigsetjmp` linkage to platform-specific files.
   - Use `__sigsetjmp` on Linux to handle `sigsetjmp` being a macro.
   - Maintain original implementation for Darwin.

2. Ensure linking of required libs:
   - Explicitly link against fundamental libs (e.g., libm, libatomic).
   - Address the fact that typical Linux linkers don't link these by
     default.
2024-07-29 11:16:04 +08:00
xushiwei
eab26deab9 Merge pull request #572 from hackerchai/fix/general-fix-libuv
fix(c/libuv): Fix return type FsType & struct rename
2024-07-29 11:12:49 +08:00
xushiwei
49540dbe5e Merge pull request #596 from xushiwei/q
library: os.Expand
2024-07-29 11:10:16 +08:00
xushiwei
cbd891785e library: os.Expand 2024-07-29 11:06:33 +08:00
hackerchai
b1cc732cb2 refactor(c/libuv): Rename UvPipe & remove unused structs
Signed-off-by: hackerchai <i@hackerchai.com>
2024-07-29 09:59:46 +08:00
xushiwei
b3b4f55c68 Merge pull request #594 from xushiwei/q
cpp/std: support nogc
2024-07-29 09:01:30 +08:00
xushiwei
8b6b039c13 cpp/std: support nogc 2024-07-29 08:55:27 +08:00
xushiwei
9dca62ff8b Merge pull request #593 from xushiwei/q
library: path, path/filepath
2024-07-29 08:39:28 +08:00
xushiwei
e0892fcebb library: path, path/filepath 2024-07-29 08:38:56 +08:00
xushiwei
adf1443105 Merge pull request #592 from xushiwei/q
cmptest: jsondemo (todo)
2024-07-29 02:04:43 +08:00
xushiwei
53c2558d26 cmptest: jsondemo (todo) 2024-07-29 01:56:39 +08:00
xushiwei
a5ea240793 Merge pull request #591 from xushiwei/q
reflect.Value: Uint fix
2024-07-29 01:31:28 +08:00
xushiwei
4cd1629118 reflect.Value: Uint fix 2024-07-29 01:26:56 +08:00
xushiwei
ce32a73e86 Merge pull request #590 from xushiwei/q
osexec: llvm bindir
2024-07-29 00:23:43 +08:00
xushiwei
8a13fc7cd9 osexec: llvm bindir 2024-07-29 00:17:53 +08:00
xushiwei
708de50887 syscall.forkAndExecInChild fix: os.Fcntl/Dup2 retval 2024-07-29 00:14:01 +08:00
xushiwei
4df478316c library: fmt.(*pp).doPrint; syscall.forkAndExecInChild 2024-07-29 00:02:30 +08:00
xushiwei
a5dff9fb15 library: os.ProcessState.String 2024-07-28 23:53:22 +08:00
xushiwei
b51f4d53b6 Merge pull request #589 from xushiwei/q
os.Pipe, syscall.CloseOnExec
2024-07-28 23:31:01 +08:00
xushiwei
7d045842dd library: syscall.CloseOnExec 2024-07-28 23:15:20 +08:00
xushiwei
a9ece9e49d library: os.Pipe 2024-07-28 23:09:21 +08:00
xushiwei
e6da067cf8 Merge pull request #588 from xushiwei/q
llgo/xtool/nm/nmindex
2024-07-28 22:55:38 +08:00
xushiwei
bae40c82b9 llgo/xtool/nm/nmindex 2024-07-28 22:51:35 +08:00
xushiwei
651edf5bc0 Merge pull request #587 from xushiwei/q
osexec demo
2024-07-28 22:32:05 +08:00
xushiwei
3a8642b1e0 syscall: forkAndExecInChild 2024-07-28 22:27:26 +08:00
xushiwei
09b6b9259c library: exec.Cmd.environ 2024-07-28 22:22:28 +08:00
xushiwei
907f326788 library: os.File.Close 2024-07-28 22:19:40 +08:00
xushiwei
4a350d8ad9 Merge pull request #586 from xushiwei/q
compileFuncDecl todo: change ssa.If to ssa.Jump for func init
2024-07-28 21:58:07 +08:00
xushiwei
3881db0b4e compileFuncDecl todo: change ssa.If to ssa.Jump for func init 2024-07-28 21:57:32 +08:00
xushiwei
9edae3e877 Merge pull request #582 from visualfc/init.patch
fix pkg init hasPatch && patch io.pipe
2024-07-28 21:13:50 +08:00
xushiwei
236208e393 Merge pull request #585 from xushiwei/q
runtime.Panic: mv error/Stringer to printany
2024-07-28 20:41:20 +08:00
xushiwei
4ff98de707 Merge pull request #584 from luoliwoshang/c/lua
c/lua:metatable & coroutine
2024-07-28 20:40:23 +08:00
xushiwei
54964629fe runtime.Panic: mv error/Stringer to printany 2024-07-28 20:31:48 +08:00
luoliwoshang
072f606784 c/lua:coroutine 2024-07-28 20:28:28 +08:00
xushiwei
21d2338ec1 Merge pull request #583 from xushiwei/q
fix panic in defer
2024-07-28 20:07:30 +08:00
xushiwei
0d468e0df4 cl/_testgo: defer5 2024-07-28 20:00:53 +08:00
xushiwei
5007d49c83 ssa: endDefer 2024-07-28 19:53:04 +08:00
luoliwoshang
35ba69a175 c/lua:metatable 2024-07-28 19:32:19 +08:00
xushiwei
fa0ce2a14c ssa: panicBlk use IndirectJump 2024-07-28 18:57:46 +08:00
xushiwei
389750d7d8 ssa: panicBlk (todo) 2024-07-28 18:51:07 +08:00
visualfc
6c7db7ad23 build: patch io.pipe 2024-07-28 17:01:34 +08:00
visualfc
2986426251 cl: fix pkg init hasPatch 2024-07-28 16:52:03 +08:00
xushiwei
56444ebcaf Merge pull request #581 from visualfc/init
cl: afterInit skip pkgHasPatch
2024-07-28 11:33:57 +08:00
visualfc
c63a1978cb cl: afterInit skip pkgHasPatch 2024-07-28 11:29:22 +08:00
xushiwei
9d9e998d49 Update README.md 2024-07-28 09:29:08 +08:00
xushiwei
f7c991fa9a Merge pull request #580 from visualfc/afterinit
cl: after init check hasPatch
2024-07-28 09:17:59 +08:00
visualfc
4d14fbb1e7 cl: after init check hasPatch 2024-07-27 21:20:06 +08:00
xushiwei
5428730e7a Merge pull request #579 from xushiwei/q
_cmptest: pipedemo
2024-07-27 16:03:58 +08:00
xushiwei
bf773df099 _cmptest: pipedemo 2024-07-27 16:03:22 +08:00
xushiwei
6dea5100b1 Merge pull request #578 from visualfc/overlay
internal/build: add io.pipe for overlay
2024-07-27 15:56:57 +08:00
visualfc
aa55f4dceb internal/build: add io.pipe for overlay 2024-07-27 12:32:33 +08:00
xushiwei
516e92926a Merge pull request #576 from xushiwei/q
c/pthread/sync: use go:linkname for internal func
2024-07-27 09:32:31 +08:00
xushiwei
2cd9994321 C.wrap_pthread_mutex_lock 2024-07-27 09:28:09 +08:00
xushiwei
e69306a2ba c/pthread/sync: use go:linkname for internal func 2024-07-27 09:11:38 +08:00
xushiwei
93ecd031bd Merge pull request #573 from visualfc/selectop
internal/runtime: fix endSelect
2024-07-27 08:20:52 +08:00
visualfc
4eaf69dfa7 internal/runtime: fix endSelect 2024-07-27 07:19:45 +08:00
hackerchai
bc93bda1b7 fix(c/libuv): rename UvFile into File & remove unused File struct
Signed-off-by: hackerchai <i@hackerchai.com>
2024-07-26 19:04:49 +08:00
hackerchai
6923f0df2a fix(c/libuv): fix return type FsType
Signed-off-by: hackerchai <i@hackerchai.com>
2024-07-26 19:01:53 +08:00
xushiwei
bc584aa56e Update README.md 2024-07-26 18:01:55 +08:00
xushiwei
ec95d06f6c Merge pull request #571 from xushiwei/x
pipedemo: todo
2024-07-26 16:57:17 +08:00
xushiwei
c5d18d9046 pipedemo: todo 2024-07-26 16:49:23 +08:00
xushiwei
af06983c60 Merge pull request #570 from xushiwei/x
cjson.ParseString demo
2024-07-26 16:44:13 +08:00
xushiwei
e027872f50 cjson.ParseString demo 2024-07-26 16:43:51 +08:00
xushiwei
e98e4fde8d Merge pull request #569 from xushiwei/x
cjson: FreeCStr
2024-07-26 16:35:39 +08:00
xushiwei
2daf9de890 Merge pull request #568 from morpingsss/morpingsss/doc2
docs(llgo/doc): Correct the file syntax and content.
2024-07-26 16:33:45 +08:00
xushiwei
ae50511135 cjson: FreeCStr 2024-07-26 16:31:53 +08:00
morpingsss
2227f83b1d docs(llgo/chore/llcppg): Modify the name of the json generated by llcppsigfetch 2024-07-26 16:18:39 +08:00
morpingsss
e764a2298d docs(llgo/doc): documents fix 2024-07-26 16:14:41 +08:00
xushiwei
ed4a8c2a36 Merge pull request #567 from fuxiaohei/main
fix describe mismatch in pthread.h
2024-07-26 15:14:38 +08:00
xushiwei
8cc3e571e3 Merge pull request #565 from xushiwei/x
library: os, syscall
2024-07-26 14:59:03 +08:00
xushiwei
66a89a7d54 c/libuv: disable EFTYPE 2024-07-26 14:55:36 +08:00
fuxiaohei
666be94a71 fix describe mismatch in pthread.h 2024-07-26 14:53:27 +08:00
xushiwei
49fabf23a8 x 2024-07-26 14:51:17 +08:00
xushiwei
a3b23e348a library syscall (linux): Wait4 2024-07-26 14:49:21 +08:00
xushiwei
384e887fdb syscall (linux): waitid, pipe2 2024-07-26 14:35:58 +08:00
xushiwei
d3e84cbc4c ci 2024-07-26 13:47:22 +08:00
xushiwei
1b06948fb0 library: os, syscall 2024-07-26 13:46:21 +08:00
xushiwei
98d075728f Merge pull request #564 from spongehah/refactor/c-libuv-remove-go-wrapper
refactor(c-libuv): Separate third-party libraries from standard libraries
2024-07-26 10:04:31 +08:00
赵英杰
1a7ecda67c refactor(c-libuv): Separate third-party libraries from standard libraries 2024-07-26 09:38:45 +08:00
xushiwei
067078db86 Merge pull request #563 from spongehah/refactor/c-libuv-remove-go-wrapper
refactor(c-libuv): Adjust the style of Errno definitions
2024-07-26 09:26:57 +08:00
赵英杰
37650fae75 refactor(c-libuv): Adjust the style of Errno definitions 2024-07-26 09:23:02 +08:00
xushiwei
13be3e3216 Merge pull request #562 from xushiwei/x
library os: ReadFile
2024-07-26 07:48:32 +08:00
xushiwei
87a7809104 library os: ReadFile 2024-07-26 07:42:26 +08:00
xushiwei
e82c33716a Update and rename Rust-to-LLGO-Migration-Guide.md to How-to-support-a-Rust-Library.md 2024-07-25 20:37:09 +08:00
xushiwei
9ebdddad1f Delete rust/.gitkeep 2024-07-25 19:55:13 +08:00
xushiwei
90f85bb9c3 Merge pull request #554 from luoliwoshang/c/clang/symbol
c/clang:symbol dump demo
2024-07-25 19:26:11 +08:00
xushiwei
002d04a3a1 Merge pull request #550 from luoliwoshang/env/correct-parse
env:fix incorrect extra line breaks & subcmd match
2024-07-25 19:24:31 +08:00
xushiwei
88a0b12e73 Merge pull request #559 from visualfc/mapnext
ssa: fix map next for named
2024-07-25 19:19:43 +08:00
xushiwei
5828e7f576 Update llcppg.go 2024-07-25 19:18:26 +08:00
xushiwei
a11da90d10 Merge pull request #560 from xushiwei/x
llcppg
2024-07-25 19:12:18 +08:00
xushiwei
d8026833dc llcppg 2024-07-25 18:46:40 +08:00
visualfc
8029bb6142 ssa: fix map next for named 2024-07-25 18:08:25 +08:00
luoliwoshang
baaddd395c c/clang:file location
c/clang/demo:filename

c/clang:fix undefined filename

c/clang:file use uintptr

c/clang:change cpp format
2024-07-25 18:00:03 +08:00
xushiwei
8bcbe7b3c6 Merge pull request #558 from xushiwei/x
llcppg design
2024-07-25 17:24:15 +08:00
xushiwei
4297320886 llcppg design 2024-07-25 17:23:34 +08:00
xushiwei
614994d8c7 Merge pull request #555 from hackerchai/refactor/c-libuv-remove-go-wrapper
feat(c/libuv): implement libuv to support async io
2024-07-25 17:12:03 +08:00
赵英杰
65e1f261c0 refactor(c-libuv): Ajust Errno 2024-07-25 15:40:02 +08:00
xushiwei
aa4caa6938 Merge pull request #557 from spongehah/rust/to-readme
doc:Rust-to-LLGO-Migration-Guide.md
2024-07-25 14:31:07 +08:00
赵英杰
9741574516 llgo/rust/readme: Some modifications 2024-07-25 12:07:05 +08:00
hackerchai
c27c654180 refactor(c/libuv): general fixes & optimize code
Signed-off-by: hackerchai <i@hackerchai.com>

refactor(c/libuv): optimize functions

Signed-off-by: hackerchai <i@hackerchai.com>

refactor(c/libuv): mv name

Signed-off-by: hackerchai <i@hackerchai.com>

refactor(c/libuv): modify libs

Signed-off-by: hackerchai <i@hackerchai.com>

refactor(c/libuv): use new buffer arg

Signed-off-by: hackerchai <i@hackerchai.com>

refactor(c/libuv/demo): optimize code style with go style

Signed-off-by: hackerchai <i@hackerchai.com>

refactor(c/libuv): optimize code and add comment

Signed-off-by: hackerchai <i@hackerchai.com>

fix(c/libuv): fix TranslateSysError

Signed-off-by: hackerchai <i@hackerchai.com>

refactor(c/libuv): remove go wrapper

Signed-off-by: hackerchai <i@hackerchai.com>

refactor(c/libuv/demo): refactor c style

Signed-off-by: hackerchai <i@hackerchai.com>

refactor(c/liobuv/demo): Some adjustments after removing go wrapper

refactor(c/libuv/demo): add print in echo_server

Signed-off-by: hackerchai <i@hackerchai.com>

doc(c/libuv): add README.md for c/libuv

Signed-off-by: hackerchai <i@hackerchai.com>

feat(c/libuv): implement poll_init_socket

Signed-off-by: hackerchai <i@hackerchai.com>

refactor(c/libuv): mv poll_init_socket function

Signed-off-by: hackerchai <i@hackerchai.com>

refactor(demo): remove libuv demo

Signed-off-by: hackerchai <i@hackerchai.com>
2024-07-25 11:04:06 +08:00
赵英杰
c63580ee38 feat(c/libuv/demo): Add libuv demo echo_server
refactor(c/libuv): Adjust comments and file names to accommodate merge
2024-07-25 11:00:57 +08:00
赵英杰
e9d4328fad feat(c/libuv): Add tcp, udp, poll, core, stream, err features
feat(c/io): add libuv async io with io, tcp, udp, timer, dns, loop

feat(c/io): add libuv async io with stream, req, handle

feat(c/libuv): rename c/io to c/libuv, and improve errro, net, handle, stream

feat(c/libuv): Add a libuv demo: echo_server

refactor(c/libuv): Adjust comments and file names to accommodate merge
2024-07-25 11:00:57 +08:00
hackerchai
545f9f2cca feat(c/libuv/demo): Add libuv async_fs demo
Signed-off-by: hackerchai <i@hackerchai.com>

fix(c/libuv): fix fs demo

Signed-off-by: hackerchai <i@hackerchai.com>

refactor(c/libuv): neat comment and adapt merge

Signed-off-by: hackerchai <i@hackerchai.com>
2024-07-25 11:00:56 +08:00
hackerchai
db6930d9e4 feat(c/libuv): Add io, fs, signal, core, poll features
Signed-off-by: hackerchai <i@hackerchai.com>

feat(c/libuv): Add io, fs, signal features

Signed-off-by: hackerchai <i@hackerchai.com>

refactor(c/libuv): rename io into libuv

Signed-off-by: hackerchai <i@hackerchai.com>

fix(c/libuv): fix some compile errors

Signed-off-by: hackerchai <i@hackerchai.com>
2024-07-25 11:00:55 +08:00
赵英杰
9379a41b37 llgo/rust/readme: improve Rust-to-LLGO-Migration-Guide 2024-07-25 09:07:33 +08:00
赵英杰
c0eeedc71a llgo/rust/readme: update readme 2024-07-25 09:04:55 +08:00
luoliwoshang
400197def8 doc:Rust-to-LLGO-Migration-Guide.md 2024-07-25 09:04:55 +08:00
luoliwoshang
0f8b202531 c/clang:symbol dump demo 2024-07-24 15:58:50 +08:00
xushiwei
1eb9775f34 Merge pull request #552 from cpunion/async-functions
Async functions design
2024-07-24 12:04:18 +08:00
Li Jie
89bdb315d5 WIP 2024-07-24 01:04:18 +08:00
Li Jie
ab1afd68b7 asyncio: instead io.Await(call) with call.Await() in demo 2024-07-23 17:33:01 +08:00
Li Jie
e1109e9e51 asyncio: doc update 2024-07-23 17:25:42 +08:00
Li Jie
7230e19166 asyncio: redesign 2024-07-23 17:02:40 +08:00
Li Jie
eb7a94bb55 *io.Promise 2024-07-23 15:59:26 +08:00
luoliwoshang
18de4e57eb env:fix incorrect extra line breaks & subcmd match 2024-07-23 14:32:44 +08:00
xushiwei
74cc12133e Update and rename x/async.md to x/io/README.md 2024-07-23 10:52:52 +08:00
xushiwei
7583354f44 Merge pull request #549 from cpunion/async-functions
Async functions design
2024-07-23 10:52:09 +08:00
xushiwei
14c49dd681 Merge pull request #551 from xushiwei/x
llcppg design
2024-07-23 09:41:37 +08:00
xushiwei
e060208417 llcppg design 2024-07-23 09:41:03 +08:00
morpingsss
635eea7acb docs(llgo/doc) add cpp-auto-tool-architecture-documentation (#547)
* docs(llgo/doc) add cpp-auto-tool-architecture-documentation
2024-07-23 08:27:01 +08:00
Li Jie
2c47f4a23d async design: return string 2024-07-22 22:35:02 +08:00
Li Jie
2223577302 async functions design 2024-07-22 22:17:02 +08:00
xushiwei
f42d235dec Merge pull request #548 from xushiwei/x
llgo/x/io: Promise: Async/Await
2024-07-22 19:37:02 +08:00
xushiwei
06a3e278ff llgo/x/io: Promise: Async/Await 2024-07-22 19:34:49 +08:00
xushiwei
17c30b5fdc Merge pull request #546 from visualfc/abi_named
ssa: fix abiNamed for llc verified
2024-07-22 17:12:37 +08:00
visualfc
024b30d0b7 ssa: fix abiNamed for llc verified 2024-07-22 12:38:07 +08:00
xushiwei
a108610a67 Merge pull request #543 from xushiwei/x
os/exec.Cmd.childStdin
2024-07-19 23:27:36 +08:00
xushiwei
12b6abe6a3 cmptest/_osexec 2024-07-19 23:20:55 +08:00
xushiwei
6f82b36962 library os: openFileNolog 2024-07-19 23:19:59 +08:00
xushiwei
ea6b397526 library: os/exec.Cmd.childStdin 2024-07-19 22:23:12 +08:00
xushiwei
118bb3f3ba Merge pull request #541 from xushiwei/x
demo: select, netdbd
2024-07-19 11:31:38 +08:00
xushiwei
bd68075f4d Merge pull request #539 from visualfc/bineq
ssa: fix binop closure/funcdecl
2024-07-19 11:29:15 +08:00
xushiwei
5fa68f8cdd demo: select 2024-07-19 11:27:49 +08:00
xushiwei
199aaf2d05 netdbdemo 2024-07-19 11:22:31 +08:00
xushiwei
892efcc166 Merge pull request #540 from xushiwei/x
c/sys: select
2024-07-19 11:18:58 +08:00
xushiwei
bc90c6b82f c/sys: select 2024-07-19 11:18:13 +08:00
visualfc
82d3d1f0f3 ssa: fix binop closure/funcdecl 2024-07-19 09:58:38 +08:00
xushiwei
576b3198f1 Merge pull request #537 from kindy/fix-expand-env
limit expand env to cmd pkg-config & llvm-config
2024-07-19 09:39:42 +08:00
xushiwei
f55cad8f1c Update README.md 2024-07-19 09:37:50 +08:00
xushiwei
d98654b50d Merge pull request #538 from xushiwei/x
use syscall.Timeval
2024-07-19 08:32:00 +08:00
xushiwei
675d9d8c09 use syscall.Timeval 2024-07-19 08:30:41 +08:00
xushiwei
bab0bb349f Merge pull request #523 from spongehah/c/hyper_related
[feat] llgo/c/hyper-related c lib
2024-07-19 08:20:12 +08:00
Kindy Lin
65d3ed8ce8 limit expand env to cmd pkg-config & llvm-config 2024-07-19 08:14:39 +08:00
xushiwei
8fc4000b63 Update README.md 2024-07-19 07:13:51 +08:00
xushiwei
5b35f781cb Create README.md 2024-07-19 06:43:37 +08:00
xushiwei
2cd11b7da7 Update README.md 2024-07-19 06:33:53 +08:00
xushiwei
cf30d2923c Update and rename How-to-migrate-a-C&C++-Library.md to How-to-support-a-C&C++-Library.md 2024-07-19 06:31:25 +08:00
xushiwei
8fc97794e8 Merge pull request #536 from xushiwei/x
doc How-to-migrate-a-C&C++-Library
2024-07-18 23:36:18 +08:00
xushiwei
df2ba37687 doc How-to-migrate-a-C&C++-Library 2024-07-18 23:35:39 +08:00
xushiwei
85b16b2a54 Merge pull request #532 from morpingsss/morpingsss/LLGO-Migration-for-C-C++-Third-Party-Libraries
docs(llgo/doc) : Add a document named "LLGO Migration for C/C++ Third-Party Libraries"
2024-07-18 23:24:24 +08:00
xushiwei
eeabc6b61a Merge pull request #534 from xushiwei/q
demo: osexec - todo
2024-07-18 23:01:27 +08:00
xushiwei
2b3dafed61 demo: osexec - todo 2024-07-18 23:00:57 +08:00
xushiwei
7232fc36ab Merge pull request #533 from xushiwei/q
library os: StartProcess/Wait/Sysctl/environ; syscall.Wait4; c/syscall: zerrors; c/os: Setrlimit/Getrlimit;
2024-07-18 22:52:39 +08:00
xushiwei
a8e1fd1054 library os: StartProcess/Wait 2024-07-18 22:27:00 +08:00
xushiwei
c248a50338 forkAndExecInChild 2024-07-18 20:50:49 +08:00
xushiwei
fa0ca23798 syscall: forkAndExecInChild 2024-07-18 20:09:07 +08:00
xushiwei
ed224cf912 os.Sysctl 2024-07-18 19:31:25 +08:00
xushiwei
b51df25371 c/os: Setrlimit/Getrlimit 2024-07-18 17:56:49 +08:00
xushiwei
db8cc8eb7b syscall.Wait4 2024-07-18 17:08:24 +08:00
morpingsss
a027e9fe14 fix(llgo/doc) : fix bug 2024-07-18 17:02:30 +08:00
morpingsss
b882ca809a fix(llgo/cpp/tinyxml) : fix -> 2024-07-18 16:27:49 +08:00
xushiwei
daf0a9dc9a syscall: forkExec - todo 2024-07-18 15:58:44 +08:00
xushiwei
f2dafa7544 c/syscall: zerrors 2024-07-18 15:45:54 +08:00
morpingsss
7fe22875a6 docs(llgo/doc) : Add a document :"LLGO Migration for C/C++ Third-Party Libraries". 2024-07-18 14:52:29 +08:00
xushiwei
3da3c8ecd8 library patch: syscall, os environ 2024-07-18 14:30:49 +08:00
赵英杰
254acbbbe2 llgo/c/hyper_related 2024-07-18 10:34:11 +08:00
赵英杰
519c850f17 llgo/c/hyper-related c lib 2024-07-18 09:57:08 +08:00
xushiwei
1cf57508b0 Update go.yml 2024-07-18 07:25:02 +08:00
xushiwei
f8bacfcc67 Merge pull request #524 from visualfc/sizes
build: fix unsafe.Sizeof for llgo:type C
2024-07-18 06:58:33 +08:00
xushiwei
9daa77c1a4 Merge pull request #531 from xushiwei/q
c/neco; neco demo: gen
2024-07-18 00:59:13 +08:00
xushiwei
c4775dd313 c/neco; neco demo: gen 2024-07-18 00:54:31 +08:00
xushiwei
ae87cb031e Merge pull request #522 from aofei/build
build(macOS): change full library paths to @rpath
2024-07-18 00:16:28 +08:00
xushiwei
3c049f25ee Merge pull request #530 from xushiwei/q
mv flagdemo => _cmptest
2024-07-18 00:10:31 +08:00
xushiwei
85a90b62b7 mv flagdemo => _cmptest 2024-07-18 00:09:21 +08:00
xushiwei
10b0124951 Merge pull request #525 from kindy/neco
[wip] c/neco: init and demo
2024-07-18 00:04:24 +08:00
Kindy Lin
c0d7ff9543 neco: fix 2024-07-17 22:41:35 +08:00
Aofei Sheng
74012d4869 build(macOS): change full library paths to @rpath 2024-07-17 18:50:13 +08:00
visualfc
830c40440f build: fix unsafe.Sizeof for llgo:type C 2024-07-17 18:49:18 +08:00
xushiwei
21a2f71ad9 Merge pull request #529 from visualfc/named
ssa: abiNamed set underlying size
2024-07-17 17:58:26 +08:00
visualfc
cf75e3e664 ssa: abiNamed set underlying size 2024-07-17 10:42:04 +08:00
xushiwei
ffc307323a Merge pull request #528 from xushiwei/q
cmd: dylibdeps
2024-07-17 09:18:58 +08:00
xushiwei
ff0aec28c5 cmd: dylibdeps 2024-07-17 09:16:55 +08:00
xushiwei
31394b03ae Merge pull request #527 from xushiwei/q
ssa: BinOp (map equal) fix; time.ParseDuration; fmt.Errorf; pkg: flag, strings; flagdemo: to fix bug
2024-07-17 07:45:06 +08:00
xushiwei
2ab93cb385 x 2024-07-17 07:41:14 +08:00
xushiwei
172b396dc9 pkg: flag, strings 2024-07-16 22:36:38 +08:00
xushiwei
9b82d08087 flagdemo: to fix bug 2024-07-16 22:26:23 +08:00
xushiwei
410617f73b reflect.valueInterface 2024-07-16 22:20:20 +08:00
xushiwei
ade0d38a7c patch library: todo message 2024-07-16 22:16:33 +08:00
xushiwei
3ce55a2ac4 ssa: BinOp (map equal) fix 2024-07-16 22:03:23 +08:00
xushiwei
cc6e4dbec0 time.ParseDuration; fmt.Errorf 2024-07-16 21:17:31 +08:00
xushiwei
2935ae7bf1 Merge pull request #521 from xushiwei/q
xtool/llvm/install_name_tool: Exec
2024-07-16 07:42:03 +08:00
xushiwei
96e418e63b xtool/llvm/install_name_tool: Exec 2024-07-16 07:32:18 +08:00
xushiwei
e4a84dcfe9 Merge pull request #520 from aofei/cleanup
chore: remove _demo/hello/hello
2024-07-16 07:02:57 +08:00
Aofei Sheng
9ea91cfce3 chore: remove _demo/hello/hello
Accidentally introduced in #519.
2024-07-15 23:39:20 +08:00
xushiwei
8c7f0cf988 Merge pull request #519 from aofei/rpath
build: fix rpath support on Linux
2024-07-15 23:08:46 +08:00
Aofei Sheng
afa9a00259 build: fix rpath support on Linux 2024-07-15 23:04:07 +08:00
Kindy Lin
a0ee11c300 neco: init 2024-07-15 21:52:45 +08:00
xushiwei
6e02dace18 Merge pull request #517 from xushiwei/q
xtool: llvm InstallNameTool
2024-07-15 15:12:05 +08:00
xushiwei
93bac6f26f install_name_tool: ChangeToRpath 2024-07-15 15:02:29 +08:00
xushiwei
8657fbd810 xtool: llvm InstallNameTool 2024-07-15 14:55:00 +08:00
xushiwei
68203be004 Merge pull request #502 from spongehah/c/fcntl
feat(c/os): add fcntl
2024-07-15 14:12:24 +08:00
xushiwei
b2323ef2e7 Merge pull request #516 from visualfc/clang_wrap
c/clang: wrap cursor
2024-07-15 13:33:49 +08:00
visualfc
70b017fb72 c/clang: wrap cursor 2024-07-15 13:28:34 +08:00
xushiwei
607e3bbc11 Merge pull request #515 from xushiwei/q
build: support rpath
2024-07-15 11:14:13 +08:00
spongehah
315c9285de fix: fcntl output error
Co-authored-by: 张之阳 <51194195+luoliwoshang@users.noreply.github.com>
2024-07-15 11:10:40 +08:00
赵英杰
c22427b8fd llgo/c/fcntl 2024-07-15 10:24:29 +08:00
xushiwei
2fcfac9e84 build: support rpath 2024-07-15 10:13:01 +08:00
赵英杰
7cc857233f llgo/c/fcntl:demo 2024-07-15 09:45:14 +08:00
xushiwei
f85aa09784 Merge pull request #514 from xushiwei/q
c/clang: castdump
2024-07-15 01:16:01 +08:00
xushiwei
0b0cecc2a9 c/clang: castdump 2024-07-15 01:07:26 +08:00
xushiwei
3b5b9c9587 Merge pull request #513 from xushiwei/q
cpp/llvm; os.Args; build: add llvm.BinDir to PATH
2024-07-15 00:31:11 +08:00
xushiwei
cbe190fa70 cpp/llvm; os.Args; build: add llvm.BinDir to PATH 2024-07-15 00:22:10 +08:00
xushiwei
9156466351 Update test_demo.sh 2024-07-14 11:03:45 +08:00
xushiwei
f79caf095d Update README.md 2024-07-14 11:01:08 +08:00
xushiwei
d31dcd13fc Update README.md 2024-07-14 10:57:21 +08:00
xushiwei
552224bbfe Merge pull request #510 from xushiwei/q
README: How support C and Python
2024-07-14 10:56:44 +08:00
xushiwei
5ba01674fb README: How support C and Python 2024-07-14 10:56:19 +08:00
xushiwei
7390afc5e1 Update README.md 2024-07-14 01:54:29 +08:00
xushiwei
85ec23d552 Merge pull request #509 from xushiwei/q
cpp/inih: small fix
2024-07-14 01:42:18 +08:00
xushiwei
007064c0ac cpp/inih: small fix 2024-07-14 01:41:31 +08:00
xushiwei
fd53756170 Merge pull request #508 from xushiwei/q
README: libraries
2024-07-14 01:38:59 +08:00
xushiwei
9e6dd9f23d README: libraries 2024-07-14 01:38:31 +08:00
xushiwei
ef8be6c7c2 Merge pull request #507 from luoliwoshang/c/lua
llgo/c/lua:link style
2024-07-13 23:30:07 +08:00
luoliwoshang
de4b5b70da llgo/c/lua:link style 2024-07-13 23:19:47 +08:00
xushiwei
9edeee4b3f Merge pull request #506 from xushiwei/q
_wrap: llgo_check (to be continued)
2024-07-13 19:58:07 +08:00
xushiwei
767a0cc1fd _wrap: llgo_check (to be continued) 2024-07-13 19:53:55 +08:00
xushiwei
ae09247e34 Merge pull request #505 from xushiwei/q
library: cpp/std (and more c++ mechanism, eg. build: clFiles support cflags)
2024-07-13 19:02:39 +08:00
xushiwei
a3ea4798bc build: clFiles support cflags, reuse llvm.Env; cpp/inih: _wrap/reader.cpp 2024-07-13 18:55:09 +08:00
xushiwei
af54a22d16 inih: INIReaderDispose 2024-07-13 18:11:34 +08:00
xushiwei
b026bfc71b inih.Reader: InitFromFile 2024-07-13 17:57:46 +08:00
xushiwei
80d80ad8aa library: cpp/std; cpp/inih demo: inihreader 2024-07-13 17:51:06 +08:00
xushiwei
dbecf33924 Merge pull request #504 from xushiwei/q
c.AllocaCStrs; ssa: AllocaU/ArrayAlloca/Times/AllocaCStrs; cl/_testlibc: allocacstrs; demo: sysexec
2024-07-13 12:51:33 +08:00
xushiwei
2b08e3604d TestConstBool; Test allocaCStrs 2024-07-13 12:47:29 +08:00
xushiwei
7d3a672c2b mv _demo/chandemo 2024-07-13 12:33:37 +08:00
xushiwei
022e46ae38 c.AllocaCStrs; cl/_testlibc: allocacstrs 2024-07-13 12:24:06 +08:00
xushiwei
3f930d228e Merge pull request #503 from luoliwoshang/c/socket/client
llgo/c/socket:client demo
2024-07-13 00:05:39 +08:00
luoliwoshang
5eba370f7b llgo/c/socket:client demo 2024-07-12 23:37:55 +08:00
xushiwei
e138951e9e c.AllocaCStrs; ssa: AllocaU/ArrayAlloca/Times/AllocaCStrs 2024-07-12 21:40:13 +08:00
xushiwei
5cd18d7275 Merge pull request #498 from morpingsss/morpingsss/add_inih
feat(cpp/inih): add inih parser_1
2024-07-12 20:56:50 +08:00
xushiwei
d7ff5a53a7 Merge pull request #499 from hackerchai/refactor/remove-rust-sled
refactor(rust/sled): remove sled due to move
2024-07-12 20:56:04 +08:00
xushiwei
aa14bb6fdf Merge pull request #501 from luoliwoshang/socket
llgo/c/socket:server demo
2024-07-12 20:54:27 +08:00
luoliwoshang
c275f682a9 llgo/c/socket:server demo 2024-07-12 17:39:13 +08:00
morpingsss
08894025bc fix(cpp/inih) : Use unsafe.Point to replace stirringHead 2024-07-12 14:48:17 +08:00
hackerchai
b063a48520 refactor(rust/sled): remove sled due to move
Signed-off-by: hackerchai <i@hackerchai.com>
2024-07-12 14:45:23 +08:00
xushiwei
858d38d314 Merge pull request #497 from luoliwoshang/c/perror
llgo/c:perror
2024-07-12 14:04:21 +08:00
morpingsss
f5875d09e9 feat(cpp/inih): add inih parser_4 2024-07-12 13:54:28 +08:00
morpingsss
34db181686 feat(cpp/inih): add inih parser_3 2024-07-12 13:53:01 +08:00
morpingsss
be55ea2b0b feat(cpp/inih): add inih parser_2 2024-07-12 12:03:15 +08:00
luoliwoshang
aa0dd4d10d llgo/c:perror 2024-07-12 11:18:35 +08:00
morpingsss
39533e4209 feat(cpp/inih): add inih parser_1 2024-07-12 11:13:15 +08:00
xushiwei
4bba3bf1d2 Merge pull request #496 from xushiwei/q
c/syscall/unix: remove deps of syscall
2024-07-12 01:33:54 +08:00
xushiwei
2d29d1549a c/syscall/unix: remove deps of syscall 2024-07-12 01:29:01 +08:00
xushiwei
c7a078f17f Merge pull request #495 from xushiwei/q
patch library: syscall, os, os/exec; demo: cexec; oslookpath
2024-07-12 01:20:03 +08:00
xushiwei
2cf92037e9 go1.21 2024-07-12 01:17:00 +08:00
xushiwei
452ee7a103 syscall: exec linux 2024-07-12 01:07:12 +08:00
xushiwei
68f70af2f3 c/syscall/unix 2024-07-12 00:59:32 +08:00
xushiwei
11682e487e c/os: fork/exec 2024-07-12 00:39:16 +08:00
xushiwei
4d006230f9 Merge pull request #493 from luoliwoshang/structsize
fix:correct `Sizeof` to align size properly
2024-07-11 23:39:39 +08:00
xushiwei
a32f4bb05c Merge pull request #494 from aofei/release-build.yml
ci: implement release-build.yml workflow with GoReleaser
2024-07-11 23:37:41 +08:00
luoliwoshang
6d4e260127 test:add struct size test 2024-07-11 23:04:50 +08:00
Aofei Sheng
45404b5bcf ci: implement release-build.yml workflow with GoReleaser 2024-07-11 22:59:20 +08:00
luoliwoshang
861551b2ba update:extra alignment for structs only 2024-07-11 21:16:50 +08:00
xushiwei
aac820a8d5 demo: oslookpath; syscall.Lstat/Stat 2024-07-11 19:21:04 +08:00
xushiwei
a5ff25b0fe library: c/syscall 2024-07-11 19:11:54 +08:00
xushiwei
b81638794f patch library: os/exec 2024-07-11 18:44:06 +08:00
luoliwoshang
88cfeb2791 fix:correct Sizeof to align size properly 2024-07-11 18:21:41 +08:00
xushiwei
d0b57535ed support: internal/oserror, io, io/fs 2024-07-11 18:20:12 +08:00
xushiwei
528add4702 patch library: syscall, os/exec 2024-07-11 18:00:20 +08:00
xushiwei
dd47971877 patch os: File 2024-07-11 14:47:03 +08:00
xushiwei
d51a99c8e2 Merge pull request #490 from visualfc/buildpkg
build: fix buildpkg
2024-07-11 13:40:36 +08:00
visualfc
e192f01dc3 build: fix buildpkg 2024-07-11 11:47:11 +08:00
xushiwei
aedaf57249 Update Type-Mapping-between-C-and-Go.md 2024-07-11 07:39:56 +08:00
xushiwei
222e58e76e Create Type-Mapping-between-C-and-Go.md 2024-07-10 17:31:03 +08:00
xushiwei
c8fc80f4a0 Merge pull request #489 from aofei/llgo-version
cmd: add "llgo version" command
2024-07-10 15:46:29 +08:00
Aofei Sheng
1ed180887d cmd: add "llgo version" command 2024-07-10 15:36:17 +08:00
xushiwei
d6a38a567f Merge pull request #481 from aofei/readme
readme: simplify installation instructions
2024-07-09 18:48:49 +08:00
Aofei Sheng
ae9c3276bc readme: simplify installation instructions
This also cleans up the remaining mentioned LLGOROOT.
2024-07-09 16:18:30 +08:00
xushiwei
35d34cd4e8 Update sled.go 2024-07-09 15:34:05 +08:00
xushiwei
4f45824632 Merge pull request #480 from xushiwei/q
refactor rust/sled
2024-07-09 15:27:18 +08:00
xushiwei
532da174dd refactor rust/sled 2024-07-09 15:25:21 +08:00
xushiwei
dbe13feba2 Merge pull request #450 from hackerchai/feature/rust-sled
feat(rust): implement rust sled demo
2024-07-09 14:42:19 +08:00
xushiwei
1c93061a7f Merge pull request #478 from xushiwei/q
patch time: Duration, Timer
2024-07-09 14:34:55 +08:00
xushiwei
0e371930e6 cmptest: ctxcancel 2024-07-09 14:26:02 +08:00
xushiwei
06bd748bd6 patch time: Duration, Timer 2024-07-09 14:24:48 +08:00
xushiwei
b64775772b Merge pull request #477 from visualfc/rets
ssa: fix multi result
2024-07-09 13:31:02 +08:00
visualfc
5f76314085 ssa: fix multi result 2024-07-09 13:10:02 +08:00
xushiwei
57588ea936 Merge pull request #476 from xushiwei/q
cl handleTypeDecl: typeBackground
2024-07-09 13:02:27 +08:00
xushiwei
3f344b55bb TestToBackground 2024-07-09 12:58:51 +08:00
xushiwei
e4ae0980b4 x 2024-07-09 12:42:20 +08:00
xushiwei
e41da0d697 cl handleTypeDecl: typeBackground 2024-07-09 12:38:34 +08:00
xushiwei
ce3955d393 Merge pull request #454 from visualfc/typec
cl: parser llgo:type C
2024-07-09 12:18:44 +08:00
visualfc
22a2cc564f cl: parser llgo:type C 2024-07-09 10:00:31 +08:00
Eason Chai
2b19513a05 Merge pull request #3 from luoliwoshang/feature/rust-sled
llgo:rust:sled:a working demo
2024-07-09 09:42:39 +08:00
luoliwoshang
60f8fe6f41 llgo/rust/sled:rename struct 2024-07-09 09:39:44 +08:00
luoliwoshang
a2fd010521 llgo:rust:sled:a working demo 2024-07-09 09:30:10 +08:00
hackerchai
a36d5b6302 fix(rust/sled): fix sled errors 2024-07-09 09:27:24 +08:00
hackerchai
2c14dc16dd feat(rust): implement sled support
Signed-off-by: hackerchai <i@hackerchai.com>
2024-07-09 09:27:23 +08:00
hackerchai
4c7f3f7972 feat(rust): implement rust sled demo
Signed-off-by: hackerchai <i@hackerchai.com>
2024-07-09 09:27:22 +08:00
xushiwei
794df59265 Merge pull request #475 from xushiwei/q
mv xtool/clang/parser, ar => chore/_deprecated
2024-07-09 01:36:50 +08:00
xushiwei
3dd71713c2 mv _test => c/bdwgc/_test 2024-07-09 01:33:48 +08:00
xushiwei
c0777d1a0a mv xtool/clang/parser, ar => chore/_deprecated 2024-07-09 01:29:26 +08:00
xushiwei
55392cb047 Merge pull request #474 from xushiwei/q
README: c libraries
2024-07-09 00:47:50 +08:00
xushiwei
070eedda18 README: c libraries 2024-07-09 00:43:45 +08:00
xushiwei
ae6ec78dc3 Merge pull request #430 from luoliwoshang/lua
[WIP] llgo/c/lua
2024-07-08 23:16:17 +08:00
xushiwei
9fe1b2a565 Update README.md 2024-07-08 23:11:25 +08:00
xushiwei
f374419be3 Merge pull request #472 from luoliwoshang/readme/zlib
[wip] README:zlib
2024-07-08 23:10:48 +08:00
xushiwei
0ff25cb116 Update README.md 2024-07-08 23:07:47 +08:00
xushiwei
d7e50f352a Merge pull request #473 from luoliwoshang/readme/raylib
[wip] README:raylib
2024-07-08 23:00:07 +08:00
luoliwoshang
aa9254eeb0 README:raylib 2024-07-08 22:24:41 +08:00
luoliwoshang
c1eba336a8 README:zlib 2024-07-08 21:48:40 +08:00
luoliwoshang
a5d7fc484a llgo/c/lua:table & coroutine 2024-07-08 21:31:11 +08:00
luoliwoshang
7a294e6d4e llgo/c/lua 2024-07-08 21:22:01 +08:00
xushiwei
2f79417d0d Merge pull request #470 from visualfc/fixiface
ssa: fix setDirectIface
2024-07-08 20:30:55 +08:00
visualfc
73b42f924d ssa: fix setDirectIface 2024-07-08 20:19:25 +08:00
xushiwei
ccf915e798 Update inih.go 2024-07-08 18:33:29 +08:00
morpingsss
62ffa14f10 feat(llgo/c):Add an INI parser (#466)
* feat(llgo/c):Add an INI parser
2024-07-08 18:28:18 +08:00
xushiwei
5d7840a34c Merge pull request #469 from aofei/ci
ci: update go.yml workflow to trigger on pushes and PRs to any branches
2024-07-08 17:41:29 +08:00
Aofei Sheng
fd14f6ff73 ci: update go.yml workflow to trigger on pushes and PRs to any branches
This update enables GitHub Actions in forks, streamlining development
and testing.
2024-07-08 17:32:13 +08:00
xushiwei
88962f9358 Merge pull request #462 from aofei/build-lla
build: replace precompiled *.lla with local compilation
2024-07-08 17:19:49 +08:00
Aofei Sheng
5bec1729f1 build: replace precompiled *.lla with local compilation
Switching from using precompiled *.lla files to compiling locally during
the build process for better flexibility and maintainability.

Fixes #411
2024-07-08 17:14:43 +08:00
xushiwei
f3662fc152 Merge pull request #468 from xushiwei/q
demo: ctxcancel
2024-07-08 16:05:25 +08:00
xushiwei
c5047186dd demo: ctxcancel 2024-07-08 15:50:16 +08:00
xushiwei
1e39bd8336 Program.Zero: support types.Signature/Chan 2024-07-08 15:37:20 +08:00
xushiwei
e58de234ac Merge pull request #460 from visualfc/funceq
ssa: fix func binop eq
2024-07-08 15:27:05 +08:00
visualfc
903cc181c4 cl/cltest: program init types.sizes 2024-07-08 15:21:03 +08:00
xushiwei
2183a098c3 Merge pull request #467 from xushiwei/q
library/demo: log
2024-07-08 15:20:41 +08:00
xushiwei
1d4cba9180 library/demo: log 2024-07-08 15:17:08 +08:00
xushiwei
ed724c5280 Merge pull request #464 from aofei/GOBIN
build: ensure GOBIN directory exists before use
2024-07-08 12:23:01 +08:00
xushiwei
fbd13ac42c Merge pull request #465 from morpingsss/morpingsss/add_Fopen
feat(llgo/c):Add two functions : Fopen &  Fclose
2024-07-08 12:20:03 +08:00
morpingsss
ea6eab557b feat(llgo/c):Add two functions Fopen and Fclose 2024-07-08 12:01:22 +08:00
Aofei Sheng
a1cb2a0589 build: ensure GOBIN directory exists before use 2024-07-08 08:57:18 +08:00
xushiwei
5de5a8ca94 Merge pull request #461 from goplus/dependabot/go_modules/github.com/goplus/mod-0.13.12
build(deps): bump github.com/goplus/mod from 0.13.10 to 0.13.12
2024-07-08 00:15:15 +08:00
dependabot[bot]
274026d338 build(deps): bump github.com/goplus/mod from 0.13.10 to 0.13.12
Bumps [github.com/goplus/mod](https://github.com/goplus/mod) from 0.13.10 to 0.13.12.
- [Release notes](https://github.com/goplus/mod/releases)
- [Commits](https://github.com/goplus/mod/compare/v0.13.10...v0.13.12)

---
updated-dependencies:
- dependency-name: github.com/goplus/mod
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-07 16:10:49 +00:00
visualfc
3875bc34bd ssa: fix func binop eq 2024-07-07 20:37:29 +08:00
xushiwei
8db3ccce2e Merge pull request #459 from xushiwei/ll
README: run _pydemo
2024-07-07 19:04:52 +08:00
xushiwei
34bb6fd851 README: run _pydemo 2024-07-07 19:04:10 +08:00
xushiwei
ffa74db136 Merge pull request #458 from xushiwei/ll
runtime chan fix: ChanTryRecv
2024-07-07 17:36:53 +08:00
xushiwei
66f2cbb91f runtime chan fix: ChanTryRecv 2024-07-07 17:23:21 +08:00
xushiwei
a57d49b057 Merge pull request #457 from xushiwei/q
fix #453 (select recv))
2024-07-07 16:21:45 +08:00
xushiwei
7b41a0ff16 fix #453 (select recv)) 2024-07-07 16:03:41 +08:00
xushiwei
4ca50f8973 Merge pull request #456 from aofei/llvm-18
llvm: default to LLVM 18
2024-07-07 15:44:20 +08:00
Aofei Sheng
abe2c6870b llvm: default to LLVM 18 2024-07-07 15:20:11 +08:00
xushiwei
c0ae681d69 Update README.md 2024-07-07 15:14:05 +08:00
xushiwei
b4745c0134 Merge pull request #455 from xushiwei/q
README
2024-07-07 15:12:55 +08:00
xushiwei
d369a6429e README 2024-07-07 15:12:20 +08:00
xushiwei
af3e326178 Merge pull request #453 from visualfc/select
[wip] ssa: select
2024-07-07 13:02:04 +08:00
visualfc
8e256a2d5d ssa: select 2024-07-07 11:26:22 +08:00
xushiwei
bdcbd9008d Merge pull request #452 from xushiwei/q
runtime: Select/TrySelect
2024-07-06 22:05:57 +08:00
xushiwei
453faa6a76 runtime: Select/TrySelect 2024-07-06 21:59:28 +08:00
xushiwei
b0941faf88 Merge pull request #431 from visualfc/map
ssa: support runtime.map
2024-07-04 19:17:10 +08:00
visualfc
91ba215568 internal/runtime: check abi.KindDirectIface 2024-07-04 18:59:41 +08:00
visualfc
be32f4072e internal/runtime: check abi.TFlagRegularMemory 2024-07-04 18:50:37 +08:00
visualfc
bcb217c1da ssa: set pointer directiface 2024-07-04 18:50:37 +08:00
visualfc
490a16a8df ssa: index check take address 2024-07-04 18:50:36 +08:00
visualfc
28d8c56534 ssa: index take addr 2024-07-04 18:50:36 +08:00
visualfc
46423ed166 internal/runtime: impl type.equal 2024-07-04 18:50:36 +08:00
visualfc
4286a510b4 runtime: stubs init hashkey 2024-07-04 18:50:36 +08:00
visualfc
8d193ab39f runtime: map hasher 2024-07-04 18:50:36 +08:00
visualfc
439e377111 ssa: map delete, map eql nil 2024-07-04 18:50:36 +08:00
visualfc
28ebce6b65 ssa: map range/next 2024-07-04 18:50:36 +08:00
visualfc
2ccd1625e7 ssa: support runtime.map 2024-07-04 18:50:36 +08:00
xushiwei
e05e61a59b Merge pull request #448 from xushiwei/q
patch fmt: printArg; py.Str; py.FromCStr/FromCStrAndLen/FromGoString
2024-07-04 18:44:33 +08:00
xushiwei
4660eae8c7 cl: _testpy/callpy 2024-07-04 18:39:31 +08:00
xushiwei
e55e90db1a py.Str; py.FromCStr/FromCStrAndLen/FromGoString 2024-07-04 18:34:00 +08:00
xushiwei
23da63767c patch fmt: printArg 2024-07-04 17:39:02 +08:00
xushiwei
13b19c35c6 Merge pull request #447 from xushiwei/q
patch fmt: fmt.Printf
2024-07-04 17:33:48 +08:00
xushiwei
7e25ec1ac3 patch reflect 2024-07-04 17:29:40 +08:00
xushiwei
ab1d05642e patch fmt: fmt.Printf 2024-07-04 17:05:26 +08:00
xushiwei
079b28fddf Merge pull request #445 from visualfc/namedfunc
ssa: fix named func call
2024-07-04 15:14:12 +08:00
visualfc
d52d62badb ssa: fix named func call 2024-07-04 11:28:40 +08:00
xushiwei
fa53135c8a Merge pull request #443 from xushiwei/q
README: libraries
2024-07-02 23:10:57 +08:00
xushiwei
d6a3f9fd8f README: libraries 2024-07-02 23:08:57 +08:00
xushiwei
75ca4af74e Merge pull request #442 from xushiwei/q
README: chan
2024-07-02 21:05:04 +08:00
xushiwei
dc5fc6bdc2 README: chan 2024-07-02 21:04:34 +08:00
xushiwei
67f8ee61a4 Merge pull request #440 from visualfc/chan
ssa: chan send/recv
2024-07-02 21:00:09 +08:00
visualfc
2153cf39b5 ssa: chan send/recv 2024-07-02 20:52:25 +08:00
xushiwei
0ead82ae21 Merge pull request #441 from xushiwei/q
runtime: close(chan)
2024-07-02 20:27:11 +08:00
xushiwei
98d4cf7585 runtime: close(chan) 2024-07-02 20:23:48 +08:00
xushiwei
3259536411 Merge pull request #439 from xushiwei/q
demo: cchan
2024-07-02 19:49:21 +08:00
xushiwei
f3a79cc779 demo: cchan 2024-07-02 19:49:00 +08:00
xushiwei
c45c6dbe67 Merge pull request #436 from luoliwoshang/link/warning
link:not exist method warning
2024-07-02 19:43:37 +08:00
xushiwei
a1518c33af Merge pull request #438 from visualfc/build_link
build: fix link runtime
2024-07-02 19:43:11 +08:00
visualfc
a9f7cdb630 build: fix link runtime 2024-07-02 18:40:20 +08:00
luoliwoshang
6f678294a0 link:not exist method warning 2024-07-02 17:37:32 +08:00
xushiwei
de07abee98 Merge pull request #437 from xushiwei/q
runtime: chan; cmptest: iodemo, fmtdemo
2024-07-02 16:05:14 +08:00
xushiwei
437edefa0c runtime: chan 2024-07-02 16:00:43 +08:00
xushiwei
f5b36ecbac Merge pull request #434 from visualfc/abi_patch
ssa: fix abi patch types.pointer
2024-07-02 12:14:54 +08:00
visualfc
8772c85964 ssa: fix abi patch types.pointer 2024-07-02 08:40:44 +08:00
xushiwei
a31454327a Update README.md 2024-07-02 07:39:53 +08:00
xushiwei
9e55cb114c Merge pull request #433 from xushiwei/q
abitype: support Patch (Clone + Merge); patch: os.File
2024-07-01 19:09:32 +08:00
xushiwei
04416a67d3 cl: SetPatch fix 2024-07-01 19:05:12 +08:00
xushiwei
dd2cdaf49a Merge pull request #425 from visualfc/makeslice
ssa: makeSlice fit int size and check
2024-07-01 16:59:27 +08:00
xushiwei
8c45eb7524 abitype: support Patch 2024-06-30 11:53:12 +08:00
xushiwei
c20bea50e3 Merge remote-tracking branch 'gop/main' into q 2024-06-30 11:16:53 +08:00
xushiwei
fe18c35dab patch: Clone/Merge 2024-06-28 15:14:30 +08:00
xushiwei
f6ef6abdf1 Merge pull request #424 from aofei/llvm
xtool: utilize llvm-config to find LLVM executables
2024-06-28 13:17:09 +08:00
Aofei Sheng
43a6837e81 xtool: utilize llvm-config to find LLVM executables 2024-06-27 20:27:42 +08:00
visualfc
dc4b933000 ssa: makeSlice both len/cap be non-nil 2024-06-27 20:01:27 +08:00
visualfc
c90703dc13 ssa: makeSlice fit int size and check 2024-06-27 19:57:44 +08:00
xushiwei
2165941026 patch: os.File 2024-06-27 02:28:18 +08:00
xushiwei
4a28893171 Merge pull request #429 from xushiwei/q
patch: fmt, os, runtime, syscall, time
2024-06-27 01:05:13 +08:00
xushiwei
369581976a c/time fix 2024-06-27 01:00:58 +08:00
xushiwei
7fef683980 c.Long as int64 2024-06-27 00:55:33 +08:00
xushiwei
8358f68086 Merge pull request #428 from visualfc/bytealg
ssa fix slice high, update bytealg for pkg bytes/strings
2024-06-27 00:53:42 +08:00
xushiwei
0aa6b03c2a patch time: Now 2024-06-27 00:51:21 +08:00
xushiwei
44f8c98660 demo: c ClockGettime (CLOCK_REALTIME/MONOTONIC) 2024-06-26 21:20:47 +08:00
xushiwei
188ec6ea1d patch time: time.Format 2024-06-26 20:41:34 +08:00
visualfc
8169d8509f cl/_testlibgo: bytes strings 2024-06-26 20:41:29 +08:00
visualfc
e217d39882 internal/lib/internal/bytealg: count index 2024-06-26 20:13:43 +08:00
visualfc
887ee0fd41 ssa: fix slice high 2024-06-26 20:09:38 +08:00
xushiwei
137e93319e c/time; patch: time 2024-06-26 19:36:39 +08:00
xushiwei
48a1384197 patch: fmt, os, runtime, syscall, time 2024-06-26 17:17:10 +08:00
xushiwei
8aed4d634b Merge pull request #427 from xushiwei/q
raylib demo: tetris
2024-06-26 00:52:16 +08:00
xushiwei
fd0cb4c458 raylib demo: tetris 2024-06-26 00:49:20 +08:00
xushiwei
82735f0fab Merge pull request #426 from xushiwei/q
patch os: File.Write
2024-06-26 00:31:33 +08:00
xushiwei
1d3710afd8 toSyscallErr => syscall.Errno 2024-06-26 00:28:21 +08:00
xushiwei
e8ae92f4d4 Merge pull request #423 from luoliwoshang/raylibdemo
llgo/c/raylib:tetris demo
2024-06-26 00:03:51 +08:00
luoliwoshang
b2e54a0590 llgo/c/raylib:tetris demo 2024-06-25 20:54:07 +08:00
xushiwei
d64d220b49 patch os: File.Write 2024-06-25 18:07:58 +08:00
xushiwei
2523a95a9a Merge pull request #422 from xushiwei/q
patch os, syscall, io/fs: Errno, Stdin/out/err
2024-06-25 16:14:25 +08:00
xushiwei
207c41581c patch syscall: errors for linux 2024-06-25 16:11:29 +08:00
xushiwei
6fc4a3ed04 patch os, syscall, io/fs: Errno, Stdin/out/err 2024-06-25 16:02:54 +08:00
xushiwei
2fabb6951e Merge pull request #421 from visualfc/abibasic
runtime: global abi basic
2024-06-25 15:46:00 +08:00
xushiwei
8c2f5f91d5 Merge pull request #420 from xushiwei/q
patch os: UserHomeDir/UserConfigDir/UserCacheDir
2024-06-25 15:45:29 +08:00
visualfc
7443d41444 runtime: global abi basic 2024-06-25 14:41:32 +08:00
xushiwei
4421734da1 patch os: UserHomeDir/UserConfigDir/UserCacheDir 2024-06-25 14:29:37 +08:00
xushiwei
4385ca0966 patch: internal/abi 2024-06-25 14:02:25 +08:00
xushiwei
57fa592a13 Merge pull request #419 from xushiwei/q
phi.AddIncoming fix: use checkExpr
2024-06-25 13:35:42 +08:00
xushiwei
1298118b59 phi.AddIncoming fix: use checkExpr 2024-06-25 13:31:44 +08:00
xushiwei
3f2cb40cc1 Merge pull request #418 from xushiwei/q
cmptest: sortdemo
2024-06-25 12:40:55 +08:00
xushiwei
5448abb304 cmptest: sortdemo 2024-06-25 12:40:28 +08:00
xushiwei
892fab5455 Merge pull request #417 from visualfc/abinamed
ssa: fix abiType & abiNamedOf
2024-06-25 12:34:23 +08:00
visualfc
ef3619350d ssa: fix abiType & abiNamedOf 2024-06-25 12:17:03 +08:00
xushiwei
846fb3e7f3 Merge pull request #416 from xushiwei/q
c/clang: use llvm-config
2024-06-25 12:05:05 +08:00
xushiwei
e00e9ba5aa c/clang: use llvm-config 2024-06-25 12:00:48 +08:00
xushiwei
f41511047e Merge pull request #392 from visualfc/rlite
ssa: fix abiType && abiMethoOf
2024-06-25 10:45:00 +08:00
visualfc
16352df5b1 ssa: fix abiType && abiMethoOf 2024-06-25 10:22:32 +08:00
xushiwei
5238c2457d Merge pull request #415 from xushiwei/q
c/raylib
2024-06-25 08:42:57 +08:00
xushiwei
4d57f414f5 c/raylib 2024-06-25 08:40:23 +08:00
xushiwei
6305088cb0 Merge pull request #414 from xushiwei/q
c/math (float32); c/math/rand
2024-06-25 01:32:58 +08:00
xushiwei
e2db1cd425 c/math (float32); c/math/rand 2024-06-25 01:30:13 +08:00
xushiwei
16561a8e84 Merge pull request #413 from xushiwei/q
c/zlib: Z_OK => OK
2024-06-25 01:24:42 +08:00
xushiwei
cae1b3ebd4 c/zlib: Z_OK => OK 2024-06-25 01:02:03 +08:00
xushiwei
e68737dcfb Merge pull request #404 from luoliwoshang/zlib
llgo/c/zlib
2024-06-25 00:45:19 +08:00
xushiwei
00448d23c0 Merge pull request #408 from aofei/llama2-libm
fix(c/llama2): explicitly link libm to ensure compatibility with Linux
2024-06-25 00:43:28 +08:00
xushiwei
272ae547ef Merge pull request #410 from xushiwei/q
c/clang; c/raylib demo
2024-06-25 00:43:07 +08:00
xushiwei
3fd688191c c/clang 2024-06-25 00:33:48 +08:00
luoliwoshang
5c0b6f2225 llgo/c/zlib 2024-06-24 23:03:18 +08:00
xushiwei
cc530e3446 c/raylib demo 2024-06-24 22:37:53 +08:00
xushiwei
fdc1d46b89 Merge pull request #409 from xushiwei/q
c/raylib
2024-06-24 22:03:54 +08:00
xushiwei
5dce677091 c/raylib 2024-06-24 21:56:53 +08:00
Aofei Sheng
d0fb5a4b04 fix(c/llama2): explicitly link libm to ensure compatibility with Linux 2024-06-24 17:50:05 +08:00
xushiwei
e27daed0ec c/llama2: rm precompiled *.ll files (#407) 2024-06-24 17:31:59 +08:00
xushiwei
d2183a8b32 c/llama2: rm precompiled *.ll files 2024-06-24 17:27:12 +08:00
七叶
0b2d6407dd runtime: type align (#405) 2024-06-24 17:15:45 +08:00
tsingbx
ec1b1ffe16 add math/rand (#403)
c/math/rand
2024-06-24 15:53:26 +08:00
xushiwei
32a66be555 Merge pull request #399 from visualfc/panicany
runtime: panic any custometype
2024-06-23 23:01:17 +08:00
visualfc
c090c34491 runtime: panic any custometype 2024-06-23 21:51:00 +08:00
xushiwei
4f7d3ad76c Merge pull request #398 from xushiwei/q
cppmintf: implements multiple intefaces in c++
2024-06-23 16:19:52 +08:00
xushiwei
ce81872686 cppintf: fix int type 2024-06-23 16:14:42 +08:00
xushiwei
2314c41103 cppmintf: implements multiple intefaces in c++ 2024-06-23 16:12:01 +08:00
xushiwei
df39b66e11 Merge pull request #394 from xushiwei/q
mv cases to _cmptest
2024-06-23 01:00:28 +08:00
xushiwei
adeb5de19f mv cases to _cmptest 2024-06-23 01:00:02 +08:00
xushiwei
26312e0c0e Merge pull request #393 from xushiwei/q
llgo cmptest (#391)
2024-06-23 00:53:41 +08:00
xushiwei
cd6d4021b1 llgo cmptest (#391) 2024-06-23 00:48:38 +08:00
xushiwei
24d345a970 Merge pull request #389 from xushiwei/q
cppintf: c++ name
2024-06-22 09:15:08 +08:00
xushiwei
b4fd4a0c38 cppintf: c++ name 2024-06-22 09:14:10 +08:00
xushiwei
451e695006 Merge pull request #388 from xushiwei/q
cppintf: with param
2024-06-22 08:42:35 +08:00
xushiwei
26b771f9f9 cppintf: with param 2024-06-22 02:39:29 +08:00
xushiwei
0679aedb7e Merge pull request #387 from xushiwei/q
cl: c.Func (llgo.funcAddr); demo: cppintf (how to use c++ interface)
2024-06-21 23:50:13 +08:00
xushiwei
bfa4e08a4e cl: c.Func (llgo.funcAddr); demo: cppintf (how to use c++ interface) 2024-06-21 23:44:56 +08:00
xushiwei
c1185a34aa Merge pull request #386 from xushiwei/q
build: disable verbose info for deps
2024-06-21 15:47:52 +08:00
xushiwei
be0ce57375 build: disable debug info for deps 2024-06-21 15:45:29 +08:00
xushiwei
b204b90ffc build: remove context.verbose 2024-06-21 15:31:18 +08:00
xushiwei
364b6938a5 Merge pull request #385 from xushiwei/q
patch: internal/reflectlite; demo: sort
2024-06-21 13:47:16 +08:00
xushiwei
e188925d2b patch: internal/reflectlite; demo: sort 2024-06-21 13:21:16 +08:00
xushiwei
10a47cdbbb build: use unsafe.Slice to reduce memory usage of overlayFiles 2024-06-21 12:43:17 +08:00
xushiwei
67014ae4f8 Merge pull request #384 from xushiwei/q
patch internal/reflectlite; demo: sort.Ints
2024-06-21 11:23:13 +08:00
xushiwei
b93fc3f028 patch internal/reflectlite; demo: sort.Ints 2024-06-21 11:02:28 +08:00
xushiwei
b6e5980510 Merge pull request #383 from visualfc/skipfiles
x/build: overlayFiles for fix math on amd64
2024-06-21 10:46:38 +08:00
visualfc
79e8921f76 x/build: overlayFiles for fix math on amd64 2024-06-21 07:55:17 +08:00
xushiwei
34fe3ca4fc Merge pull request #382 from xushiwei/q
patch reflect: Append/Index; Int fix
2024-06-21 03:33:44 +08:00
xushiwei
f26311c60e patch reflect: Append/Index; Int fix 2024-06-21 03:29:24 +08:00
xushiwei
43f9907af7 Merge pull request #381 from xushiwei/q
patch reflect: ValueOf/Int
2024-06-21 00:42:12 +08:00
xushiwei
0e6f5d154e patch reflect: ValueOf/Int 2024-06-21 00:31:36 +08:00
xushiwei
7042dd8447 Merge pull request #380 from xushiwei/q
patch reflect: Zero/Len
2024-06-20 23:44:51 +08:00
xushiwei
05031e0979 patch reflect: Zero/Len 2024-06-20 23:40:35 +08:00
xushiwei
28b3f6780c Merge pull request #379 from xushiwei/ll
README: reflect (partially)
2024-06-20 22:30:44 +08:00
xushiwei
f8335c6df9 README: reflect (partially) 2024-06-20 22:24:03 +08:00
xushiwei
9dcdc1f8f3 Merge pull request #378 from visualfc/abikind
ssa: abiTypeInit kind
2024-06-20 22:22:47 +08:00
visualfc
9ae7d4f2bf ssa: abiTypeInit kind 2024-06-20 22:09:26 +08:00
xushiwei
c158169bdf Merge pull request #373 from visualfc/complex
ssa: complex op and print/panic
2024-06-20 22:05:04 +08:00
visualfc
e4c1285eaf ssa: complex binop 2024-06-20 20:44:07 +08:00
visualfc
02a5375503 runtime: print/panic complex 2024-06-20 20:44:07 +08:00
xushiwei
32883b4e18 Merge pull request #377 from cpunion/fix-abi-init
Fix reentrant of ABI initialization
2024-06-20 20:36:41 +08:00
Li Jie
6d585e88a4 cl: output export file path of package in verbose 2024-06-20 20:13:53 +08:00
Li Jie
73570b5628 cl: re-generate tests 2024-06-20 20:13:53 +08:00
Li Jie
e7fcb068d9 ssa: fix reentrant of ABI initialization 2024-06-20 20:07:59 +08:00
xushiwei
a137a70278 Merge pull request #376 from xushiwei/ll
README: os (partially)
2024-06-20 19:56:40 +08:00
xushiwei
72113991a8 README: os (partially) 2024-06-20 19:55:37 +08:00
xushiwei
a04fb8e7de Merge pull request #371 from xushiwei/q
patch: reflect (reflect.Type)
2024-06-20 17:51:31 +08:00
xushiwei
ca2f30cd61 Merge pull request #375 from aofei/build-gopath
build: remove check for default GOPATH and GOROOT being identical
2024-06-20 17:47:44 +08:00
Aofei Sheng
ebfad05e3f build: remove check for default GOPATH and GOROOT being identical 2024-06-20 17:42:01 +08:00
xushiwei
f54ea9d978 Merge pull request #374 from xushiwei/check
complex testcase
2024-06-20 16:07:14 +08:00
xushiwei
d4c84cee19 complex demo 2024-06-20 16:00:11 +08:00
xushiwei
4da59cdc97 Merge pull request #363 from visualfc/panic
runtime: tracePanic
2024-06-20 15:42:51 +08:00
xushiwei
d4e7eb5888 bytealg.IndexByteString 2024-06-20 14:31:05 +08:00
xushiwei
f8b0a7105b patch: reflect (type) 2024-06-20 14:17:37 +08:00
visualfc
aecde91d33 runtime: tracePanic 2024-06-20 13:05:43 +08:00
xushiwei
870dde232a Merge pull request #369 from xushiwei/q
library: strconv
2024-06-20 11:09:43 +08:00
xushiwei
f7d7f81c49 library: strconv 2024-06-20 11:05:43 +08:00
xushiwei
1f04c61482 Merge pull request #368 from xushiwei/q
builtin: real/imag/complex; c/math/cmplx; patch: math/cmplx
2024-06-20 10:31:24 +08:00
xushiwei
5d957a6b7c libc complex64 support 2024-06-20 10:22:35 +08:00
xushiwei
94f61b0a0c TestFromTestlibgo 2024-06-20 10:07:10 +08:00
xushiwei
de6535b722 builtin: real/imag/complex; c/math/cmplx; patch: math/cmplx 2024-06-20 10:00:47 +08:00
xushiwei
6dd18e4328 Merge pull request #362 from aofei/build
build: set $GOPATH/bin as default GOBIN for Config.BinPath
2024-06-20 08:20:21 +08:00
Aofei Sheng
c46e4453c7 build: set $GOPATH/bin as default GOBIN for Config.BinPath
We should avoid making any changes to GOROOT whenever possible.

Fixes #361

Update internal/build/build.go

Co-authored-by: 张之阳 <51194195+luoliwoshang@users.noreply.github.com>
2024-06-20 08:14:05 +08:00
xushiwei
2e6312ec03 Merge pull request #366 from xushiwei/q
patch: syscall
2024-06-20 03:05:20 +08:00
xushiwei
1566a834e1 x 2024-06-20 03:00:12 +08:00
xushiwei
607deaa3c4 patch: syscall 2024-06-20 02:55:26 +08:00
xushiwei
686186d5ba Merge pull request #365 from xushiwei/q
cjson/sqlite README: remove install from source
2024-06-20 00:47:37 +08:00
xushiwei
0c1ef72285 cjson/sqlite README: remove install from source 2024-06-20 00:44:15 +08:00
xushiwei
d6bd12cfcd Merge pull request #364 from xushiwei/q
patch: io, io/fs, os; llgo.string; c string library; demo: getcwd; abi.TypeName fix: error interface is public
2024-06-20 00:35:10 +08:00
xushiwei
4a1712f4cd llgo.string (llgo/ssa.MakeString) fix 2024-06-20 00:30:36 +08:00
xushiwei
b4e298230d x 2024-06-20 00:13:41 +08:00
xushiwei
6cb42a4251 demo: getcwd; abi.TypeName fix: error interface is public 2024-06-19 23:58:20 +08:00
xushiwei
3ead4b4d4b llgo.string; c string library 2024-06-19 23:40:05 +08:00
xushiwei
3c0e321538 patch: io, io/fs, os 2024-06-19 22:21:44 +08:00
xushiwei
1f67434c8c Merge pull request #360 from xushiwei/q
llgo/ssa/abi: PathOf fix - support trim PatchPathPrefix; typepatch fix: don't change patch pkg
2024-06-19 17:13:12 +08:00
xushiwei
6058b9851c llgo/ssa/abi: PathOf fix - support trim PatchPathPrefix 2024-06-19 17:06:56 +08:00
xushiwei
c586319978 typepatch fix: don't change patch pkg 2024-06-19 12:30:38 +08:00
xushiwei
0591fe0e8b Merge pull request #357 from luoliwoshang/readme/tips
README:update python &  install instructions
2024-06-19 11:25:51 +08:00
luoliwoshang
dabe3b17e6 README:update python & git install instructions 2024-06-18 23:18:25 +08:00
xushiwei
fbf50d45cb Merge pull request #351 from visualfc/instance
build: instantiate generics
2024-06-18 21:59:27 +08:00
visualfc
d59075e897 build: instantiate generics 2024-06-18 19:26:52 +08:00
xushiwei
2b491179f7 Merge pull request #346 from visualfc/checkindex
ssa: index/indexAddr check range
2024-06-18 18:52:19 +08:00
xushiwei
a62d17b1b1 Merge pull request #356 from luoliwoshang/readme/install
README:update install instruction of LLGOROOT
2024-06-18 18:50:37 +08:00
xushiwei
2431758218 Merge pull request #355 from xushiwei/q
cl: initFnNameOfHasPatch fix (should rename before funcOf)
2024-06-18 18:47:41 +08:00
luoliwoshang
b94586fdf4 README:update install instruction of LLGOROOT 2024-06-18 18:47:00 +08:00
xushiwei
a6b83d77bd cl: initFnNameOfHasPatch fix (should rename before funcOf) 2024-06-18 18:44:07 +08:00
xushiwei
43c55b36c8 Merge pull request #352 from xushiwei/q
cl: fn.SetRecover; patch library: call init
2024-06-18 18:35:33 +08:00
xushiwei
24c7928c4b cl: pkgFNoOldInit flag if no initFnNameOld 2024-06-18 18:32:29 +08:00
xushiwei
8c876c302a patch library: call init 2024-06-18 18:23:16 +08:00
xushiwei
778a4373ae cl: fn.SetRecover; inPatch/hasPatch 2024-06-18 17:33:37 +08:00
xushiwei
7a15cf1157 patch: errors (todo) 2024-06-18 13:50:55 +08:00
xushiwei
54e3210d7e Merge pull request #350 from xushiwei/q
c/pthread/sync: RWLock/Cond; sync: RWMutex/Cond/WaitGroup
2024-06-18 10:19:53 +08:00
xushiwei
a3197c12a8 testllgo: waitgroup 2024-06-18 10:17:05 +08:00
xushiwei
e7de841939 c/pthread/sync: RWLock/Cond; sync: RWMutex/Cond/WaitGroup 2024-06-18 10:14:29 +08:00
visualfc
29ba00f370 ssa: index/indexAddr check max 2024-06-18 07:13:57 +08:00
xushiwei
e35d70f338 Merge pull request #349 from xushiwei/q
c: c.Int/Uint not alias C.int/uint
2024-06-18 01:30:25 +08:00
xushiwei
0271c65ca2 c: c.Int/Uint not alias C.int/uint 2024-06-18 01:25:57 +08:00
xushiwei
e604524301 Merge pull request #348 from xushiwei/q
c/pthread/sync.Mutex; sync.Mutex/Once; globalType: support typepatch
2024-06-18 00:15:19 +08:00
xushiwei
298831d987 README: sync (partially) 2024-06-18 00:10:21 +08:00
xushiwei
3b2e97a729 globalType: support typepatch 2024-06-18 00:06:40 +08:00
xushiwei
edaba44c87 c/pthread/sync.Mutex; sync.Mutex/Once; typepatch.IsPatched 2024-06-17 23:51:40 +08:00
xushiwei
dc2dc910e8 Merge pull request #347 from visualfc/cfunc
cl: check context.inCFunc
2024-06-17 22:27:33 +08:00
visualfc
96bf260ce9 cl: check context.inCFunc 2024-06-17 21:41:49 +08:00
xushiwei
115ea4ccbb Merge pull request #343 from xushiwei/q
cl: compileFuncDecl/funcName fix; patch library: sync; build: patch library fix (link dependencies)
2024-06-17 19:39:44 +08:00
xushiwei
3fb400beb4 merge upstream 2024-06-17 19:33:27 +08:00
xushiwei
6442279a44 testlibgo: sync (to do) 2024-06-17 19:30:59 +08:00
xushiwei
592500cb0c build: patch library fix (link dependencies) 2024-06-17 18:58:01 +08:00
xushiwei
98f3e45c0a cl: compileFuncDecl/funcName fix; patch library: sync 2024-06-17 18:32:58 +08:00
xushiwei
e365196ee3 Merge pull request #342 from aofei/dependencies
README,ci: add Dependencies section and update install instructions accordingly
2024-06-17 18:17:32 +08:00
xushiwei
f656499c23 Merge pull request #334 from aofei/build
build: explicitly link libpthread for compatibility with glibc versions before 2.34
2024-06-17 18:15:41 +08:00
Aofei Sheng
180c019d2e README,ci: add Dependencies section and update install instructions accordingly
Fixes #340
2024-06-17 18:15:08 +08:00
Aofei Sheng
7db50921bc build: explicitly link libpthread for compatibility with glibc versions before 2.34
Fixes #329
2024-06-17 14:07:51 +08:00
xushiwei
257b3f3ee6 Merge pull request #330 from visualfc/ssa.index
ssa: fix ssa.Index and indexType
2024-06-17 12:53:07 +08:00
xushiwei
f7c69b6baf Merge pull request #338 from aofei/install
ci,README: improve install instructions
2024-06-17 12:48:51 +08:00
xushiwei
89a3b84ea1 Merge pull request #339 from xushiwei/q
c/pthread/sync.Once
2024-06-17 12:47:36 +08:00
xushiwei
bec29f99e6 x 2024-06-17 12:39:54 +08:00
xushiwei
72274bda82 c/pthread/sync.Once 2024-06-17 12:14:24 +08:00
Aofei Sheng
04b62a62cb ci,README: improve install instructions 2024-06-17 12:03:09 +08:00
xushiwei
ab7329d3eb Merge pull request #335 from xushiwei/q
build: LLGoFiles (support to compile c files)
2024-06-17 11:06:43 +08:00
xushiwei
a819796ce2 build: LLGoFiles (support to compile c files) 2024-06-17 11:02:52 +08:00
xushiwei
8c6cdcc97e pkgPath 2024-06-17 05:35:05 +08:00
xushiwei
bf0148e047 canSkipToBuild 2024-06-17 05:33:07 +08:00
xushiwei
bcf44b8ab2 Merge pull request #333 from xushiwei/q
patch sync/atomic; typepatch fix (don't change types)
2024-06-17 04:16:33 +08:00
xushiwei
ebc9711309 TestErrImport 2024-06-17 04:11:31 +08:00
xushiwei
4097f90938 testlibgo: atomic 2024-06-17 03:53:31 +08:00
xushiwei
d73f77affc README: sync/atomic 2024-06-17 03:52:05 +08:00
xushiwei
b4794dc541 patch sync/atomic; typepatch fix (don't change types) 2024-06-17 03:38:01 +08:00
xushiwei
5ee156057e Merge pull request #332 from xushiwei/q
llgo:skipall; patch runtime, sync, sync/atomic
2024-06-16 23:15:04 +08:00
xushiwei
68a63bb280 TestIgnoreName 2024-06-16 23:11:28 +08:00
xushiwei
815677863f Merge pull request #331 from aofei/build
build: force use of LLVM Linker (lld) and fix usage of -dead_strip on Linux
2024-06-16 23:09:49 +08:00
xushiwei
df2f13c9b6 patch runtime, sync (use llgo:skipall) 2024-06-16 23:07:42 +08:00
Aofei Sheng
3984037c98 build: force use of LLVM Linker (lld) and fix usage of -dead_strip on Linux 2024-06-16 23:04:14 +08:00
xushiwei
9c8570b37d buildAllPkgs fix 2024-06-16 22:47:57 +08:00
visualfc
f7cddb81df ssa: fix ssa.Index and indexType 2024-06-16 22:18:02 +08:00
xushiwei
dc1fbbf796 llgo:skipall 2024-06-16 21:32:11 +08:00
xushiwei
7b7b4e5f22 patch sync/atomic 2024-06-16 20:49:31 +08:00
xushiwei
8c9b0285e4 testrt: gotypes 2024-06-16 17:12:08 +08:00
xushiwei
3ff5caef94 Merge pull request #328 from xushiwei/q
llgo/ssa: AtomicCmpXchg fix
2024-06-16 17:07:20 +08:00
xushiwei
4a3446a0a5 llgo/ssa: AtomicCmpXchg fix 2024-06-16 17:03:41 +08:00
xushiwei
6f6d9b39ba Merge pull request #327 from xushiwei/q
atomic Load/Store
2024-06-16 16:47:19 +08:00
xushiwei
7d2f68c5e4 TestErrBuiltin 2024-06-16 16:44:22 +08:00
xushiwei
5416e92dbf atomic demo 2024-06-16 16:39:55 +08:00
xushiwei
340b5bd165 atomic Load/Store 2024-06-16 16:35:46 +08:00
xushiwei
fbd15a81b4 Merge pull request #322 from luoliwoshang/cjson-linux
【WIP】README:cjson/sqlite download for linux
2024-06-16 15:26:51 +08:00
xushiwei
039d0abce2 Merge pull request #326 from xushiwei/q
atomic, atomicCmpXchg
2024-06-16 15:25:58 +08:00
xushiwei
aefb65b1b8 x 2024-06-16 15:23:38 +08:00
xushiwei
f7c322c311 demo: c atomic 2024-06-16 15:20:29 +08:00
xushiwei
b5507f79e4 atomic, atomicCmpXchg 2024-06-16 03:49:09 +08:00
luoliwoshang
a2703ce51b README:cjson sqlite download 2024-06-16 00:56:06 +08:00
xushiwei
d48b12aa09 Merge pull request #325 from xushiwei/q
build: use -dead_strip to reduce app size
2024-06-16 00:34:13 +08:00
xushiwei
452c1fbfd4 build: use -dead_strip to reduce app size 2024-06-16 00:31:25 +08:00
xushiwei
f77fd2a944 Merge pull request #324 from xushiwei/q
packages.LoadEx: support Deduper
2024-06-15 23:32:20 +08:00
xushiwei
2b1da5b231 loadPackageEx: dedup 2024-06-15 23:27:41 +08:00
xushiwei
1b48b98e22 refineEx: Deduper 2024-06-15 23:03:38 +08:00
xushiwei
4af872ddd5 loadPackageEx 2024-06-15 22:56:17 +08:00
xushiwei
6614107192 refineEx 2024-06-15 22:34:31 +08:00
xushiwei
09e1f9addf rm defaultDriverEx 2024-06-15 21:12:43 +08:00
xushiwei
baf282ecb2 packages.LoadEx: support Deduper 2024-06-15 20:46:29 +08:00
xushiwei
6022b32227 Merge pull request #323 from xushiwei/q
cl.NewPackageEx: don't skip alt(patch) package
2024-06-15 19:27:24 +08:00
xushiwei
9e9b08a5a3 cl.NewPackageEx: don't skip alt(patch) package 2024-06-15 19:18:21 +08:00
xushiwei
8147b974aa Merge pull request #321 from xushiwei/q
patches of a standard library; testlibgo: math
2024-06-15 18:49:03 +08:00
xushiwei
0a5a0ef319 cl/ssa.SetDebug 2024-06-15 18:41:45 +08:00
xushiwei
00c73b8388 ci 2024-06-15 18:28:39 +08:00
xushiwei
dcb8eb7d6d TestCollectSkipNames 2024-06-15 18:22:26 +08:00
xushiwei
7f11651311 TestGoLibMath: mac only (temp) 2024-06-15 18:08:08 +08:00
xushiwei
71518b025d TestGoLibMath: set LLGOROOT 2024-06-15 18:02:51 +08:00
xushiwei
287722b1d2 setPkgSSA 2024-06-15 17:56:45 +08:00
xushiwei
3a6f5dd4ee createAltSSAPkg 2024-06-15 17:40:05 +08:00
xushiwei
4aa3d321fa cltest.InitDebug 2024-06-15 16:26:37 +08:00
xushiwei
abb04b177c Merge remote-tracking branch 'gop/main' into q 2024-06-15 16:12:02 +08:00
xushiwei
764e0f0e7f TestGoLibMath 2024-06-15 16:08:10 +08:00
xushiwei
b668175c62 go package demo: math 2024-06-15 15:58:22 +08:00
xushiwei
5011c394d7 build: use typepatch.Pkg merge patches of a standard library 2024-06-15 15:52:44 +08:00
xushiwei
994502077a cl: collectSkipNames; processPkg bugfix 2024-06-15 14:56:03 +08:00
xushiwei
7d8bed16b0 createAltSSAPkg 2024-06-15 13:08:11 +08:00
xushiwei
a45be62b68 cl.NewPackageEx 2024-06-15 12:43:05 +08:00
xushiwei
e0a25b5098 NewPackage: altSSA 2024-06-15 12:10:08 +08:00
xushiwei
fa712aa3a0 build: aPackage.AltPkg/AltSSA 2024-06-15 11:44:52 +08:00
xushiwei
1599ba0294 private closureCtx/closureStub 2024-06-15 10:41:28 +08:00
xushiwei
94d567bf8f testlibgo: math 2024-06-15 10:24:10 +08:00
xushiwei
17f17bcc9e Merge pull request #320 from xushiwei/q
c/math; internal/lib/math
2024-06-15 10:05:23 +08:00
xushiwei
12c262621e c/sqlite: use pkg-config 2024-06-15 10:02:54 +08:00
xushiwei
dd35f2c14d c/math; internal/lib/math 2024-06-15 09:58:32 +08:00
xushiwei
66a9fd928a Merge pull request #319 from xushiwei/q
rm internal/runtime/c; mv internal/runtime/bdwgc => c/bdwgc
2024-06-15 08:50:34 +08:00
xushiwei
da82e5dd04 c/bdwgc 2024-06-15 08:47:13 +08:00
xushiwei
98498c9180 rm internal/runtime/c; mv internal/runtime/bdwgc => c/bdwgc 2024-06-15 08:43:48 +08:00
xushiwei
7b0ed42d3b Merge pull request #318 from xushiwei/q
internal/abi.Map: IndirectKey/IndirectElem
2024-06-15 08:28:20 +08:00
xushiwei
3e4fbde0b4 llgo/ssa: mv Range/Next => datastruct.go 2024-06-15 08:25:50 +08:00
xushiwei
7b0d23f91f internal/abi.Map: IndirectKey/IndirectElem 2024-06-15 08:21:27 +08:00
xushiwei
08d00fa234 Merge pull request #313 from visualfc/globals
ssa: global use elem type
2024-06-15 06:59:06 +08:00
xushiwei
2e32d9806f Merge pull request #315 from visualfc/abi
runtime: expand abi array
2024-06-15 06:55:41 +08:00
visualfc
6e73fbf65e runtime: expand abi array 2024-06-15 06:48:16 +08:00
xushiwei
b9f74d349c Merge pull request #317 from goplus/revert-316-q
Revert "runtime: map; llgo/ssa: MapUpdate"
2024-06-14 22:52:56 +08:00
xushiwei
5e45e38481 Revert "runtime: map; llgo/ssa: MapUpdate" 2024-06-14 22:50:23 +08:00
xushiwei
78b8455bba Merge pull request #316 from xushiwei/q
runtime: map; llgo/ssa: MapUpdate
2024-06-14 22:41:38 +08:00
xushiwei
6f71885aa2 TestMapUpdate 2024-06-14 22:37:46 +08:00
xushiwei
e107567997 llgo/ssa: MapUpdate fix 2024-06-14 22:33:40 +08:00
xushiwei
8d42acec16 disable llgo test temp 2024-06-14 22:14:18 +08:00
xushiwei
33d73eaecd llgo/ssa: abiMapOf 2024-06-14 22:07:48 +08:00
xushiwei
47b20b01d0 runtime: map; llgo/ssa: MapUpdate 2024-06-14 21:57:34 +08:00
xushiwei
b94cf700b4 Merge pull request #314 from luoliwoshang/link-cjson
llgo/x/cjson:link cjson by pkg-config
2024-06-14 19:11:01 +08:00
luoliwoshang
a26d30be3c llgo/x/cjson:link cjson by pkg-config 2024-06-14 11:36:48 +08:00
visualfc
ec1cca7ca4 ssa: global use elem type 2024-06-14 10:09:46 +08:00
visualfc
0c321c8c98 ssa: binop equal(func,slice,array,struct) and buildConstStr 2024-06-14 10:04:01 +08:00
xushiwei
7a54967bee runtime: map 2024-06-13 22:58:04 +08:00
xushiwei
f3b6d25aaa Merge pull request #309 from xushiwei/q
README: recover
2024-06-13 17:12:33 +08:00
xushiwei
419133d3e1 README: recover 2024-06-13 17:11:58 +08:00
xushiwei
1402ff371e Merge pull request #308 from aofei/README.md
README: fix LLGO_LIB_PYTHON instruction
2024-06-13 16:51:54 +08:00
Aofei Sheng
ee2d67c151 README: fix LLGO_LIB_PYTHON instruction 2024-06-13 15:40:35 +08:00
xushiwei
a8f1db0db1 Merge pull request #307 from xushiwei/q
recover
2024-06-13 13:55:07 +08:00
xushiwei
4abcbb9b51 recover 2024-06-13 13:51:36 +08:00
xushiwei
e33dd8acc3 Merge pull request #304 from xushiwei/q
testlibgo: math => mathbits
2024-06-13 07:33:46 +08:00
xushiwei
64e96cc101 testlibgo: math => mathbits 2024-06-13 07:30:08 +08:00
xushiwei
1aaa737dd6 Merge pull request #303 from xushiwei/q
llgo/ssa: float Const fix; cl: replace runtime => llgo/internal/runtime
2024-06-13 03:10:40 +08:00
xushiwei
31e3fc9060 x 2024-06-13 03:04:18 +08:00
xushiwei
b70b868552 TestReplaceGoName 2024-06-13 03:00:55 +08:00
xushiwei
7235357ef5 runtime: TODO - error var; cl: link goVar 2024-06-13 02:53:54 +08:00
xushiwei
18eecbe9f4 llgo/ssa: float Const fix; cl: replaceGoName runtime => llgo/internal/runtime 2024-06-13 00:56:18 +08:00
xushiwei
505525134f Merge pull request #302 from xushiwei/q
README: panic/defer
2024-06-12 23:28:30 +08:00
xushiwei
7dd740f51a README: panic/defer 2024-06-12 23:27:54 +08:00
xushiwei
3d590f8eb6 Merge pull request #301 from xushiwei/q
llgo/ssa: defer support panic; IndirectJump; runtime.Rethrow
2024-06-12 23:19:52 +08:00
xushiwei
42a5c6a19f c.GoDeferData; llgo/ssa: rm excepKey 2024-06-12 23:17:10 +08:00
xushiwei
2c4f6063a6 disable LLGO tests on ubuntu 2024-06-12 22:56:36 +08:00
xushiwei
845767b1d7 x 2024-06-12 21:13:47 +08:00
xushiwei
3e144af127 skip defer 2024-06-12 21:09:30 +08:00
xushiwei
45f470e3a7 merge upstream 2024-06-12 21:02:26 +08:00
xushiwei
42a5c60af6 runtime.Rethrow fix; llgo/ssa: IndirectJump fix 2024-06-12 20:53:30 +08:00
xushiwei
29cebd1e1f Merge pull request #300 from xushiwei/t
fix #294
2024-06-12 20:35:17 +08:00
xushiwei
4450f5a084 fix #294 2024-06-12 20:31:42 +08:00
xushiwei
b8230e144a Merge pull request #298 from visualfc/eface
ssa: interface equal
2024-06-12 20:29:15 +08:00
xushiwei
d500902eff TODO: noreturn 2024-06-12 17:38:29 +08:00
xushiwei
b787de0163 runtime: rethrow/panic; llgo/ssa: DeferData; Null => Nil 2024-06-12 17:26:07 +08:00
visualfc
2f0d525c2e ssa: binop EfaceEqual 2024-06-12 07:25:20 +08:00
visualfc
3f0c65ebb2 ssa: fix typeAssert for Nil 2024-06-11 20:50:01 +08:00
visualfc
f33796797d cl: _testgo/reader 2024-06-11 12:15:18 +08:00
xushiwei
68a09b9804 Merge pull request #299 from xushiwei/t
cl: isVargs support defer/go
2024-06-11 10:39:40 +08:00
xushiwei
5e5d149ca5 cl: isVargs support defer/go 2024-06-11 10:35:27 +08:00
visualfc
bdf1c275c4 ssa: interface equal 2024-06-11 10:24:30 +08:00
visualfc
439a69f413 ssa: fix cvtNamed 2024-06-11 10:23:36 +08:00
visualfc
a14974fbf2 cl: compile ssa.Field 2024-06-11 10:23:00 +08:00
xushiwei
1ecd9af2e1 Merge pull request #297 from cpunion/decl-test
cl: test decl only pkg kind
2024-06-11 08:28:41 +08:00
Li Jie
c8cc2dac04 cl: test decl only pkg kind 2024-06-09 19:23:22 +08:00
xushiwei
60dd33b48f llgo/ssa: defer support panic; IndirectJump/Switch 2024-06-09 09:08:22 +08:00
xushiwei
8b7d8b7786 Merge pull request #292 from xushiwei/q
disable gc: llgo -tags nogc
2024-06-08 23:12:34 +08:00
xushiwei
fb7ea7810e disable gc: llgo -tags nogc 2024-06-08 23:06:55 +08:00
xushiwei
508e16aa80 Merge pull request #291 from xushiwei/q
README: gc
2024-06-08 22:35:25 +08:00
xushiwei
a057db8756 README: gc 2024-06-08 22:30:06 +08:00
xushiwei
a1c588bde8 Merge pull request #284 from cpunion/bdwgc
Add bdwgc
2024-06-08 22:12:57 +08:00
xushiwei
9b17fdeae2 Merge pull request #290 from xushiwei/q
llgo/ssa: deferInitBuilder
2024-06-08 21:46:47 +08:00
xushiwei
29c0c737ed llgo/ssa: deferInitBuilder 2024-06-08 21:39:45 +08:00
xushiwei
be6986a7f6 Merge pull request #289 from xushiwei/q
llgo/ssa: getDefer fix
2024-06-08 20:15:07 +08:00
xushiwei
63c03bb28c llgo/ssa: getDefer fix 2024-06-08 20:09:56 +08:00
xushiwei
758f5b27c3 Merge pull request #288 from xushiwei/q
runtime.Defer: remove proc
2024-06-08 16:34:48 +08:00
xushiwei
32bfb3d57e runtime.Defer: remove proc 2024-06-08 16:31:52 +08:00
xushiwei
6bd8822a90 Merge pull request #287 from xushiwei/q
builtin: sigjmpbuf/sigsetjmp/siglongjmp
2024-06-08 15:19:56 +08:00
xushiwei
abf461a049 TestErrBuiltin 2024-06-08 15:17:49 +08:00
xushiwei
4e98055b9c TestFromTestlibc 2024-06-08 15:09:24 +08:00
xushiwei
e6ab5bd86d testFrom: expected == ';' means skipping out.ll 2024-06-08 15:04:35 +08:00
xushiwei
02e0651eab ignore setjmp/out.ll (os deps) 2024-06-08 14:59:26 +08:00
xushiwei
93be634673 builtin: sigjmpbuf/sigsetjmp/siglongjmp 2024-06-08 14:49:48 +08:00
xushiwei
a1978f661b Merge pull request #286 from xushiwei/t
llgo/ssa: eh.go (exception handling)
2024-06-08 13:34:30 +08:00
xushiwei
9bda864fed Merge remote-tracking branch 'gop/main' into q 2024-06-08 13:31:41 +08:00
xushiwei
b6903c6b99 llgo/ssa: eh.go (exception handling) 2024-06-08 13:31:11 +08:00
xushiwei
1e7394135d Merge pull request #285 from xushiwei/q
_demo: setjmp
2024-06-08 13:25:33 +08:00
Li Jie
61ccaab55b ci: show test result 2024-06-08 13:20:53 +08:00
xushiwei
f17c3c52c4 gitignore demo.ll 2024-06-08 13:12:32 +08:00
Li Jie
f16e721d01 ci: comment test result on PR 2024-06-08 13:11:24 +08:00
xushiwei
6dfdca2d19 _demo: setjmp 2024-06-08 13:10:59 +08:00
Li Jie
ee848e66ac test: run _demo/* and _pydemo/* 2024-06-08 13:10:20 +08:00
Li Jie
91e1fa6aff test: simple llgo tests 2024-06-08 10:15:28 +08:00
Li Jie
6049cf9047 runtime: add bdwgc 2024-06-08 10:15:28 +08:00
xushiwei
e91366c328 Merge pull request #282 from visualfc/runtime
build: check runtime link file
2024-06-08 07:54:00 +08:00
xushiwei
d6a5aaf4ad Merge pull request #283 from xushiwei/q
setjmp/trycatch
2024-06-08 00:13:06 +08:00
xushiwei
fcf3f2abc7 setjmp/trycatch 2024-06-08 00:08:29 +08:00
visualfc
ae77622026 build: build runtime check skip 2024-06-07 21:02:01 +08:00
visualfc
878b395e20 build: check runtime link file 2024-06-07 20:33:31 +08:00
xushiwei
92aee9b69c Merge pull request #281 from visualfc/build
build: build runtime local
2024-06-07 17:07:15 +08:00
visualfc
fe10ddc720 build: build runtime local 2024-06-07 15:25:35 +08:00
xushiwei
46899f042f Merge pull request #280 from xushiwei/q
demo: try..catch
2024-06-07 14:29:59 +08:00
xushiwei
d4249da131 demo: try..catch 2024-06-07 14:29:16 +08:00
xushiwei
6cae018066 Merge pull request #279 from xushiwei/q
c/setjmp/demo
2024-06-07 14:13:18 +08:00
xushiwei
95c1886df5 c/setjmp/demo 2024-06-07 14:12:35 +08:00
xushiwei
fbd8cb07ea Merge pull request #278 from xushiwei/q
c/setjmp
2024-06-07 13:51:10 +08:00
xushiwei
4868903844 c/setjmp 2024-06-07 13:48:36 +08:00
xushiwei
62e721b1c8 Merge pull request #276 from cpunion/libc
runtime: fix alias no effects on linux
2024-06-06 22:33:19 +08:00
Li Jie
1ceaf1df22 runtime: fix libc linking 2024-06-06 19:46:21 +08:00
xushiwei
21c9f7b7fb Merge pull request #275 from cpunion/libc
runtime: libc compatible
2024-06-06 17:24:06 +08:00
Li Jie
f5526f73c7 runtime: compatible difference of stdio symbols between linux and others 2024-06-06 17:17:26 +08:00
Li Jie
15fad2e841 cl: supports decl: <param> 2024-06-06 17:14:31 +08:00
xushiwei
3ecb43072d Merge pull request #272 from visualfc/typeassert
ssa: typeAssert support interface
2024-06-06 10:26:31 +08:00
visualfc
2fce2318ed ssa: set method.name to pkg.name if private 2024-06-06 07:30:59 +08:00
xushiwei
226fd29af8 Merge pull request #274 from xushiwei/q
ssa/python.go
2024-06-05 16:33:19 +08:00
xushiwei
c48b39baab ssa/python.go 2024-06-05 16:29:58 +08:00
xushiwei
ed19a6960e Merge pull request #273 from xushiwei/q
cl/blocks
2024-06-05 15:20:08 +08:00
xushiwei
11b4de63ee llgo_autogen.lla 2024-06-05 15:14:34 +08:00
xushiwei
b9d1d52ab3 gentests 2024-06-05 15:10:35 +08:00
xushiwei
fe548e580d use cl/blocks 2024-06-05 15:08:05 +08:00
xushiwei
fd7d2765c8 findLoop: reach 2024-06-05 15:02:11 +08:00
xushiwei
a226a70383 findLoop: mark fdel 2024-06-05 14:14:12 +08:00
xushiwei
519e69a7f8 cl/blocks 2024-06-05 13:48:11 +08:00
xushiwei
3d599f8044 Merge pull request #271 from goplus/dependabot/go_modules/golang.org/x/tools-0.22.0
build(deps): bump golang.org/x/tools from 0.21.0 to 0.22.0
2024-06-05 10:05:43 +08:00
dependabot[bot]
bbf0393008 build(deps): bump golang.org/x/tools from 0.21.0 to 0.22.0
Bumps [golang.org/x/tools](https://github.com/golang/tools) from 0.21.0 to 0.22.0.
- [Release notes](https://github.com/golang/tools/releases)
- [Commits](https://github.com/golang/tools/compare/v0.21.0...v0.22.0)

---
updated-dependencies:
- dependency-name: golang.org/x/tools
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-05 00:52:06 +00:00
xushiwei
f1a4af013a Merge pull request #270 from xushiwei/q
llgo/ssa: NoArgsNoRet
2024-06-04 20:03:49 +08:00
xushiwei
05af9f9810 llgo/ssa: NoArgsNoRet 2024-06-04 20:02:45 +08:00
xushiwei
f68aada9f8 Merge pull request #269 from cpunion/link-args
build: support pkg-config and link args
2024-06-04 19:22:48 +08:00
Li Jie
52d60d9623 build: support pkg-config and link args 2024-06-04 16:35:17 +08:00
xushiwei
2ddf8a44bc Merge pull request #268 from visualfc/cast
cl: fix cl/_testrt/cast
2024-06-04 15:43:53 +08:00
visualfc
281fbc2bee cl: fix cl/_testrt/cast 2024-06-04 15:27:49 +08:00
xushiwei
c174568081 Merge pull request #266 from xushiwei/q
c/sqlite
2024-06-04 12:55:30 +08:00
xushiwei
f4a519c824 c/sqlite 2024-06-04 12:48:49 +08:00
xushiwei
62e4e2f716 Merge pull request #258 from visualfc/invoke
ssa: MakeInterface check abi.KindDirectIface
2024-06-04 10:35:38 +08:00
visualfc
193e6dfc93 ssa: ChangeInterface 2024-06-03 16:03:05 +08:00
visualfc
7596658e6c ssa: MakeInterface check abi.KindDirectIface 2024-06-03 11:47:16 +08:00
xushiwei
73d6bd8400 Merge pull request #264 from xushiwei/q
llgo/ssa getDefer fix: move to function start
2024-06-03 09:58:55 +08:00
xushiwei
922fabd935 llgo/ssa getDefer fix: move to function start 2024-06-03 09:56:39 +08:00
xushiwei
2f3d267439 Merge pull request #263 from xushiwei/q
llgo/ssa: DeferAlways/DeferInCond/DeferInLoop
2024-06-03 08:46:24 +08:00
xushiwei
bdaf7ff30b Merge remote-tracking branch 'gop/main' into q 2024-06-03 08:43:34 +08:00
xushiwei
cfca98512a llgo/ssa: DeferAlways/DeferInCond/DeferInLoop 2024-06-03 02:43:04 +08:00
xushiwei
23d9e86c46 Merge pull request #262 from xushiwei/q
README: defer
2024-06-03 01:43:43 +08:00
xushiwei
6ac6fb0192 README: defer 2024-06-03 01:43:17 +08:00
xushiwei
aaa36b9d3b Merge pull request #261 from xushiwei/q
defer support; llgo/ssa: IfThen/RunDefers/EndBuild
2024-06-03 01:35:33 +08:00
xushiwei
2c799a8ccf deferInit bugfix 2024-06-03 01:32:25 +08:00
xushiwei
56a5a7d72e defer refactor 2024-06-03 01:06:01 +08:00
xushiwei
410f9dd759 llgo/ssa: EndBuild 2024-06-02 21:54:51 +08:00
xushiwei
ba45217756 llgo/ssa: RunDefers 2024-06-02 15:24:42 +08:00
xushiwei
5a5929048d defer support; llgo/ssa: IfThen 2024-06-02 14:29:35 +08:00
xushiwei
bfc3c7fbf9 Merge pull request #257 from xushiwei/q
llgo/ssa: Builtin
2024-06-01 17:33:01 +08:00
xushiwei
e151bd4cd1 TestUserdefExpr 2024-06-01 17:30:37 +08:00
xushiwei
bfe68520f4 logCall: ignore vkBuiltin 2024-06-01 17:26:42 +08:00
xushiwei
45734c0b5c llgo/ssa: Builtin 2024-06-01 17:18:17 +08:00
xushiwei
d689062fc3 Merge pull request #256 from xushiwei/q
README: goroutine
2024-06-01 16:17:24 +08:00
xushiwei
881574ed39 README: goroutine 2024-06-01 16:14:26 +08:00
xushiwei
0bd5aa873b Merge pull request #255 from xushiwei/q
goroutine support; llgo/ssa: memory (malloc/free)
2024-06-01 16:09:31 +08:00
xushiwei
51f3ac2376 _testgo: goroutine 2024-06-01 16:04:35 +08:00
xushiwei
e5802853c0 goroutine support; llgo/ssa: memory (malloc/free) 2024-06-01 15:52:54 +08:00
xushiwei
edb5e36916 Merge pull request #254 from xushiwei/q
c/pthread
2024-05-31 20:07:00 +08:00
xushiwei
33ba94e784 c/pthread 2024-05-31 20:02:59 +08:00
xushiwei
9c969e0026 Merge pull request #252 from visualfc/fnnamed
ssa: fix llvm named in func
2024-05-31 16:26:25 +08:00
visualfc
858622a98d move eface demo to cl/_testrt 2024-05-31 15:53:52 +08:00
visualfc
c673489461 ssa: fix llvm named in func 2024-05-31 14:22:17 +08:00
xushiwei
53a39b6947 Merge pull request #251 from xushiwei/q
llgo/ssa: Do Call/Go/Defer
2024-05-31 12:06:09 +08:00
xushiwei
8f82d86a5d llgo/ssa: Do Call/Go/Defer 2024-05-31 12:01:11 +08:00
xushiwei
f607cd8bad Merge pull request #246 from visualfc/link_go
ssa: update linkname go style
2024-05-31 08:49:19 +08:00
visualfc
5b0965dc53 ssa: update linkname go style 2024-05-31 08:40:38 +08:00
xushiwei
0db78100cd Merge pull request #250 from xushiwei/q
README: interface demo
2024-05-31 08:33:10 +08:00
xushiwei
2196f2259f README: interface demo 2024-05-31 08:31:00 +08:00
xushiwei
55814cbda4 Merge pull request #249 from xushiwei/q
iface; abiTypes
2024-05-31 08:18:45 +08:00
xushiwei
6fb48023f2 TestMakeInterface 2024-05-31 08:16:28 +08:00
xushiwei
76c1800a53 abiTypes: abiTypeInit fix 2024-05-31 08:12:27 +08:00
xushiwei
3b2f01e974 abiTypes 2024-05-31 07:35:22 +08:00
xushiwei
db141e1f3f Merge remote-tracking branch 'gop/main' into q 2024-05-30 16:28:43 +08:00
xushiwei
8ca8824165 Merge pull request #247 from visualfc/slice_array
ssa: fix slice type from *array
2024-05-30 16:28:07 +08:00
visualfc
2e49161415 ssa: fix slice type from *array 2024-05-29 12:34:06 +08:00
xushiwei
e5f38a6fc1 abitype.go 2024-05-28 23:58:37 +08:00
xushiwei
8c105d87c1 runtime: newNamed; llgo/ssa: abiMethodOf 2024-05-28 23:45:32 +08:00
xushiwei
8c2946a41b prog.PointerSize 2024-05-28 17:55:26 +08:00
xushiwei
4f21915f35 Merge pull request #244 from xushiwei/q
TypeSizes: goProgram
2024-05-28 17:47:36 +08:00
xushiwei
585bdb549f build fix: llssa.Initialize before NewProgram 2024-05-28 17:41:50 +08:00
xushiwei
8091c9e737 goProgram: SizeOf/Offsetof fix 2024-05-28 17:32:09 +08:00
xushiwei
fc504e18d2 TypeSizes: goProgram 2024-05-28 16:59:47 +08:00
xushiwei
90c76bb992 Merge pull request #243 from xushiwei/q
github.com/goplus/llgo/internal/packages; prog.TypeSizes: todo
2024-05-28 12:25:38 +08:00
xushiwei
3da1aa3ec6 github.com/goplus/llgo/internal/packages; prog.TypeSizes: todo 2024-05-28 12:22:43 +08:00
xushiwei
0a0d72e016 Merge pull request #242 from xushiwei/q
runtime: rm NewSlice (use b.unsafeSlice); llgo/ssa: Println
2024-05-28 08:09:34 +08:00
xushiwei
550889808a TestUnsafeString 2024-05-28 08:06:58 +08:00
xushiwei
1c1da6433a runtime: rm NewSlice (use b.unsafeSlice); llgo/ssa: Println 2024-05-28 07:47:07 +08:00
xushiwei
963d7958ea Merge pull request #241 from xushiwei/q
AfterInit fix
2024-05-27 15:55:04 +08:00
xushiwei
7031247614 testgo: errors 2024-05-27 15:52:35 +08:00
xushiwei
07738e13ef AfterInit fix 2024-05-27 15:49:25 +08:00
xushiwei
3ab96aa1ee Merge pull request #237 from visualfc/eface
ssa: sliceOf arrayOf
2024-05-27 15:35:44 +08:00
visualfc
bdd3f6ed44 ssa: use DefaultTargetTriple for targetData 2024-05-27 14:54:26 +08:00
visualfc
3328847e27 ssa: sliceOf arrayOf 2024-05-27 14:54:24 +08:00
xushiwei
4a6f072361 Merge pull request #240 from xushiwei/q
llgo/ssa: abiMethodOf; AfterInit bugfix
2024-05-27 14:38:03 +08:00
xushiwei
5bbcdd121a TestFromTestgo 2024-05-27 14:32:49 +08:00
xushiwei
8e89dc8aa9 llgo/ssa: abiMethodOf; AfterInit bugfix 2024-05-27 14:32:23 +08:00
xushiwei
c458b726b4 Merge pull request #239 from xushiwei/q
abi.TypeName
2024-05-27 12:02:11 +08:00
xushiwei
c0a156f347 abi.TypeName 2024-05-27 12:00:01 +08:00
xushiwei
8e12cd6b02 Merge pull request #238 from xushiwei/q
llgo/ssa: Imethod; PrintIface; call intf.method
2024-05-27 11:54:21 +08:00
xushiwei
a6f92b8ff9 TestFromTestgo 2024-05-27 11:28:03 +08:00
xushiwei
cdb1cf1b63 runtime 2024-05-27 11:21:22 +08:00
xushiwei
877b397e04 cl: call intf.method 2024-05-27 11:18:43 +08:00
xushiwei
df13e3ab82 PrintIface 2024-05-27 09:56:42 +08:00
xushiwei
8536fe4987 llgo/ssa: Imethod 2024-05-27 09:46:07 +08:00
xushiwei
eba08334d1 abi InterfaceName/FuncName 2024-05-27 08:50:30 +08:00
xushiwei
165a99fd83 llgo/ssa: unsafeInterface; runtime.PointerTo 2024-05-27 08:07:34 +08:00
xushiwei
6754a9f3da Merge pull request #236 from xushiwei/q
rm unused code (phi, abi.Name)
2024-05-26 18:18:30 +08:00
xushiwei
12b0d81dda rm unused code (phi, abi.Name) 2024-05-26 18:10:17 +08:00
xushiwei
95da7c1c87 Merge pull request #235 from xushiwei/q
runtime: iface; llgo/ssa: phi refactor; remove abi.Name
2024-05-26 18:04:03 +08:00
xushiwei
c903785864 gentests 2024-05-26 17:55:16 +08:00
xushiwei
eae94c5f23 remove abi.Name 2024-05-26 17:53:29 +08:00
xushiwei
ddabfdca3d SetBlockEx: BeforeLast 2024-05-26 16:18:24 +08:00
xushiwei
5cf6a30027 llgo/ssa: phi refactor 2024-05-26 14:58:26 +08:00
xushiwei
91c9b4e168 llgo/ssa: pkgName 2024-05-26 09:34:43 +08:00
xushiwei
914a0c60b0 runtime: iface 2024-05-26 08:59:10 +08:00
xushiwei
773fb7c75b Merge pull request #233 from xushiwei/q
runtime: Func, Method, Imethod
2024-05-25 23:08:50 +08:00
xushiwei
afe20ffe92 runtime: Func, Method, Imethod 2024-05-25 22:52:48 +08:00
xushiwei
0b72c0b25c Merge pull request #232 from xushiwei/q
NameOff => Name; TypeOff => *Type; TextOff => Text
2024-05-25 22:00:24 +08:00
xushiwei
f06899303c gblarray 2024-05-25 21:47:02 +08:00
xushiwei
b121d1730b NameOff => Name; TypeOff => *Type; TextOff => Text 2024-05-25 21:43:59 +08:00
xushiwei
5d570b5140 Merge pull request #231 from xushiwei/q
iface
2024-05-25 12:00:43 +08:00
xushiwei
980a537930 iface: todo 2024-05-25 11:57:09 +08:00
xushiwei
d700c78f6c Merge pull request #230 from xushiwei/q
Index: mark unreachable
2024-05-25 08:43:16 +08:00
xushiwei
c7abc03fee Index: mark unreachable 2024-05-25 08:40:04 +08:00
xushiwei
9f243563b9 Merge pull request #229 from xushiwei/q
TypeAssert bugfix; abi: support named
2024-05-25 08:23:54 +08:00
xushiwei
5eac8d860a abiType fix 2024-05-25 08:20:09 +08:00
xushiwei
1c8f860b6e gentests 2024-05-25 07:47:00 +08:00
xushiwei
1226308f3d TypeAssert bugfix; testcase struczero 2024-05-25 07:43:24 +08:00
xushiwei
40dd25c122 abi: support named 2024-05-25 01:11:35 +08:00
xushiwei
fa71885cf9 Merge pull request #228 from xushiwei/q
test extractVal
2024-05-24 23:12:17 +08:00
xushiwei
2a7be0eabb Eface 2024-05-24 23:09:38 +08:00
xushiwei
ab7c828cfa InterfaceData 2024-05-24 23:06:54 +08:00
xushiwei
e6f8cfb16c test extractVal 2024-05-24 23:06:11 +08:00
xushiwei
0283a42273 Merge pull request #227 from xushiwei/q
abiType: support pointer
2024-05-24 22:58:16 +08:00
xushiwei
d1a6d29fdd x 2024-05-24 22:55:21 +08:00
xushiwei
ee15aa888f merge upstream 2024-05-24 22:50:33 +08:00
xushiwei
3cc975813d abiType: support pointer 2024-05-24 22:47:45 +08:00
xushiwei
f226177bca Merge pull request #224 from visualfc/utf8
ssa: string range; string convert bytes/rune; op eql/less
2024-05-24 11:06:12 +08:00
xushiwei
995478adac Merge pull request #225 from visualfc/typed
ssa: fix type toNamed
2024-05-24 10:55:15 +08:00
visualfc
62915d5af5 ssa: string range; string convert bytes/rune; op eql/less 2024-05-24 10:55:13 +08:00
visualfc
825e2eec51 ssa: fix type toNamed 2024-05-24 10:39:28 +08:00
xushiwei
b7f2bae2ef Merge pull request #226 from xushiwei/q
refactor: eface (any)
2024-05-24 10:34:10 +08:00
xushiwei
9b4701fed7 runtime.Struct: temp disable abi.NewName 2024-05-24 10:30:56 +08:00
xushiwei
937e55eb46 TestFromTestgo 2024-05-24 10:01:41 +08:00
xushiwei
7c003e9e7a TestMakeInterface 2024-05-24 09:52:46 +08:00
xushiwei
f0f973eb00 TestAbi 2024-05-24 09:50:51 +08:00
xushiwei
f399dd3498 TestAny 2024-05-24 09:46:29 +08:00
xushiwei
d2e5bb99ef gentests; MakeBody fix 2024-05-24 09:41:40 +08:00
xushiwei
77eeea95c7 valFromData BitCast bugfix 2024-05-24 09:30:16 +08:00
xushiwei
056ad51c24 llgo/ssa.Phi: AddIncoming fix 2024-05-24 09:20:58 +08:00
xushiwei
97e38255c6 llgo/ssa.Slice optimize speed 2024-05-24 08:23:01 +08:00
xushiwei
88004cac76 abiBasic fix 2024-05-24 07:51:41 +08:00
xushiwei
1162a5f916 AfterInit: init 2024-05-24 03:22:10 +08:00
xushiwei
418c37dd52 AfterInit bugfix: add param Builder 2024-05-24 02:42:10 +08:00
xushiwei
b66827998d llgo/ssa: AfterInit 2024-05-24 02:09:57 +08:00
xushiwei
b195656900 llgo/ssa: MakeInterface 2024-05-24 01:45:41 +08:00
xushiwei
2628ee98f3 llgo/ssa: valFromData, buildVal 2024-05-24 01:18:18 +08:00
xushiwei
176c0b2d36 abi.KindOf; llgo/ssa: valFromData 2024-05-24 00:36:51 +08:00
xushiwei
4986592dd7 TypeAssert refactor 2024-05-23 01:34:48 +08:00
xushiwei
a4c4324ba3 merge Field/Extract; prog.Tuple/Zero; TypeAssert refactor 2024-05-23 01:10:13 +08:00
xushiwei
6442ab2f20 llgo/ssa: unsafeEface 2024-05-22 13:47:21 +08:00
xushiwei
c19786bdfb llgo/ssa: AfterInit/SliceLit/InterfaceData, unsafe.Slice; ssa/abi: Basic/Struct 2024-05-22 10:07:21 +08:00
xushiwei
1b498128ef Merge pull request #222 from xushiwei/q
remove runtime.NewString
2024-05-21 01:45:01 +08:00
xushiwei
556939139b x 2024-05-21 01:42:49 +08:00
xushiwei
d5dfd37385 merge upstream 2024-05-21 01:32:06 +08:00
xushiwei
508b4d648d remove runtime.NewString 2024-05-21 01:30:15 +08:00
xushiwei
163813145d Merge pull request #221 from visualfc/printf
runtime: PrintFloat
2024-05-21 00:21:25 +08:00
visualfc
5baa1aaa2a runtime: PrintFloat 2024-05-20 22:50:37 +08:00
xushiwei
59b7d5a9f4 Merge pull request #220 from xushiwei/q
runtime: print/println
2024-05-20 21:48:42 +08:00
xushiwei
bbd1187a9c runtime: print/println 2024-05-20 21:32:10 +08:00
xushiwei
3f65ae39af Merge pull request #219 from xushiwei/q
runtime: Struct
2024-05-20 13:53:52 +08:00
xushiwei
8bac9853fa merge upstream 2024-05-20 13:51:50 +08:00
xushiwei
301a6736ac Merge pull request #218 from visualfc/println
ssa: fix builtin print
2024-05-20 13:50:12 +08:00
xushiwei
55ee21421e runtime: Struct 2024-05-20 13:47:32 +08:00
visualfc
1a4ca389cd ssa: fix builtin print 2024-05-20 12:43:37 +08:00
xushiwei
27cfeefef1 Merge pull request #217 from xushiwei/q
abi.Name; runtime: MakeAnyInt => MakeAnyIntptr; llgo/ssa: AllocU; bui…
2024-05-20 10:25:56 +08:00
xushiwei
cc357b2b7d llgo/ssa: TestMakeInterface (32bits); ssa/ssatest 2024-05-20 10:23:24 +08:00
xushiwei
6335ac6a47 runtime.MakeAnyIntptr 2024-05-20 08:51:27 +08:00
xushiwei
e61ebb4eb9 abi.Name; runtime: MakeAnyInt => MakeAnyIntptr; llgo/ssa: AllocU; builtin unsafe.String; MakeInterface; prog.PointerSize 2024-05-20 08:46:39 +08:00
xushiwei
a6b8edde62 Merge pull request #216 from goplus/dependabot/go_modules/github.com/goplus/llvm-0.7.6
build(deps): bump github.com/goplus/llvm from 0.7.6-0.20240519084034-a108b65b00c7 to 0.7.6
2024-05-19 22:49:27 +08:00
dependabot[bot]
a4450db277 build(deps): bump github.com/goplus/llvm
Bumps [github.com/goplus/llvm](https://github.com/goplus/llvm) from 0.7.6-0.20240519084034-a108b65b00c7 to 0.7.6.
- [Release notes](https://github.com/goplus/llvm/releases)
- [Commits](https://github.com/goplus/llvm/commits/v0.7.6)

---
updated-dependencies:
- dependency-name: github.com/goplus/llvm
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-19 14:46:48 +00:00
xushiwei
b7e38e95f0 Merge pull request #215 from visualfc/copy
ssa: builtin copy
2024-05-19 22:45:57 +08:00
visualfc
cda572fd59 ssa: builtin copy 2024-05-19 19:33:41 +08:00
xushiwei
af4a0ffa21 Merge pull request #214 from xushiwei/q
update llvm
2024-05-19 16:48:22 +08:00
xushiwei
f786c86f77 x 2024-05-19 16:46:05 +08:00
xushiwei
55365b1d17 update llvm 2024-05-19 16:42:22 +08:00
xushiwei
d605c850b7 Merge pull request #213 from xushiwei/q
llgo/ssa: Builder add Pkg
2024-05-19 13:03:28 +08:00
xushiwei
5bb33ce420 Merge pull request #212 from visualfc/doc
doc: update Go packages support
2024-05-19 13:01:34 +08:00
xushiwei
39268c681f llgo/ssa: Builder add Pkg 2024-05-19 13:00:58 +08:00
visualfc
a2b82c18d7 doc 2024-05-19 12:38:22 +08:00
xushiwei
83a9ab44bd Merge pull request #211 from xushiwei/q
llgo/ssa: {datstruct, interface}.go
2024-05-19 12:32:24 +08:00
xushiwei
3bf3a276de MakeInterface: todo 2024-05-19 12:31:59 +08:00
xushiwei
9a7fbaee00 llgo/ssa: {datstruct, interface}.go 2024-05-19 12:24:42 +08:00
xushiwei
6ed01f24be Merge pull request #210 from xushiwei/q
README: matplotlib; llgo/ssa: pkg.PyLoadModSyms (source code stablility)
2024-05-19 07:58:53 +08:00
xushiwei
04428c5aed llgo/ssa: pkg.PyLoadModSyms (source code stablility) 2024-05-19 07:57:12 +08:00
xushiwei
ba8e48be38 README: matplotlib 2024-05-19 07:28:56 +08:00
xushiwei
bc2613c42b Merge pull request #209 from xushiwei/q
py/matplotlib, py/matplotlib/pyplot
2024-05-19 00:52:26 +08:00
xushiwei
ac71a45b3b py/matplotlib, py/matplotlib/pyplot 2024-05-19 00:50:09 +08:00
xushiwei
30425a194e Merge pull request #208 from xushiwei/q
cl: funcOf fix: call pyfunc multiple times
2024-05-19 00:17:22 +08:00
xushiwei
63e678928b cl: funcOf fix: call pyfunc multiple times 2024-05-19 00:15:23 +08:00
xushiwei
e32896137e Merge pull request #207 from xushiwei/q
py/std done; demo: max; llgen.Gen fix: use imp
2024-05-18 23:36:30 +08:00
xushiwei
0787909045 llgen.Gen fix: use imp 2024-05-18 23:34:37 +08:00
xushiwei
1acfb53c4c py/std done; demo: max 2024-05-18 23:14:56 +08:00
xushiwei
46c7e53ca1 Merge pull request #206 from xushiwei/q
py/std: builtins; pydemo: print, tensor
2024-05-18 22:33:26 +08:00
xushiwei
7228709616 py/std: builtins; pydemo: print, tensor 2024-05-18 22:30:35 +08:00
xushiwei
2ca5d39f7d Merge pull request #205 from xushiwei/q
README: pysigfetch
2024-05-18 20:08:12 +08:00
xushiwei
08583463be README: pysigfetch 2024-05-18 20:07:41 +08:00
xushiwei
84d3f6ac9c Merge pull request #204 from goplus/dependabot/go_modules/github.com/goplus/gogen-1.16.0
build(deps): bump github.com/goplus/gogen from 1.15.2 to 1.16.0
2024-05-18 19:54:41 +08:00
xushiwei
0f8fc7bdee Merge pull request #203 from xushiwei/q
remove c2go support
2024-05-18 19:54:15 +08:00
dependabot[bot]
cc0ae5e229 build(deps): bump github.com/goplus/gogen from 1.15.2 to 1.16.0
Bumps [github.com/goplus/gogen](https://github.com/goplus/gogen) from 1.15.2 to 1.16.0.
- [Release notes](https://github.com/goplus/gogen/releases)
- [Commits](https://github.com/goplus/gogen/compare/v1.15.2...v1.16.0)

---
updated-dependencies:
- dependency-name: github.com/goplus/gogen
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-18 11:52:45 +00:00
xushiwei
5750447826 remove c2go support 2024-05-18 19:51:39 +08:00
xushiwei
908f0047f8 Merge pull request #199 from visualfc/index
ssa: checkIndex for index/indexAddr
2024-05-18 16:48:26 +08:00
xushiwei
e533903cee Merge pull request #202 from xushiwei/q
py/torch; llpyg: use pysigfetch (by goplus/hdq)
2024-05-18 16:46:56 +08:00
xushiwei
1be8052caa llpyg: fix pysigfetch error handling 2024-05-18 16:45:02 +08:00
xushiwei
668ce4bd2d py/torch; llpyg: use pysigfetch (by goplus/hdq) 2024-05-18 16:03:49 +08:00
visualfc
e7fd038493 ssa: checkIndex for index/indexAddr 2024-05-18 11:08:39 +08:00
visualfc
03edb3bbbe runtime: assertRuntimeError assertNegativeShift assertIndexRange 2024-05-18 10:16:57 +08:00
xushiwei
307a1a295a Merge pull request #201 from xushiwei/q
mv x/ => c/
2024-05-17 22:43:39 +08:00
xushiwei
446df58e92 TestSqlite 2024-05-17 22:41:39 +08:00
xushiwei
1ad5caba93 cl: _testlibc/sqlite fix 2024-05-17 22:38:32 +08:00
xushiwei
9eddc0e4f0 submodule c/llama2/llama2.c 2024-05-17 22:34:34 +08:00
xushiwei
087ba0d81d mv x/ => c/ 2024-05-17 22:33:57 +08:00
xushiwei
3c5cd8f38f Merge pull request #200 from xushiwei/q
py/torch
2024-05-17 21:50:00 +08:00
xushiwei
367743530f py/torch 2024-05-17 21:46:38 +08:00
xushiwei
7370ce2793 Merge pull request #198 from xushiwei/q
Cstr (for Go+)
2024-05-17 21:19:51 +08:00
xushiwei
ba61b42ef5 Cstr (for Go+) 2024-05-17 21:14:41 +08:00
xushiwei
f7e362dd90 Merge pull request #197 from visualfc/global_array
ssa: fix global array
2024-05-17 19:38:51 +08:00
visualfc
66da072fd7 ssa: fix global array 2024-05-17 19:30:56 +08:00
xushiwei
d763534208 Merge pull request #196 from xushiwei/q
build: checkFlag fix (for Go+)
2024-05-17 13:57:31 +08:00
xushiwei
ad05898543 build: checkFlag fix (for Go+) 2024-05-17 13:54:00 +08:00
xushiwei
f930f7878d Merge pull request #195 from xushiwei/q
cl: out.ll regen
2024-05-17 11:16:58 +08:00
xushiwei
d6a75c411b _testpy/pi 2024-05-17 11:14:19 +08:00
xushiwei
568a71e0dc cl: out.ll regen 2024-05-17 11:11:22 +08:00
xushiwei
c92e9aac2c Merge pull request #189 from tsingbx/main_return_0
Main return 0
2024-05-17 11:09:20 +08:00
xushiwei
3012c4a3ff Merge branch 'main' into main_return_0 2024-05-17 11:05:09 +08:00
xushiwei
ebe338ac9a Merge pull request #193 from visualfc/type
ssa: type uint/byte/int32/uint32/int64/uint64
2024-05-17 11:04:12 +08:00
tsingbx
a45523a48c run gentests 2024-05-17 09:48:21 +08:00
tsingbx
5bfeea67d7 change main return to C int 2024-05-17 09:31:48 +08:00
visualfc
f35f15d36c ssa: type uint/byte/int32/uint32/int64/uint64 2024-05-17 09:28:57 +08:00
tsingbx
057af792df main return type chang to C int 2024-05-17 09:06:53 +08:00
xushiwei
41a850e7b2 Merge pull request #194 from xushiwei/q
py/{numpy, pandas}
2024-05-17 09:04:56 +08:00
xushiwei
6be70390a6 py/{numpy, pandas} 2024-05-17 09:01:36 +08:00
xushiwei
1cfe3ee9f8 Merge pull request #192 from xushiwei/q
pysig.Parse; py/pandas
2024-05-17 05:30:18 +08:00
xushiwei
c1927c985a pysig.Parse; py/pandas 2024-05-17 05:25:13 +08:00
xushiwei
309f42994b Merge pull request #191 from visualfc/castint
ssa: fix castInt
2024-05-16 21:20:23 +08:00
visualfc
feb28ecace ssa: fix castInt 2024-05-16 20:43:16 +08:00
xushiwei
00f74b7f0a Merge pull request #190 from xushiwei/q
build fix: -L dir
2024-05-16 18:42:45 +08:00
xushiwei
fcc0e1776b build fix: -L dir 2024-05-16 18:40:49 +08:00
xushiwei
a5ec755c28 Merge pull request #188 from visualfc/shift_check
ssa: binop check shl/shr
2024-05-16 18:04:25 +08:00
visualfc
98945926ca ssa: binop check shl/shr 2024-05-16 16:27:49 +08:00
tsingbx
d3e3767df4 Merge branch 'main' of https://github.com/goplus/llgo into main_return_0 2024-05-16 15:35:05 +08:00
tsingbx
de1281bb66 Add return value to llvm's ir main function definition 2024-05-16 15:27:14 +08:00
xushiwei
07e55c3d89 Merge pull request #187 from visualfc/shift
ssa: binop fix shl/shr size
2024-05-16 10:48:03 +08:00
visualfc
6e4ebeddf4 ssa: binop fix shl/shr size 2024-05-16 10:20:02 +08:00
xushiwei
2b9fb88bf0 Merge pull request #183 from visualfc/print
ssa: builtin print/println
2024-05-16 09:40:14 +08:00
visualfc
022965b9c7 ssa: builtin print/println 2024-05-16 09:33:25 +08:00
xushiwei
6278718a24 Merge pull request #186 from xushiwei/q
README: Key modules
2024-05-16 07:08:46 +08:00
xushiwei
1675daafcd Key modules 2024-05-16 07:08:10 +08:00
xushiwei
ed5b6edf52 Merge pull request #185 from xushiwei/q
README: Development tools
2024-05-16 06:34:55 +08:00
xushiwei
638caa355c Development tools 2024-05-16 06:34:18 +08:00
xushiwei
78b2f9b455 Update README.md 2024-05-16 01:08:21 +08:00
1312 changed files with 293156 additions and 12763 deletions

48
.github/actions/setup-deps/action.yml vendored Normal file
View File

@@ -0,0 +1,48 @@
name: "Setup LLGO Dependencies"
description: "Install all required dependencies for LLGO"
inputs:
llvm-version:
description: "LLVM version to install"
required: true
default: "18"
runs:
using: "composite"
steps:
- name: Install macOS dependencies
if: runner.os == 'macOS'
shell: bash
run: |
brew update
brew install llvm@${{inputs.llvm-version}} bdw-gc openssl libffi libuv
brew link --force libffi
echo "$(brew --prefix llvm@${{inputs.llvm-version}})/bin" >> $GITHUB_PATH
# Install optional deps for demos.
#
# NOTE: Keep this list updated as new deps are introduced.
opt_deps=(
cjson # for github.com/goplus/llgo/c/cjson
sqlite # for github.com/goplus/llgo/c/sqlite
python@3.12 # for github.com/goplus/llgo/py
)
brew install "${opt_deps[@]}"
- name: Install Ubuntu dependencies
if: runner.os == 'Linux'
shell: bash
run: |
echo "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-${{inputs.llvm-version}} main" | sudo tee /etc/apt/sources.list.d/llvm.list
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo apt-get update
sudo apt-get install -y llvm-${{inputs.llvm-version}}-dev clang-${{inputs.llvm-version}} libclang-${{inputs.llvm-version}}-dev lld-${{inputs.llvm-version}} pkg-config libgc-dev libssl-dev zlib1g-dev libffi-dev libcjson-dev libunwind-dev libuv1-dev
echo "/usr/lib/llvm-${{inputs.llvm-version}}/bin" >> $GITHUB_PATH
# Install optional deps for demos.
#
# NOTE: Keep this list updated as new deps are introduced.
opt_deps=(
libcjson-dev # for github.com/goplus/llgo/c/cjson
libsqlite3-dev # for github.com/goplus/llgo/c/sqlite
python3.12-dev # for github.com/goplus/llgo/py
)
sudo apt-get install -y "${opt_deps[@]}"

51
.github/actions/setup-go/action.yml vendored Normal file
View File

@@ -0,0 +1,51 @@
name: "Setup Go"
description: "Setup Go environment by downloading and extracting from go.dev"
inputs:
go-version:
description: "The Go version to download and use"
required: true
runs:
using: "composite"
steps:
- name: Download and setup Go
shell: bash
run: |
set -e
GO_VERSION="${{ inputs.go-version }}"
GO_VERSION="${GO_VERSION#go}" # Remove 'go' prefix if present
# Determine OS and architecture
if [[ "$RUNNER_OS" == "macOS" ]]; then
OS="darwin"
ARCH="arm64"
else
OS="linux"
ARCH="amd64"
fi
DOWNLOAD_URL="https://go.dev/dl/go${GO_VERSION}.${OS}-${ARCH}.tar.gz"
echo "Downloading Go from: ${DOWNLOAD_URL}"
# Create temporary directory for download
TMP_DIR=$(mktemp -d)
curl -L "${DOWNLOAD_URL}" -o "${TMP_DIR}/go.tar.gz"
# Remove existing Go installation if any
sudo rm -rf /usr/local/go
# Extract to /usr/local
sudo tar -C /usr/local -xzf "${TMP_DIR}/go.tar.gz"
# Clean up
rm -rf "${TMP_DIR}"
# Add to PATH
echo "/usr/local/go/bin" >> $GITHUB_PATH
echo "$HOME/go/bin" >> $GITHUB_PATH
- name: Verify Go installation
shell: bash
run: |
# Verify installation
echo "Verifying Go installation..."
go version

View File

@@ -0,0 +1,35 @@
name: 'Test Hello World'
description: 'Test Hello World with specific Go and module versions'
inputs:
go-version:
description: 'Go version being tested'
required: true
mod-version:
description: 'Go module version to use'
required: true
runs:
using: "composite"
steps:
- name: Test Hello World
shell: bash
run: |
echo "Testing with Go ${{ inputs.go-version }} and go.mod ${{ inputs.mod-version }}"
mkdir -p _test/helloworld && cd _test/helloworld
cat > go.mod << 'EOL'
module hello
go ${{ inputs.mod-version }}
EOL
cat > main.go << 'EOL'
package main
import (
"fmt"
"github.com/goplus/llgo/c"
)
func main() {
fmt.Println("Hello, LLGo!")
println("Hello, LLGo!")
c.Printf(c.Str("Hello, LLGo!\n"))
}
EOL
go mod tidy
llgo run .

9
.github/codecov.yml vendored Normal file
View File

@@ -0,0 +1,9 @@
coverage:
ignore:
- "compiler/chore"
- "compiler/cmd/internal"
- "compiler/internal/build"
- "compiler/internal/llgen"
- "compiler/internal/mockable"
- "compiler/internal/packages"
- "compiler/internal/typepatch"

View File

@@ -17,3 +17,13 @@ updates:
directory: "/" # Location of package manifests
schedule:
interval: "daily"
- package-ecosystem: "gomod" # See documentation for possible values
directory: "/compiler/" # Location of package manifests
schedule:
interval: "daily"
- package-ecosystem: "gomod" # See documentation for possible values
directory: "/runtime/" # Location of package manifests
schedule:
interval: "daily"

165
.github/workflows/doc.yml vendored Normal file
View File

@@ -0,0 +1,165 @@
name: Docs
on:
push:
branches: [ "**" ]
pull_request:
branches: [ "**" ]
jobs:
doc_verify:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install embedme
run: npm install -g embedme
- name: Verify README.md embedded code
run: embedme --verify README.md
- name: Link Checker
id: lychee
uses: lycheeverse/lychee-action@v2
with:
args: README.md
remote_install:
strategy:
matrix:
os:
- macos-latest
- ubuntu-24.04
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: ./.github/actions/setup-go
with:
go-version: '1.23.6'
- name: Install dependencies on macOS
if: startsWith(matrix.os, 'macos')
run: |
set -e
set -x
source doc/_readme/scripts/install_macos.sh
- name: Install dependencies on Ubuntu
if: startsWith(matrix.os, 'ubuntu')
run: |
set -e
set -x
source doc/_readme/scripts/install_ubuntu.sh
- name: Test doc code blocks
run: |
set -e
set -x
source doc/_readme/scripts/run.sh
local_install:
strategy:
matrix:
os:
- macos-latest
- ubuntu-24.04
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.23'
- name: Install dependencies on macOS
if: startsWith(matrix.os, 'macos')
run: |
set -e
set -x
source doc/_readme/scripts/install_macos.sh
- name: Install dependencies on Ubuntu
if: startsWith(matrix.os, 'ubuntu')
run: |
set -e
set -x
source doc/_readme/scripts/install_ubuntu.sh
- name: Install llgo with tools
run: |
set -e
set -x
git() {
if [ "$1" = "clone" ]; then
# do nothing because we already have the branch
cd ..
else
command git "$@"
fi
}
source doc/_readme/scripts/install_llgo.sh
echo "LLGO_ROOT=$GITHUB_WORKSPACE" >> $GITHUB_ENV
- name: Test doc code blocks
run: |
set -e
set -x
source doc/_readme/scripts/run.sh
local_install_full:
strategy:
matrix:
os:
- macos-latest
- ubuntu-24.04
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.23'
- name: Install dependencies on macOS
if: startsWith(matrix.os, 'macos')
run: |
set -e
set -x
source doc/_readme/scripts/install_macos.sh
- name: Install dependencies on Ubuntu
if: startsWith(matrix.os, 'ubuntu')
run: |
set -e
set -x
source doc/_readme/scripts/install_ubuntu.sh
- name: Install llgo with tools
run: |
set -e
set -x
git() {
if [ "$1" = "clone" ]; then
# do nothing because we already have the branch
cd ..
else
command git "$@"
fi
}
source doc/_readme/scripts/install_full.sh
echo "LLGO_ROOT=$GITHUB_WORKSPACE" >> $GITHUB_ENV
- name: Test doc code blocks
run: |
set -e
set -x
source doc/_readme/scripts/run.sh

30
.github/workflows/fmt.yml vendored Normal file
View File

@@ -0,0 +1,30 @@
name: Format Check
on:
push:
branches: [ "**" ]
pull_request:
branches: [ "**" ]
jobs:
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: ./.github/actions/setup-go
with:
go-version: '1.24.0'
- name: Check formatting
run: |
for dir in . compiler runtime; do
pushd $dir
if [ -n "$(go fmt ./...)" ]; then
echo "Some files are not properly formatted. Please run 'go fmt ./...'"
exit 1
fi
popd
done
echo "All files are properly formatted."

View File

@@ -5,65 +5,53 @@ name: Go
on:
push:
branches: [ "main" ]
branches: [ "**" ]
pull_request:
branches: [ "main" ]
branches: [ "**" ]
jobs:
test-macos:
runs-on: macos-latest
test:
continue-on-error: true
strategy:
matrix:
llvm: [17]
os:
- macos-latest
- ubuntu-24.04
llvm: [18]
runs-on: ${{matrix.os}}
defaults:
run:
working-directory: compiler
steps:
- uses: actions/checkout@v4
- name: Update Homebrew
if: matrix.llvm == 17 # needed as long as LLVM 17 is still fresh
run: brew update
- name: Install LLVM ${{ matrix.llvm }}
run: HOMEBREW_NO_AUTO_UPDATE=1 brew install llvm@${{ matrix.llvm }}
- name: Set up Go
uses: actions/setup-go@v5
- name: Install dependencies
uses: ./.github/actions/setup-deps
with:
go-version: '1.20'
llvm-version: ${{matrix.llvm}}
- name: Clang information
run: |
echo $PATH
which clang
clang --version
- name: Set up Go
uses: ./.github/actions/setup-go
with:
go-version: '1.24.0'
- name: Build
run: go build -v ./...
- name: Test
run: go test -v ./...
if: ${{!startsWith(matrix.os, 'macos')}}
run: go test ./...
test-linux:
runs-on: ubuntu-20.04
strategy:
matrix:
llvm: [17]
steps:
- uses: actions/checkout@v4
- name: Test with coverage
if: startsWith(matrix.os, 'macos')
run: go test -coverprofile="coverage.txt" -covermode=atomic ./...
- name: Install LLVM ${{ matrix.llvm }}
run: |
echo 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-${{ matrix.llvm }} main' | sudo tee /etc/apt/sources.list.d/llvm.list
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo apt-get update
sudo apt-get install --no-install-recommends llvm-${{ matrix.llvm }}-dev
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.20'
- name: Build
run: go build -v ./...
- name: Test
run: go test -v -coverprofile="coverage.txt" -covermode=atomic ./...
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: goplus/llgo
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{secrets.CODECOV_TOKEN}}

216
.github/workflows/llgo.yml vendored Normal file
View File

@@ -0,0 +1,216 @@
# This workflow will build a golang project
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go
name: LLGo
on:
push:
branches: [ "**" ]
pull_request:
branches: [ "**" ]
jobs:
llgo:
continue-on-error: true
strategy:
matrix:
os:
- macos-latest
- ubuntu-24.04
llvm: [18]
go: ['1.20.14', '1.21.13', '1.22.12', '1.23.6', '1.24.0']
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v4
- name: Install dependencies
uses: ./.github/actions/setup-deps
with:
llvm-version: ${{matrix.llvm}}
- name: Install further optional dependencies for demos
run: |
wget -P ./_demo/llama2-c https://huggingface.co/karpathy/tinyllamas/resolve/main/stories15M.bin
py_deps=(
numpy # for github.com/goplus/llgo/py/numpy
torch # for github.com/goplus/llgo/py/torch
)
pip3.12 install --break-system-packages "${py_deps[@]}"
- name: Set up Go for build
uses: ./.github/actions/setup-go
with:
go-version: '1.24.0'
- name: Install
working-directory: compiler
run: |
go install ./...
echo "LLGO_ROOT=$GITHUB_WORKSPACE" >> $GITHUB_ENV
- name: Set up Go for testing
uses: actions/setup-go@v5
with:
go-version: ${{matrix.go}}
- name: Verify Go version
run: |
go_version=$(go version | cut -d' ' -f3 | sed 's/go//')
if [[ "$go_version" != "${{matrix.go}}"* ]]; then
echo "Expected Go version ${{matrix.go}}, but got $go_version"
exit 1
fi
echo "Using Go version: $go_version"
- name: _xtool build tests
run: |
cd _xtool
llgo build -v ./...
- name: LLGO tests
if: ${{!startsWith(matrix.os, 'ubuntu')}}
run: |
echo "Test result on ${{matrix.os}} with LLVM ${{matrix.llvm}}" > result.md
bash ./.github/workflows/test_llgo.sh
- name: Test demos
run: |
# TODO(lijie): force python3-embed to be linked with python-3.12-embed
# Currently, python3-embed is python-3.13-embed, doesn't work with pytorch
# Will remove this after pytorch is fixed.
pcdir=$HOME/pc
mkdir -p $pcdir
libdir=$(pkg-config --variable=libdir python-3.12-embed)
echo "libdir: $libdir"
ln -s $libdir/pkgconfig/python-3.12-embed.pc $pcdir/python3-embed.pc
export PKG_CONFIG_PATH=$pcdir
bash .github/workflows/test_demo.sh
- name: Show test result
run: cat result.md
- name: LLDB tests
if: ${{startsWith(matrix.os, 'macos')}}
working-directory: compiler
run: |
echo "Test lldb with llgo plugin on ${{matrix.os}} with LLVM ${{matrix.llvm}}"
bash _lldb/runtest.sh -v
test:
continue-on-error: true
strategy:
matrix:
os:
- macos-latest
- ubuntu-24.04
llvm: [18]
go: ['1.24.0']
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v4
- name: Install dependencies
uses: ./.github/actions/setup-deps
with:
llvm-version: ${{matrix.llvm}}
- name: Install further optional dependencies for demos
run: |
wget -P ./_demo/llama2-c https://huggingface.co/karpathy/tinyllamas/resolve/main/stories15M.bin
py_deps=(
numpy # for github.com/goplus/llgo/py/numpy
torch # for github.com/goplus/llgo/py/torch
)
pip3.12 install --break-system-packages "${py_deps[@]}"
- name: Set up Go for build
uses: ./.github/actions/setup-go
with:
go-version: '1.24.0'
- name: Install
working-directory: compiler
run: |
go install ./...
echo "LLGO_ROOT=$GITHUB_WORKSPACE" >> $GITHUB_ENV
- name: Set up Go for testing
uses: actions/setup-go@v5
with:
go-version: ${{matrix.go}}
- name: Verify Go version
run: |
go_version=$(go version | cut -d' ' -f3 | sed 's/go//')
if [[ "$go_version" != "${{matrix.go}}"* ]]; then
echo "Expected Go version ${{matrix.go}}, but got $go_version"
exit 1
fi
echo "Using Go version: $go_version"
- name: run llgo test
run: |
cd _demo
llgo test -v ./runtest
hello:
continue-on-error: true
strategy:
matrix:
os: [ubuntu-24.04, macos-latest]
llvm: [18]
go: ['1.20.14', '1.21.13', '1.22.12', '1.23.6', '1.24.0']
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v4
- name: Install dependencies
uses: ./.github/actions/setup-deps
with:
llvm-version: ${{matrix.llvm}}
- name: Set up Go 1.23 for building llgo
uses: ./.github/actions/setup-go
with:
go-version: '1.24.0'
- name: Install llgo
working-directory: compiler
run: |
go install ./...
echo "LLGO_ROOT=$GITHUB_WORKSPACE" >> $GITHUB_ENV
- name: Set up Go for testing
uses: ./.github/actions/setup-go
with:
go-version: ${{matrix.go}}
- name: Test Hello World with go.mod 1.20
if: startsWith(matrix.go, '1.20') || startsWith(matrix.go, '1.21') || startsWith(matrix.go, '1.22') || startsWith(matrix.go, '1.23') || startsWith(matrix.go, '1.24')
uses: ./.github/actions/test-helloworld
with:
go-version: ${{matrix.go}}
mod-version: '1.20'
- name: Test Hello World with go.mod 1.21
if: startsWith(matrix.go, '1.21') || startsWith(matrix.go, '1.22') || startsWith(matrix.go, '1.23') || startsWith(matrix.go, '1.24')
uses: ./.github/actions/test-helloworld
with:
go-version: ${{matrix.go}}
mod-version: '1.21'
- name: Test Hello World with go.mod 1.22
if: startsWith(matrix.go, '1.22') || startsWith(matrix.go, '1.23') || startsWith(matrix.go, '1.24')
uses: ./.github/actions/test-helloworld
with:
go-version: ${{matrix.go}}
mod-version: '1.22'
- name: Test Hello World with go.mod 1.23
if: startsWith(matrix.go, '1.23') || startsWith(matrix.go, '1.24')
uses: ./.github/actions/test-helloworld
with:
go-version: ${{matrix.go}}
mod-version: '1.23'
- name: Test Hello World with go.mod 1.24
if: startsWith(matrix.go, '1.24')
uses: ./.github/actions/test-helloworld
with:
go-version: ${{matrix.go}}
mod-version: '1.24'

40
.github/workflows/populate_darwin_sysroot.sh vendored Executable file
View File

@@ -0,0 +1,40 @@
#!/bin/bash
set -e
TMPDIR="$(mktemp -d)"
export TMPDIR
trap 'rm -rf "${TMPDIR}"' EXIT
DARWIN_AMD64_LLVM_PREFIX=.sysroot/darwin/amd64/usr/local/opt/llvm@18
DARWIN_ARM64_LLVM_PREFIX=.sysroot/darwin/arm64/opt/homebrew/opt/llvm@18
mkdir -p "${DARWIN_AMD64_LLVM_PREFIX}" "${DARWIN_ARM64_LLVM_PREFIX}"
BREW_LLVM_FORMULA_JSON="$(mktemp)"
curl -fsSL https://formulae.brew.sh/api/formula/llvm@18.json > "${BREW_LLVM_FORMULA_JSON}"
BREW_LLVM_AMD64_BOTTLE_URL=$(jq -r '.bottle.stable.files.sonoma.url' "${BREW_LLVM_FORMULA_JSON}")
BREW_LLVM_ARM64_BOTTLE_URL=$(jq -r '.bottle.stable.files.arm64_sonoma.url' "${BREW_LLVM_FORMULA_JSON}")
curl -fsSL -H "Authorization: Bearer QQ==" "${BREW_LLVM_AMD64_BOTTLE_URL}" | tar -xzf - --strip-components=2 -C "${DARWIN_AMD64_LLVM_PREFIX}"
curl -fsSL -H "Authorization: Bearer QQ==" "${BREW_LLVM_ARM64_BOTTLE_URL}" | tar -xzf - --strip-components=2 -C "${DARWIN_ARM64_LLVM_PREFIX}"
patch_homebrew_lib_dir() {
local LIB_DIR="$1"
local HOMEBREW_PREFIX="$2"
for DYLIB_FILE in "${LIB_DIR}"/*.dylib; do
if [[ -f "${DYLIB_FILE}" ]]; then
ID=$(otool -D "${DYLIB_FILE}" | grep '@@HOMEBREW_PREFIX@@' | awk '{print $1}')
if [[ -n "${ID}" ]]; then
NEW_ID=${ID/'@@HOMEBREW_PREFIX@@'/${HOMEBREW_PREFIX}}
install_name_tool -id "${NEW_ID}" "${DYLIB_FILE}"
fi
DEPS=$(otool -L "${DYLIB_FILE}" | grep '@@HOMEBREW_PREFIX@@' | awk '{print $1}')
for DEP in ${DEPS}; do
NEW_DEP=${DEP/'@@HOMEBREW_PREFIX@@'/${HOMEBREW_PREFIX}}
install_name_tool -change "${DEP}" "${NEW_DEP}" "${DYLIB_FILE}"
done
fi
done
}
patch_homebrew_lib_dir "${DARWIN_AMD64_LLVM_PREFIX}/lib" /usr/lib
patch_homebrew_lib_dir "${DARWIN_ARM64_LLVM_PREFIX}/lib" /opt/homebrew

146
.github/workflows/populate_linux_sysroot.sh vendored Executable file
View File

@@ -0,0 +1,146 @@
#!/bin/bash
set -e
TMPDIR="$(mktemp -d)"
export TMPDIR
trap 'rm -rf "${TMPDIR}"' EXIT
LINUX_AMD64_PREFIX=.sysroot/linux/amd64
LINUX_ARM64_PREFIX=.sysroot/linux/arm64
mkdir -p "${LINUX_AMD64_PREFIX}" "${LINUX_ARM64_PREFIX}"
POPULATE_LINUX_SYSROOT_SCRIPT="$(mktemp)"
cat > "${POPULATE_LINUX_SYSROOT_SCRIPT}" << EOF
#!/bin/bash
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get install -y lsb-release gnupg2 wget rsync
echo "deb http://apt.llvm.org/\$(lsb_release -cs)/ llvm-toolchain-\$(lsb_release -cs)-18 main" | tee /etc/apt/sources.list.d/llvm.list
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
apt-get update
apt-get install -y llvm-18-dev
error() {
echo -e "\$1" >&2
exit 1
}
exclude_list=()
include_list=()
exclude_list+=(--exclude "/bin")
exclude_list+=(--exclude "/boot")
exclude_list+=(--exclude "/boot*")
exclude_list+=(--exclude "/dev")
exclude_list+=(--exclude "/etc")
exclude_list+=(--exclude "/home")
exclude_list+=(--exclude "/lib/dhcpd")
exclude_list+=(--exclude "/lib/firmware")
exclude_list+=(--exclude "/lib/hdparm")
exclude_list+=(--exclude "/lib/ifupdown")
exclude_list+=(--exclude "/lib/modules")
exclude_list+=(--exclude "/lib/modprobe.d")
exclude_list+=(--exclude "/lib/modules-load.d")
exclude_list+=(--exclude "/lib/resolvconf")
exclude_list+=(--exclude "/lib/startpar")
exclude_list+=(--exclude "/lib/systemd")
exclude_list+=(--exclude "/lib/terminfo")
exclude_list+=(--exclude "/lib/udev")
exclude_list+=(--exclude "/lib/xtables")
exclude_list+=(--exclude "/lib/ssl/private")
exclude_list+=(--exclude "/lost+found")
exclude_list+=(--exclude "/media")
exclude_list+=(--exclude "/mnt")
exclude_list+=(--exclude "/proc")
exclude_list+=(--exclude "/root")
exclude_list+=(--exclude "/run")
exclude_list+=(--exclude "/sbin")
exclude_list+=(--exclude "/srv")
exclude_list+=(--exclude "/sys")
exclude_list+=(--exclude "/tmp")
exclude_list+=(--exclude "/usr/bin")
exclude_list+=(--exclude "/usr/games")
exclude_list+=(--exclude "/usr/sbin")
exclude_list+=(--exclude "/usr/share")
exclude_list+=(--exclude "/usr/src")
exclude_list+=(--exclude "/usr/local/bin")
exclude_list+=(--exclude "/usr/local/etc")
exclude_list+=(--exclude "/usr/local/games")
exclude_list+=(--exclude "/usr/local/man")
exclude_list+=(--exclude "/usr/local/sbin")
exclude_list+=(--exclude "/usr/local/share")
exclude_list+=(--exclude "/usr/local/src")
exclude_list+=(--exclude "/usr/lib/ssl/private")
exclude_list+=(--exclude "/var")
exclude_list+=(--exclude "/snap")
exclude_list+=(--exclude "*python*")
include_list+=(--include "*.a")
include_list+=(--include "*.so")
include_list+=(--include "*.so.*")
include_list+=(--include "*.h")
include_list+=(--include "*.hh")
include_list+=(--include "*.hpp")
include_list+=(--include "*.hxx")
include_list+=(--include "*.pc")
include_list+=(--include "*.def")
include_list+=(--include "*.inc")
include_list+=(--include "/lib")
include_list+=(--include "/lib32")
include_list+=(--include "/lib64")
include_list+=(--include "/libx32")
include_list+=(--include "*/")
do-sync() {
from=\$1
to=\$2
args=()
args+=(-a)
args+=(-z)
args+=(-m)
args+=(-d)
args+=(-h)
args+=(--keep-dirlinks)
args+=("--info=progress2")
args+=(--delete)
args+=(--prune-empty-dirs)
args+=(--sparse)
args+=(--links)
args+=(--copy-unsafe-links)
args+=("\${exclude_list[@]}")
args+=("\${include_list[@]}")
args+=(--exclude "*")
args+=("\${from}")
args+=("\${to}")
echo "\${args[@]}"
rsync "\${args[@]}"
exit \$?
}
do-sync / /sysroot/
EOF
chmod +x "${POPULATE_LINUX_SYSROOT_SCRIPT}"
populate_linux_sysroot() {
local ARCH="$1"
local PREFIX="$2"
docker run \
--rm \
--platform "linux/${ARCH}" \
-v "$(pwd)/${PREFIX}":/sysroot \
-v "${POPULATE_LINUX_SYSROOT_SCRIPT}":/populate_linux_sysroot.sh \
debian:bullseye \
/populate_linux_sysroot.sh
}
populate_linux_sysroot amd64 "${LINUX_AMD64_PREFIX}" &
populate_linux_sysroot arm64 "${LINUX_ARM64_PREFIX}" &
# Wait for both background processes to complete
wait

60
.github/workflows/release-build.yml vendored Normal file
View File

@@ -0,0 +1,60 @@
name: Release Build
on:
push:
tags:
- "*"
jobs:
populate-darwin-sysroot:
runs-on: macos-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Populate Darwin sysroot
run: bash .github/workflows/populate_darwin_sysroot.sh
- name: Create Darwin sysroot tarball
run: tar -czvf .sysroot/darwin.tar.gz -C .sysroot darwin
- name: Upload Darwin sysroot tarball
uses: actions/upload-artifact@v4
with:
name: darwin-sysroot-tarball
path: .sysroot/darwin.tar.gz
compression-level: 0
build:
runs-on: ubuntu-latest
needs: populate-darwin-sysroot
steps:
- name: Check out code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.24.x
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
image: tonistiigi/binfmt:qemu-v7.0.0-28
- name: Download Darwin sysroot tarball
uses: actions/download-artifact@v4
with:
name: darwin-sysroot-tarball
path: .sysroot
- name: Populate Darwin sysroot
run: tar -xzvf .sysroot/darwin.tar.gz -C .sysroot
- name: Populate Linux sysroot
run: bash .github/workflows/populate_linux_sysroot.sh
- name: Run GoReleaser
env:
GITHUB_TOKEN: ${{github.token}}
run: |
docker run \
--rm \
-e GITHUB_TOKEN=${GITHUB_TOKEN} \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(pwd):/go/src/llgo \
-w /go/src/llgo \
ghcr.io/goreleaser/goreleaser-cross:v1.22 \
release --clean --skip nfpm,snapcraft

30
.github/workflows/test_demo.sh vendored Normal file
View File

@@ -0,0 +1,30 @@
#!/bin/bash
set -e
# llgo run subdirectories under _demo and _pydemo that contain *.go files
total=0
failed=0
failed_cases=""
for d in ./_demo/* ./_pydemo/*; do
if [ -d "$d" ] && [ -n "$(ls "$d"/*.go 2>/dev/null)" ]; then
total=$((total+1))
echo "Testing $d"
if ! (cd "$d" && llgo run .); then
echo "FAIL"
failed=$((failed+1))
failed_cases="$failed_cases\n* :x: $d"
else
echo "PASS"
fi
fi
done
echo "=== Done"
echo "$((total-failed))/$total tests passed"
if [ "$failed" -ne 0 ]; then
echo ":bangbang: Failed demo cases:" | tee -a result.md
echo -e "$failed_cases" | tee -a result.md
exit 1
else
echo ":white_check_mark: All demo tests passed" | tee -a result.md
fi

36
.github/workflows/test_llgo.sh vendored Normal file
View File

@@ -0,0 +1,36 @@
#!/bin/bash
set -e
testcmd=/tmp/test
llgo build -o $testcmd ./c/bdwgc/_test
cases=$($testcmd)
total=$(echo "$cases" | wc -l | tr -d ' ')
failed=0
failed_cases=""
for idx in $(seq 1 $((total))); do
case=$(echo "$cases" | sed -n "${idx}p")
case_name=$(echo "$case" | cut -d',' -f2)
echo "=== Test case: $case_name"
set +e
out=$("$testcmd" "$((idx-1))" 2>&1)
exit_code=$?
set -e
if [ "${exit_code:-0}" -ne 0 ]; then
echo "failed: $out"
failed=$((failed+1))
failed_cases="$failed_cases\n* :x: $case_name"
else
echo "passed"
fi
done
echo "=== Done"
echo "$((total-failed))/$total tests passed"
if [ "$failed" -ne 0 ]; then
echo ":bangbang: Failed llgo cases:" | tee -a result.md
echo -e "$failed_cases" | tee -a result.md
exit 1
else
echo ":white_check_mark: All llgo tests passed" | tee -a result.md
fi

11
.gitignore vendored
View File

@@ -9,7 +9,8 @@
*.dylib
test.db
llgo_autogen.ll
demo.ll
llgo_autogen*.ll
stories*.bin
.DS_Store
err.log
@@ -18,12 +19,16 @@ numpy.txt
_go/
_runtime/
_tinygo/
_output/
build.dir/
.vscode/
# Test binary, built with `go test -c`
*.test
# Debug symbols
*.dSYM
# Output of the go coverage tool, specifically when used with LiteIDE
*.out
*.swp
@@ -33,3 +38,7 @@ build.dir/
# Go workspace file
go.work*
# GoReleaser
.dist/
.sysroot/

4
.gitmodules vendored
View File

@@ -1,3 +1,3 @@
[submodule "x/llama2/llama2.c"]
path = x/llama2/llama2.c
[submodule "c/llama2/llama2.c"]
path = c/llama2/llama2.c
url = https://github.com/karpathy/llama2.c.git

154
.goreleaser.yaml Normal file
View File

@@ -0,0 +1,154 @@
version: 2
dist: .dist
env:
- SYSROOT_DARWIN_AMD64={{.Env.PWD}}/.sysroot/darwin/amd64
- SYSROOT_DARWIN_ARM64={{.Env.PWD}}/.sysroot/darwin/arm64
- SYSROOT_LINUX_AMD64={{.Env.PWD}}/.sysroot/linux/amd64
- SYSROOT_LINUX_ARM64={{.Env.PWD}}/.sysroot/linux/arm64
- CGO_ENABLED=1
- CGO_CXXFLAGS=-std=c++17
before:
hooks:
- go mod download
builds:
- id: llgo-darwin-amd64
dir: compiler
main: ./cmd/llgo
binary: bin/llgo
flags:
- -tags=darwin,amd64,byollvm
ldflags:
- -X github.com/goplus/llgo/compiler/internal/env.buildVersion=v{{.Version}}
- -X github.com/goplus/llgo/compiler/internal/env.buildTime={{.Date}}
- -X github.com/goplus/llgo/xtool/env/llvm.ldLLVMConfigBin=/usr/local/opt/llvm@18/bin/llvm-config
env:
- CC=o64-clang
- CXX=o64-clang++
- CGO_CPPFLAGS=-I{{.Env.SYSROOT_DARWIN_AMD64}}/usr/local/opt/llvm@18/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
- CGO_LDFLAGS=-L{{.Env.SYSROOT_DARWIN_AMD64}}/usr/local/opt/llvm@18/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names -lLLVM-18 -lz -lm
targets:
- darwin_amd64
mod_timestamp: "{{.CommitTimestamp}}"
- id: llgo-darwin-arm64
dir: compiler
main: ./cmd/llgo
binary: bin/llgo
flags:
- -tags=darwin,arm64,byollvm
ldflags:
- -X github.com/goplus/llgo/compiler/internal/env.buildVersion=v{{.Version}}
- -X github.com/goplus/llgo/compiler/internal/env.buildTime={{.Date}}
- -X github.com/goplus/llgo/xtool/env/llvm.ldLLVMConfigBin=/opt/homebrew/opt/llvm@18/bin/llvm-config
env:
- CC=oa64-clang
- CXX=oa64-clang++
- CGO_CPPFLAGS=-I{{.Env.SYSROOT_DARWIN_ARM64}}/opt/homebrew/opt/llvm@18/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
- CGO_LDFLAGS=-L{{.Env.SYSROOT_DARWIN_ARM64}}/opt/homebrew/opt/llvm@18/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names -lLLVM-18 -lz -lm
targets:
- darwin_arm64
mod_timestamp: "{{.CommitTimestamp}}"
- id: llgo-linux-amd64
dir: compiler
main: ./cmd/llgo
binary: bin/llgo
flags:
- -tags=linux,amd64,byollvm
ldflags:
- -X github.com/goplus/llgo/compiler/internal/env.buildVersion=v{{.Version}}
- -X github.com/goplus/llgo/compiler/internal/env.buildTime={{.Date}}
- -X github.com/goplus/llgo/xtool/env/llvm.ldLLVMConfigBin=/usr/lib/llvm-18/bin/llvm-config
env:
- CC=x86_64-linux-gnu-gcc
- CXX=x86_64-linux-gnu-g++
- CGO_CPPFLAGS=--sysroot={{.Env.SYSROOT_LINUX_AMD64}} -I{{.Env.SYSROOT_LINUX_AMD64}}/usr/include/llvm-18 -I{{.Env.SYSROOT_LINUX_AMD64}}/usr/include/llvm-c-18 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
- CGO_LDFLAGS=--sysroot={{.Env.SYSROOT_LINUX_AMD64}} -L{{.Env.SYSROOT_LINUX_AMD64}}/usr/lib/llvm-18/lib -lLLVM-18
targets:
- linux_amd64
mod_timestamp: "{{.CommitTimestamp}}"
- id: llgo-linux-arm64
dir: compiler
main: ./cmd/llgo
binary: bin/llgo
flags:
- -tags=linux,arm64,byollvm
ldflags:
- -X github.com/goplus/llgo/compiler/internal/env.buildVersion=v{{.Version}}
- -X github.com/goplus/llgo/compiler/internal/env.buildTime={{.Date}}
- -X github.com/goplus/llgo/xtool/env/llvm.ldLLVMConfigBin=/usr/lib/llvm-18/bin/llvm-config
env:
- CC=aarch64-linux-gnu-gcc
- CXX=aarch64-linux-gnu-g++
- CGO_CPPFLAGS=--sysroot={{.Env.SYSROOT_LINUX_ARM64}} -I{{.Env.SYSROOT_LINUX_ARM64}}/usr/include/llvm-18 -I{{.Env.SYSROOT_LINUX_ARM64}}/usr/include/llvm-c-18 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
- CGO_LDFLAGS=--sysroot={{.Env.SYSROOT_LINUX_ARM64}} -L{{.Env.SYSROOT_LINUX_ARM64}}/usr/lib/llvm-18/lib -lLLVM-18
targets:
- linux_arm64
mod_timestamp: "{{.CommitTimestamp}}"
archives:
- format: tar.gz
name_template: >-
{{.ProjectName}}{{.Version}}.{{.Os}}-{{.Arch}}
{{- if .Arm}}v{{.Arm}}{{end}}
files:
- LICENSE
- README.md
- runtime
checksum:
name_template: "{{.ProjectName}}{{.Version}}.checksums.txt"
nfpms:
- package_name: llgo
vendor: goplus
homepage: https://github.com/goplus/llgo
maintainer: Aofei Sheng <aofei@aofeisheng.com>
description: |
LLGo is a Go compiler based on LLVM in order to better integrate Go with the C ecosystem including Python. It's a
subproject of the Go+ project.
LLGo aims to expand the boundaries of Go/Go+, providing limitless possibilities such as:
- Game development
- AI and data science
- WebAssembly
- Embedded development
- ...
license: Apache-2.0
formats:
- deb
- rpm
file_name_template: >-
{{.ProjectName}}{{.Version}}.{{.Os}}-{{.Arch}}
{{- if .Arm}}v{{.Arm}}{{end}}
bindir: /usr/local/bin
snapcrafts:
- name: llgo
title: A Go compiler based on LLVM
summary: A Go compiler based on LLVM
description: |
LLGo is a Go compiler based on LLVM in order to better integrate Go with the C ecosystem including Python. It's a
subproject of the Go+ project.
LLGo aims to expand the boundaries of Go/Go+, providing limitless possibilities such as:
- Game development
- AI and data science
- WebAssembly
- Embedded development
- ...
license: Apache-2.0
confinement: classic
name_template: >-
{{.ProjectName}}{{.Version}}.{{.Os}}-{{.Arch}}
{{- if .Arm}}v{{.Arm}}{{end}}
snapshot:
name_template: '{{trimprefix .Summary "v"}}'
release:
prerelease: auto

381
README.md
View File

@@ -10,8 +10,44 @@ llgo - A Go compiler based on LLVM
LLGo is a Go compiler based on LLVM in order to better integrate Go with the C ecosystem including Python. It's a subproject of [the Go+ project](https://github.com/goplus/gop).
LLGo aims to expand the boundaries of Go/Go+, providing limitless possibilities such as:
## C standard libary support
* Game development
* AI and data science
* WebAssembly
* Embedded development
* ...
How can these be achieved?
```
LLGo := Go + C + Python
```
LLGo is compatible with C and Python through the language's **Application Binary Interface (ABI)**, while LLGo is compatible with Go through its **syntax (source code)**. And here C doesn't just include C, but all languages that are ABI compatible with C, including C/C++, Objective-C, Swift, etc.
## C/C++ standard libary support
You can import a C/C++ standard library in LLGo!
* [c](https://pkg.go.dev/github.com/goplus/llgo/c)
* [c/syscall](https://pkg.go.dev/github.com/goplus/llgo/c/syscall)
* [c/sys](https://pkg.go.dev/github.com/goplus/llgo/c/sys)
* [c/os](https://pkg.go.dev/github.com/goplus/llgo/c/os)
* [c/math](https://pkg.go.dev/github.com/goplus/llgo/c/math)
* [c/math/cmplx](https://pkg.go.dev/github.com/goplus/llgo/c/math/cmplx)
* [c/math/rand](https://pkg.go.dev/github.com/goplus/llgo/c/math/rand)
* [c/pthread](https://pkg.go.dev/github.com/goplus/llgo/c/pthread)
* [c/pthread/sync](https://pkg.go.dev/github.com/goplus/llgo/c/pthread/sync)
* [c/sync/atomic](https://pkg.go.dev/github.com/goplus/llgo/c/sync/atomic)
* [c/time](https://pkg.go.dev/github.com/goplus/llgo/c/time)
* [c/net](https://pkg.go.dev/github.com/goplus/llgo/c/net)
* [cpp/std](https://pkg.go.dev/github.com/goplus/llgo/cpp/std)
Here is a simple example:
<!-- embedme doc/_readme/llgo_simple/simple.go -->
```go
package main
@@ -34,56 +70,120 @@ The `_demo` directory contains some C standard libary related demos (it start wi
To run these demos (If you haven't installed `llgo` yet, please refer to [How to install](#how-to-install)):
```sh
export LLGOROOT=`pwd`
cd <demo-directory> # eg. cd _demo/genints
cd <demo-directory> # eg. cd _demo/hello
llgo run .
```
See [github.com/goplus/llgo/c](https://pkg.go.dev/github.com/goplus/llgo/c) for more detials.
## How to support C/C++ and Python
LLGo use `go:linkname` to link an extern symbol througth its ABI:
<!-- embedme doc/_readme/llgo_call_c/call_c.go#L3-L6 -->
```go
import _ "unsafe" // for go:linkname
//go:linkname Sqrt C.sqrt
func Sqrt(x float64) float64
```
You can directly integrate it into [your own code](_demo/linkname/linkname.go):
<!-- embedme doc/_readme/llgo_call_c/call_c.go -->
```go
package main
import _ "unsafe" // for go:linkname
//go:linkname Sqrt C.sqrt
func Sqrt(x float64) float64
func main() {
println("sqrt(2) =", Sqrt(2))
}
```
Or put it into a package (see [c/math](c/math/math.go)):
<!-- embedme doc/_readme/llgo_call_cmath/call_cmath.go -->
```go
package main
import "github.com/goplus/llgo/c/math"
func main() {
println("sqrt(2) =", math.Sqrt(2))
}
```
## Python support
You can import a Python library in LLGo!
And you can import any Python library into `llgo` through a program called `llpyg`. The currently imported libraries include:
And you can import any Python library into `llgo` through a program called `llpyg` (see [Development tools](#development-tools)). The following libraries have been included in `llgo`:
* [sys](https://pkg.go.dev/github.com/goplus/llgo/py/sys)
* [os](https://pkg.go.dev/github.com/goplus/llgo/py/os)
* [math](https://pkg.go.dev/github.com/goplus/llgo/py/math)
* [json](https://pkg.go.dev/github.com/goplus/llgo/py/json)
* [inspect](https://pkg.go.dev/github.com/goplus/llgo/py/inspect)
* [statistics](https://pkg.go.dev/github.com/goplus/llgo/py/statistics)
* [numpy](https://pkg.go.dev/github.com/goplus/llgo/py/numpy)
* [py](https://pkg.go.dev/github.com/goplus/llgo/py) (abi)
* [py/std](https://pkg.go.dev/github.com/goplus/llgo/py/std) (builtins)
* [py/sys](https://pkg.go.dev/github.com/goplus/llgo/py/sys)
* [py/os](https://pkg.go.dev/github.com/goplus/llgo/py/os)
* [py/math](https://pkg.go.dev/github.com/goplus/llgo/py/math)
* [py/json](https://pkg.go.dev/github.com/goplus/llgo/py/json)
* [py/inspect](https://pkg.go.dev/github.com/goplus/llgo/py/inspect)
* [py/statistics](https://pkg.go.dev/github.com/goplus/llgo/py/statistics)
* [py/numpy](https://pkg.go.dev/github.com/goplus/llgo/py/numpy)
* [py/pandas](https://pkg.go.dev/github.com/goplus/llgo/py/pandas)
* [py/torch](https://pkg.go.dev/github.com/goplus/llgo/py/torch)
* [py/matplotlib](https://pkg.go.dev/github.com/goplus/llgo/py/matplotlib)
Here is an example using the Python `math` library:
Note: For third-party libraries (such as pandas and pytorch), you still need to install the library files.
Here is an example:
<!-- embedme doc/_readme/llgo_call_py/call_py.go -->
```go
package main
import (
"github.com/goplus/llgo/c"
"github.com/goplus/llgo/py"
"github.com/goplus/llgo/py/math"
"github.com/goplus/llgo/py/std"
)
func main() {
x := math.Sqrt(py.Float(2))
c.Printf(c.Str("sqrt(2) = %f\n"), x.Float64())
x := math.Sqrt(py.Float(2)) // x = sqrt(2)
std.Print(py.Str("sqrt(2) ="), x) // print("sqrt(2) =", x)
}
```
Here, We call `py.Float(2)` to create a Python number 2, and pass it to Pythons `math.sqrt` to get `x`. Then use `x.Float64()` to convert x to Go's `float64` type, and print the value through the C `printf` function.
It is equivalent to the following Python code:
<!-- embedme doc/_readme/llgo_call_py/call_math.py -->
```py
import math
x = math.sqrt(2)
print("sqrt =", x)
```
Here, We call `py.Float(2)` to create a Python number 2, and pass it to Pythons `math.sqrt` to get `x`. Then we call `std.Print` to print the result.
Let's look at a slightly more complex example. For example, we use `numpy` to calculate:
<!-- embedme doc/_readme/llgo_py_list/py_list.go -->
```go
package main
import (
"github.com/goplus/llgo/c"
"github.com/goplus/llgo/py"
"github.com/goplus/llgo/py/numpy"
"github.com/goplus/llgo/py/std"
)
func main() {
@@ -98,7 +198,7 @@ func main() {
py.List(3.0, 2.0, 1.0),
)
x := numpy.Add(a, b)
c.Printf(c.Str("a+b = %s\n"), x.Str().CStr())
std.Print(py.Str("a+b ="), x)
}
```
@@ -111,105 +211,230 @@ The `_pydemo` directory contains some python related demos:
* [statistics](_pydemo/statistics/statistics.go): define a python list and call `statistics.mean` to get the mean
* [matrix](_pydemo/matrix/matrix.go): a basic `numpy` demo
To run these demos, you need to set the `LLGO_LIB_PYTHON` environment variable first.
If Python is in the search path for `clang` linking, then `LLGO_LIB_PYTHON` only needs to be set to the name of the Python library. For example:
To run these demos (If you haven't installed `llgo` yet, please refer to [How to install](#how-to-install)):
```sh
export LLGO_LIB_PYTHON=python3.12
```
You can also specify the path to tell `llgo` where the Python library is located:
```sh
export LLGO_LIB_PYTHON=/foo/bar/python3.12
```
For example, `/opt/homebrew/Frameworks/Python.framework/Versions/3.12/libpython3.12.dylib` is a typical python library location under macOS. So we should set it like this:
```sh
export LLGO_LIB_PYTHON=/opt/homebrew/Frameworks/Python.framework/Versions/3.12/python3.12
```
Note that the file name must be written in a platform-independent format, using `python3.12` instead of `libpython3.12.dylib`.
Then you can run the demos:
```sh
export LLGOROOT=`pwd`
cd <demo-directory> # eg. cd _pydemo/callpy
llgo run .
```
See [github.com/goplus/llgo/py](https://pkg.go.dev/github.com/goplus/llgo/py) for more detials.
## Other frequently used libraries
LLGo can easily import any libraries from the C ecosystem. Currently, this import process is still manual, but in the future, it will be automated similar to Python library imports.
The currently imported libraries include:
The currently supported libraries include:
* [llama2.c](https://pkg.go.dev/github.com/goplus/llgo/x/llama2)
* [cjson](https://pkg.go.dev/github.com/goplus/llgo/x/cjson)
* [sqlite](https://pkg.go.dev/github.com/goplus/llgo/x/sqlite)
* [c/bdwgc](https://pkg.go.dev/github.com/goplus/llgo/c/bdwgc)
* [c/cjson](https://pkg.go.dev/github.com/goplus/llgo/c/cjson)
* [c/clang](https://pkg.go.dev/github.com/goplus/llgo/c/clang)
* [c/ffi](https://pkg.go.dev/github.com/goplus/llgo/c/ffi)
* [c/libuv](https://pkg.go.dev/github.com/goplus/llgo/c/libuv)
* [c/llama2](https://pkg.go.dev/github.com/goplus/llgo/c/llama2)
* [c/lua](https://pkg.go.dev/github.com/goplus/llgo/c/lua)
* [c/neco](https://pkg.go.dev/github.com/goplus/llgo/c/neco)
* [c/openssl](https://pkg.go.dev/github.com/goplus/llgo/c/openssl)
* [c/raylib](https://pkg.go.dev/github.com/goplus/llgo/c/raylib)
* [c/sqlite](https://pkg.go.dev/github.com/goplus/llgo/c/sqlite)
* [c/zlib](https://pkg.go.dev/github.com/goplus/llgo/c/zlib)
* [cpp/inih](https://pkg.go.dev/github.com/goplus/llgo/cpp/inih)
* [cpp/llvm](https://pkg.go.dev/github.com/goplus/llgo/cpp/llvm)
Here are some examples related to them:
* [llama2-c](_demo/llama2-c): inference Llama 2 (It's the first llgo AI example)
* [mkjson](x/cjson/_demo/mkjson/mkjson.go): create a json object and print it
* [sqlite](x/sqlite/_demo/sqlitedemo/demo.go): a basic sqlite demo
* [mkjson](c/cjson/_demo/mkjson/mkjson.go): create a json object and print it
* [sqlitedemo](c/sqlite/_demo/sqlitedemo/demo.go): a basic sqlite demo
* [tetris](c/raylib/_demo/tetris/tetris.go): a tetris game based on raylib
## Go syntax support
The priority of `llgo` feature iteration is:
* Popular C/Python libraries
* Full Go syntax
* Go standard libraries
* Popular Go packages
Common Go syntax is already supported. Except for the following, which needs to be improved:
* interface (Limited support)
* map (Very limited support)
* panic (Limited support)
* recover (Not supported yet)
* defer (Not supported yet)
* gc (Not supported yet)
* chan (Not supported yet)
* goroutine (Not supported yet)
* generics (Not supported yet)
Here are some examples related to Go syntax:
All Go syntax (including `cgo`) is already supported. Here are some examples:
* [concat](_demo/concat/concat.go): define a variadic function
* [genints](_demo/genints/genints.go): various forms of closure usage (including C function, recv.method and anonymous function)
* [errors](_cmptest/errors/errors.go): demo to implement error interface
* [defer](_cmptest/defer/defer.go): defer demo
* [goroutine](_demo/goroutine/goroutine.go): goroutine demo
### Defer
LLGo `defer` does not support usage in loops. This is not a bug but a feature, because we think that using `defer` in a loop is a very unrecommended practice.
### Garbage Collection (GC)
By default, LLGo implements `gc` based on [bdwgc](https://www.hboehm.info/gc/) (also known as [libgc](https://www.hboehm.info/gc/)).
However, you can disable gc by specifying the `nogc` tag. For example:
```sh
llgo run -tags nogc .
```
## Go packages support
Here are the Go packages that can be imported correctly:
* [unsafe](https://pkg.go.dev/unsafe)
* [unicode](https://pkg.go.dev/unicode)
* [unicode/utf8](https://pkg.go.dev/unicode/utf8)
* [unicode/utf16](https://pkg.go.dev/unicode/utf16)
* [math](https://pkg.go.dev/math)
* [math/big](https://pkg.go.dev/math/big) (partially)
* [math/bits](https://pkg.go.dev/math/bits)
* [math/cmplx](https://pkg.go.dev/math/cmplx)
* [math/rand](https://pkg.go.dev/math/rand)
* [net/url](https://pkg.go.dev/net/url)
* [errors](https://pkg.go.dev/errors)
* [context](https://pkg.go.dev/context)
* [io](https://pkg.go.dev/io)
* [io/fs](https://pkg.go.dev/io/fs)
* [io/ioutil](https://pkg.go.dev/io/ioutil)
* [log](https://pkg.go.dev/log)
* [flag](https://pkg.go.dev/flag)
* [sort](https://pkg.go.dev/sort)
* [bytes](https://pkg.go.dev/bytes)
* [bufio](https://pkg.go.dev/bufio)
* [strings](https://pkg.go.dev/strings)
* [strconv](https://pkg.go.dev/strconv)
* [path](https://pkg.go.dev/path)
* [path/filepath](https://pkg.go.dev/path/filepath)
* [sync/atomic](https://pkg.go.dev/sync/atomic)
* [sync](https://pkg.go.dev/sync) (partially)
* [syscall](https://pkg.go.dev/syscall) (partially)
* [runtime](https://pkg.go.dev/runtime) (partially)
* [os](https://pkg.go.dev/os) (partially)
* [os/exec](https://pkg.go.dev/os/exec) (partially)
* [fmt](https://pkg.go.dev/fmt) (partially)
* [reflect](https://pkg.go.dev/reflect) (partially)
* [time](https://pkg.go.dev/time) (partially)
* [encoding](https://pkg.go.dev/encoding)
* [encoding/binary](https://pkg.go.dev/encoding/binary)
* [encoding/hex](https://pkg.go.dev/encoding/hex)
* [encoding/base32](https://pkg.go.dev/encoding/base32)
* [encoding/base64](https://pkg.go.dev/encoding/base64)
* [encoding/csv](https://pkg.go.dev/encoding/csv)
* [net/textproto](https://pkg.go.dev/net/textproto)
* [hash](https://pkg.go.dev/hash)
* [hash/adler32](https://pkg.go.dev/hash/adler32)
* [hash/crc32](https://pkg.go.dev/hash/crc32) (partially)
* [hash/crc64](https://pkg.go.dev/hash/crc64)
* [crypto](https://pkg.go.dev/crypto)
* [crypto/md5](https://pkg.go.dev/crypto/md5)
* [crypto/sha1](https://pkg.go.dev/crypto/sha1)
* [crypto/sha256](https://pkg.go.dev/crypto/sha256)
* [crypto/sha512](https://pkg.go.dev/crypto/sha512) (partially)
* [crypto/hmac](https://pkg.go.dev/crypto/hmac) (partially)
* [crypto/rand](https://pkg.go.dev/crypto/rand) (partially)
* [crypto/subtle](https://pkg.go.dev/crypto/subtle) (partially)
* [regexp](https://pkg.go.dev/regexp)
* [regexp/syntax](https://pkg.go.dev/regexp/syntax)
* [go/token](https://pkg.go.dev/go/token)
* [go/scanner](https://pkg.go.dev/go/scanner)
## Dependencies
- [Go 1.20+](https://go.dev)
- [LLVM 18](https://llvm.org)
- [Clang 18](https://clang.llvm.org)
- [LLD 18](https://lld.llvm.org)
- [pkg-config 0.29+](https://www.freedesktop.org/wiki/Software/pkg-config/)
- [bdwgc/libgc 8.0+](https://www.hboehm.info/gc/)
- [OpenSSL 3.0+](https://www.openssl.org/)
- [zlib 1.2+](https://www.zlib.net)
- [Python 3.12+](https://www.python.org) (optional, for [github.com/goplus/llgo/py](https://pkg.go.dev/github.com/goplus/llgo/py))
## How to install
Follow these steps to generate the `llgo` command (its usage is the same as the `go` command):
### on macOS
<!-- embedme doc/_readme/scripts/install_macos.sh#L2-L1000 -->
```sh
brew update # execute if needed
brew install llvm@17
go install -v ./...
brew update
brew install llvm@18 bdw-gc openssl cjson libffi libuv pkg-config
brew install python@3.12 # optional
brew link --force libffi
curl https://raw.githubusercontent.com/goplus/llgo/refs/heads/main/install.sh | bash
```
### on Linux
#### Debian/Ubuntu
<!-- embedme doc/_readme/scripts/install_ubuntu.sh#L2-L1000 -->
```sh
echo 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-17 main' | sudo tee /etc/apt/sources.list.d/llvm.list
echo "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-18 main" | sudo tee /etc/apt/sources.list.d/llvm.list
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo apt-get update # execute if needed
sudo apt-get install --no-install-recommends llvm-17-dev
go install -v ./...
sudo apt-get update
sudo apt-get install -y llvm-18-dev clang-18 libclang-18-dev lld-18 pkg-config libgc-dev libssl-dev zlib1g-dev libcjson-dev libsqlite3-dev libunwind-dev libuv1-dev
sudo apt-get install -y python3.12-dev # optional
curl https://raw.githubusercontent.com/goplus/llgo/refs/heads/main/install.sh | bash
```
#### Alpine Linux
```sh
apk add go llvm18-dev clang18-dev lld18 pkgconf gc-dev openssl-dev zlib-dev
apk add python3-dev # optional
apk add g++ # build only
export LLVM_CONFIG=/usr/lib/llvm18/bin/llvm-config
export CGO_CPPFLAGS="$($LLVM_CONFIG --cppflags)"
export CGO_CXXFLAGS=-std=c++17
export CGO_LDFLAGS="$($LLVM_CONFIG --ldflags) $($LLVM_CONFIG --libs all)"
curl https://raw.githubusercontent.com/goplus/llgo/refs/heads/main/install.sh | bash
```
### on Windows
TODO
### Install from source
<!-- embedme doc/_readme/scripts/install_llgo.sh#L2-L1000 -->
```sh
git clone https://github.com/goplus/llgo.git
cd llgo
./install.sh
```
## Development tools
* [pydump](_xtool/pydump): It's the first program compiled by `llgo` (NOT `go`) in a production environment. It outputs symbol information (functions, variables, and constants) from a Python library in JSON format, preparing for the generation of corresponding packages in `llgo`.
* [pysigfetch](https://github.com/goplus/hdq/tree/main/chore/pysigfetch): It generates symbol information by extracting information from Python's documentation site. This tool is not part of the `llgo` project, but we depend on it.
* [llpyg](compiler/chore/llpyg): It is used to automatically convert Python libraries into Go packages that `llgo` can import. It depends on `pydump` and `pysigfetch` to accomplish the task.
* [llgen](compiler/chore/llgen): It is used to compile Go packages into LLVM IR files (*.ll).
* [ssadump](compiler/chore/ssadump): It is a Go SSA builder and interpreter.
How do I generate these tools?
<!-- embedme doc/_readme/scripts/install_full.sh#L2-L1000 -->
```sh
git clone https://github.com/goplus/llgo.git
cd llgo/compiler
go install -v ./cmd/...
go install -v ./chore/... # compile all tools except pydump
export LLGO_ROOT=$PWD/..
cd ../_xtool
llgo install ./... # compile pydump
go install github.com/goplus/hdq/chore/pysigfetch@v0.8.1 # compile pysigfetch
```
## Key modules
Below are the key modules for understanding the implementation principles of `llgo`:
* [ssa](https://pkg.go.dev/github.com/goplus/llgo/compiler/ssa): It generates LLVM IR files (LLVM SSA) using the semantics (interfaces) of Go SSA. Although `LLVM SSA` and `Go SSA` are both IR languages, they work at completely different levels. `LLVM SSA` is closer to machine code, which abstracts different instruction sets. While `Go SSA` is closer to a high-level language. We can think of it as the instruction set of the `Go computer`. `llgo/ssa` is not just limited to the `llgo` compiler. If we view it as the high-level expressive power of `LLVM`, you'll find it very useful. Prior to `llgo/ssa`, you had to operate `LLVM` using machine code semantics. But now, with the advanced SSA form (in the semantics of Go SSA), you can conveniently utilize `LLVM`.
* [cl](https://pkg.go.dev/github.com/goplus/llgo/compiler/cl): It is the core of the llgo compiler. It converts a Go package into LLVM IR files. It depends on `llgo/ssa`.
* [internal/build](https://pkg.go.dev/github.com/goplus/llgo/compiler/internal/build): It strings together the entire compilation process of `llgo`. It depends on `llgo/ssa` and `llgo/cl`.

View File

@@ -0,0 +1,47 @@
package main
import (
"fmt"
"math"
"math/big"
)
func main() {
// We'll do computations with 200 bits of precision in the mantissa.
const prec = 200
// Compute the square root of 2 using Newton's Method. We start with
// an initial estimate for sqrt(2), and then iterate:
// x_{n+1} = 1/2 * ( x_n + (2.0 / x_n) )
// Since Newton's Method doubles the number of correct digits at each
// iteration, we need at least log_2(prec) steps.
steps := int(math.Log2(prec))
// Initialize values we need for the computation.
two := new(big.Float).SetPrec(prec).SetInt64(2)
half := new(big.Float).SetPrec(prec).SetFloat64(0.5)
// Use 1 as the initial estimate.
x := new(big.Float).SetPrec(prec).SetInt64(1)
// We use t as a temporary variable. There's no need to set its precision
// since big.Float values with unset (== 0) precision automatically assume
// the largest precision of the arguments when used as the result (receiver)
// of a big.Float operation.
t := new(big.Float)
// Iterate.
for i := 0; i <= steps; i++ {
t.Quo(two, x) // t = 2.0 / x_n
t.Add(x, t) // t = x_n + (2.0 / x_n)
x.Mul(half, t) // x_{n+1} = 0.5 * t
}
// We can use the usual fmt.Printf verbs since big.Float implements fmt.Formatter
fmt.Printf("sqrt(2) = %.50f\n", x)
// Print the error between 2 and x*x.
t.Mul(x, x) // t = x*x
fmt.Printf("error = %e\n", t.Sub(two, t))
}

View File

@@ -0,0 +1,21 @@
package main
func main() {
c1 := make(chan string)
c2 := make(chan string, 1)
go func() {
c1 <- "ch1"
}()
go func() {
c2 <- "ch2"
}()
for i := 0; i < 2; i++ {
select {
case msg1 := <-c1:
println(msg1)
case msg2 := <-c2:
println(msg2)
}
}
}

View File

@@ -0,0 +1,34 @@
package main
import (
"fmt"
"go/parser"
"go/token"
)
func main() {
fset := token.NewFileSet() // positions are relative to fset
src := `package foo
import (
"fmt"
"time"
)
func bar() {
fmt.Println(time.Now())
}`
// Parse src but stop after processing the imports.
f, err := parser.ParseFile(fset, "", src, parser.ImportsOnly)
if err != nil {
fmt.Println(err)
return
}
// Print the imports from the file's AST.
for _, s := range f.Imports {
fmt.Println(s.Path.Value)
}
}

View File

@@ -0,0 +1,16 @@
package main
import (
"encoding/json"
"fmt"
"unsafe"
)
func main() {
s := `{"name":"math","items":[{"name":"sqrt","sig":"(x, /)"},{"name":"pi"}]}`
data := unsafe.Slice(unsafe.StringData(s), len(s))
var v any
json.Unmarshal(data, &v)
b, _ := json.MarshalIndent(v, "", " ")
fmt.Println(string(b))
}

View File

@@ -0,0 +1,19 @@
package main
import (
"fmt"
"time"
)
var c chan int
func handle(int) {}
func main() {
select {
case m := <-c:
handle(m)
case <-time.After(time.Second / 10):
fmt.Println("timed out")
}
}

View File

@@ -0,0 +1,48 @@
package main
import (
"encoding/base32"
"encoding/base64"
"encoding/hex"
"fmt"
"log"
)
func base64Demo() {
msg := "Hello, 世界"
encoded := base64.StdEncoding.EncodeToString([]byte(msg))
fmt.Println(encoded)
decoded, err := base64.StdEncoding.DecodeString(encoded)
if err != nil {
fmt.Println("decode error:", err)
return
}
fmt.Println(string(decoded))
}
func base32Demo() {
str := "JBSWY3DPFQQHO33SNRSCC==="
dst := make([]byte, base32.StdEncoding.DecodedLen(len(str)))
n, err := base32.StdEncoding.Decode(dst, []byte(str))
if err != nil {
fmt.Println("decode error:", err)
return
}
dst = dst[:n]
fmt.Printf("%q\n", dst)
}
func hexDemo() {
const s = "48656c6c6f20476f7068657221"
decoded, err := hex.DecodeString(s)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s\n", decoded)
}
func main() {
base64Demo()
base32Demo()
hexDemo()
}

View File

@@ -0,0 +1,63 @@
package main
import (
"fmt"
"math/big"
)
func fib() {
// Initialize two big ints with the first two numbers in the sequence.
a := big.NewInt(0)
b := big.NewInt(1)
// Initialize limit as 10^99, the smallest integer with 100 digits.
var limit big.Int
limit.Exp(big.NewInt(10), big.NewInt(99), nil)
// Loop while a is smaller than 1e100.
for a.Cmp(&limit) < 0 {
// Compute the next Fibonacci number, storing it in a.
a.Add(a, b)
// Swap a and b so that b is the next number in the sequence.
a, b = b, a
}
fmt.Println(a) // 100-digit Fibonacci number
}
func abs() {
a := big.NewInt(64)
b := big.NewInt(-52)
a.Set(b)
a.Abs(a)
a.Set(big.NewInt(-164))
a.Abs(a)
fmt.Println("value: ", a.String())
}
func neg() {
fmt.Println("value: ", big.NewInt(-64).Neg(big.NewInt(-64)))
fmt.Println("value: ", big.NewInt(64).Neg(big.NewInt(64)))
fmt.Println("value: ", big.NewInt(0).Neg(big.NewInt(0)))
}
func calc() {
a := big.NewInt(64)
b := big.NewInt(-52)
c := big.NewInt(54)
fmt.Println("value:", a.Add(a, b))
fmt.Println("value:", a.Sub(b, c))
d := big.NewInt(10)
e := big.NewInt(4)
fmt.Println("value:", d.Mul(d, e))
}
func bitop() {
a := big.NewInt(4)
fmt.Println("value:", a.Lsh(a, 1))
b := big.NewInt(16)
fmt.Println("value:", b.Rsh(b, 2))
}
func main() {
bitop()
}

11
_cmptest/chan/chan.go Normal file
View File

@@ -0,0 +1,11 @@
package main
func main() {
ch := make(chan int, 10)
println(len(ch), cap(ch))
go func() {
ch <- 100
}()
n, ok := <-ch
println(n, ok)
}

View File

@@ -0,0 +1,26 @@
package main
func fibonacci(c, quit chan int) {
x, y := 0, 1
for {
select {
case c <- x:
x, y = y, x+y
case <-quit:
println("quit")
return
}
}
}
func main() {
c := make(chan int)
quit := make(chan int)
go func() {
for i := 0; i < 10; i++ {
println(<-c)
}
close(quit)
}()
fibonacci(c, quit)
}

28
_cmptest/crcdemo/crc.go Normal file
View File

@@ -0,0 +1,28 @@
package main
import (
"fmt"
"hash/adler32"
"hash/crc32"
"hash/crc64"
)
func crc64Demo() {
crc := crc64.MakeTable(crc64.ECMA)
fmt.Printf("%016x\n", crc64.Checksum([]byte("Hello world"), crc))
}
func crc32Demo() {
crc32q := crc32.MakeTable(crc32.IEEE)
fmt.Printf("%08x\n", crc32.Checksum([]byte("Hello world"), crc32q))
}
func adler32Demo() {
fmt.Printf("%08x\n", adler32.Checksum([]byte("Hello world")))
}
func main() {
adler32Demo()
crc32Demo()
crc64Demo()
}

30
_cmptest/csvdemo/csv.go Normal file
View File

@@ -0,0 +1,30 @@
package main
import (
"encoding/csv"
"fmt"
"io"
"log"
"strings"
)
func main() {
in := `first_name,last_name,username
"Rob","Pike",rob
Ken,Thompson,ken
"Robert","Griesemer","gri"
`
r := csv.NewReader(strings.NewReader(in))
for {
record, err := r.Read()
if err == io.EOF {
break
}
if err != nil {
log.Fatal(err)
}
fmt.Println(record)
}
}

39
_cmptest/ctxcancel/ctx.go Normal file
View File

@@ -0,0 +1,39 @@
package main
import (
"context"
"fmt"
)
func main() {
// gen generates integers in a separate goroutine and
// sends them to the returned channel.
// The callers of gen need to cancel the context once
// they are done consuming generated integers not to leak
// the internal goroutine started by gen.
gen := func(ctx context.Context) <-chan int {
dst := make(chan int)
n := 1
go func() {
for {
select {
case <-ctx.Done():
return // returning not to leak the goroutine
case dst <- n:
n++
}
}
}()
return dst
}
ctx, cancel := context.WithCancel(context.Background())
defer cancel() // cancel when we are finished consuming integers
for n := range gen(ctx) {
fmt.Println(n)
if n == 5 {
break
}
}
}

17
_cmptest/defer/defer.go Normal file
View File

@@ -0,0 +1,17 @@
package main
func f(s string) bool {
return len(s) > 2
}
func main() {
defer func() {
println("hi")
}()
if s := "hello"; f(s) {
defer println(s)
} else {
defer println("world")
}
defer println("bye")
}

View File

@@ -0,0 +1,20 @@
package main
import (
"fmt"
"os"
)
func main() {
mapper := func(placeholderName string) string {
switch placeholderName {
case "DAY_PART":
return "morning"
case "NAME":
return "Gopher"
}
return ""
}
fmt.Println(os.Expand("Good ${DAY_PART}, $NAME!", mapper))
}

21
_cmptest/errors/errors.go Normal file
View File

@@ -0,0 +1,21 @@
package main
// New returns an error that formats as the given text.
// Each call to New returns a distinct error value even if the text is identical.
func New(text string) error {
return &errorString{text}
}
// errorString is a trivial implementation of error.
type errorString struct {
s string
}
func (e *errorString) Error() string {
return e.s
}
func main() {
err := New("an error")
println(err.Error())
}

View File

@@ -0,0 +1,21 @@
package main
import (
"flag"
"fmt"
"os"
)
func main() {
fmt.Println("args:", os.Args[1:])
if len(os.Args) == 1 {
os.Args = []string{"flagdemo", "-cpu", "100"}
}
verbose := flag.Bool("v", false, "verbose")
cpu := flag.Int("cpu", 1, "cpu number")
host := flag.String("host", ":8888", "host")
flag.Parse()
fmt.Println("host:", *host, "cpu:", *cpu, "verbose:", *verbose)
}

12
_cmptest/fmtdemo/fmt.go Normal file
View File

@@ -0,0 +1,12 @@
package main
import (
"errors"
"fmt"
)
func main() {
fmt.Println("Hello, world")
fmt.Printf("%f\n", 3.14)
fmt.Printf("%v\n", errors.New("error message"))
}

View File

@@ -0,0 +1,27 @@
package main
import (
"fmt"
"go/scanner"
"go/token"
)
func main() {
// src is the input that we want to tokenize.
src := []byte("cos(x) + 1i*sin(x) // Euler")
// Initialize the scanner.
var s scanner.Scanner
fset := token.NewFileSet() // positions are relative to fset
file := fset.AddFile("", fset.Base(), len(src)) // register input "file"
s.Init(file, src, nil /* no error handler */, scanner.ScanComments)
// Repeated calls to Scan yield the token sequence found in the input.
for {
pos, tok, lit := s.Scan()
if tok == token.EOF {
break
}
fmt.Printf("%s\t%s\t%q\n", fset.Position(pos), tok, lit)
}
}

15
_cmptest/hmacdemo/hmac.go Normal file
View File

@@ -0,0 +1,15 @@
package main
import (
"crypto/hmac"
"crypto/sha1"
"fmt"
"io"
)
func main() {
h := hmac.New(sha1.New, []byte("<key>"))
io.WriteString(h, "The fog is getting thicker!")
io.WriteString(h, "And Leon's getting laaarger!")
fmt.Printf("%x", h.Sum(nil))
}

View File

@@ -0,0 +1,9 @@
package foo
func Bar() any {
return struct{ V int }{1}
}
func F() any {
return struct{ v int }{1}
}

35
_cmptest/interf/interf.go Normal file
View File

@@ -0,0 +1,35 @@
package main
import (
"github.com/goplus/llgo/_cmptest/interf/foo"
)
func Foo() any {
return struct{ v int }{1}
}
func main() {
v := Foo()
if x, ok := v.(struct{ v int }); ok {
println(x.v)
} else {
println("Foo: not ok")
}
bar := foo.Bar()
if x, ok := bar.(struct{ V int }); ok {
println(x.V)
} else {
println("Bar: not ok")
}
if x, ok := foo.F().(struct{ v int }); ok {
println(x.v)
} else {
println("F: not ok")
}
}
/* Expected output:
1
1
F: not ok
*/

14
_cmptest/iodemo/io.go Normal file
View File

@@ -0,0 +1,14 @@
package main
import (
"io"
"os"
)
func f(w io.Writer) {
w.Write([]byte("Hello, world\n"))
}
func main() {
f(os.Stdout)
}

View File

@@ -0,0 +1,19 @@
package main
import (
"fmt"
"io/ioutil"
"log"
"strings"
)
func main() {
r := strings.NewReader("Go is a general-purpose language designed with systems programming in mind.")
b, err := ioutil.ReadAll(r)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s\n", b)
}

20
_cmptest/md5demo/md5.go Normal file
View File

@@ -0,0 +1,20 @@
package main
import (
"crypto"
"crypto/md5"
"fmt"
"io"
)
func main() {
h := md5.New()
io.WriteString(h, "The fog is getting thicker!")
io.WriteString(h, "And Leon's getting laaarger!")
fmt.Printf("%x\n", h.Sum(nil))
h = crypto.MD5.New()
io.WriteString(h, "The fog is getting thicker!")
io.WriteString(h, "And Leon's getting laaarger!")
fmt.Printf("%x\n", h.Sum(nil))
}

18
_cmptest/osdemo/osd.go Normal file
View File

@@ -0,0 +1,18 @@
package main
import (
"os"
)
func main() {
home, _ := os.UserHomeDir()
println("home:", home)
cfgdir, _ := os.UserConfigDir()
println("cfgdir:", cfgdir)
cache, _ := os.UserCacheDir()
println("cachedir:", cache)
os.Stdout.Write([]byte("Hello, World\n"))
}

24
_cmptest/osexec/exec.go Normal file
View File

@@ -0,0 +1,24 @@
package main
import (
"fmt"
"os"
"os/exec"
"runtime"
"github.com/goplus/llgo/xtool/env/llvm"
)
func main() {
ls := "ls"
if runtime.GOOS == "windows" {
ls = "dir"
}
cmd := exec.Command(ls)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Run()
dir := llvm.New("").BinDir()
fmt.Println(dir)
}

30
_cmptest/osproc/exec.go Normal file
View File

@@ -0,0 +1,30 @@
package main
import (
"fmt"
"os"
"os/exec"
"runtime"
)
func main() {
ls := "ls"
args := []string{ls, "-l"}
if runtime.GOOS == "windows" {
ls = "dir"
args = []string{ls}
}
lspath, _ := exec.LookPath(ls)
if lspath != "" {
ls = lspath
}
proc, err := os.StartProcess(ls, args, &os.ProcAttr{
Files: []*os.File{nil, os.Stdout, os.Stderr},
})
if err != nil {
fmt.Println("os.StartProcess error:", err)
return
}
proc.Wait()
fmt.Println("proc.Wait done")
}

26
_cmptest/pipedemo/pipe.go Normal file
View File

@@ -0,0 +1,26 @@
package main
import (
"fmt"
"io"
)
func main() {
data := []byte("This is some data that needs to be stored in Body.")
pr, pw := io.Pipe()
go func() {
defer pw.Close()
if _, err := pw.Write(data); err != nil {
fmt.Println("Error writing to pipe:", err)
return
}
}()
defer pr.Close()
readData, err := io.ReadAll(pr)
if err != nil {
fmt.Println("Error reading from Body:", err)
return
}
fmt.Println("Body:", string(readData))
}

View File

@@ -0,0 +1,12 @@
package main
import (
"fmt"
"github.com/goplus/llgo/xtool/nm"
)
func main() {
sym := nm.Symbol{Name: "abc", Type: nm.Text}
fmt.Printf("%016x %c %s\n", sym.Addr, sym.Type, sym.Name)
}

View File

@@ -0,0 +1,25 @@
package main
import (
"fmt"
"os"
)
func main() {
fileName := "err.log"
os.WriteFile(fileName, []byte("123"), 0644)
_, err := os.Stat(fileName)
if os.IsNotExist(err) {
fmt.Fprintf(os.Stderr, "File %s not found\n", fileName)
return
}
data, err := os.ReadFile(fileName)
if err != nil {
fmt.Fprintf(os.Stderr, "ReadFile: %v\n", err)
return
}
fmt.Printf("%s\n", data)
}

View File

@@ -0,0 +1,13 @@
package main
import "reflect"
func main() {
tyIntSlice := reflect.SliceOf(reflect.TypeOf(0))
v := reflect.Zero(tyIntSlice)
v = reflect.Append(v, reflect.ValueOf(1), reflect.ValueOf(2), reflect.ValueOf(3))
for i, n := 0, v.Len(); i < n; i++ {
item := v.Index(i)
println(item.Int())
}
}

View File

@@ -0,0 +1,11 @@
package main
import (
"fmt"
"github.com/goplus/llgo/xtool/env"
)
func main() {
fmt.Println(env.ExpandEnv("$(pkg-config --libs bdw-gc)"))
}

14
_cmptest/rtype/rtype.go Normal file
View File

@@ -0,0 +1,14 @@
package main
import "reflect"
func main() {
tyIntSlice := reflect.SliceOf(reflect.TypeOf(0))
println(tyIntSlice.String())
v := reflect.Zero(tyIntSlice)
println(v.Len())
v = reflect.ValueOf(100)
println(v.Int())
}

14
_cmptest/sha1demo/sha1.go Normal file
View File

@@ -0,0 +1,14 @@
package main
import (
"crypto/sha1"
"fmt"
"io"
)
func main() {
h := sha1.New()
io.WriteString(h, "The fog is getting thicker!")
io.WriteString(h, "And Leon's getting laaarger!")
fmt.Printf("%x", h.Sum(nil))
}

View File

@@ -0,0 +1,14 @@
package main
import (
"crypto/sha256"
"fmt"
"io"
)
func main() {
h := sha256.New()
io.WriteString(h, "The fog is getting thicker!")
io.WriteString(h, "And Leon's getting laaarger!")
fmt.Printf("%x", h.Sum(nil))
}

View File

@@ -0,0 +1,14 @@
package main
import (
"crypto/sha512"
"fmt"
"io"
)
func main() {
h := sha512.New()
io.WriteString(h, "The fog is getting thicker!")
io.WriteString(h, "And Leon's getting laaarger!")
fmt.Printf("%x", h.Sum(nil))
}

23
_cmptest/sortdemo/sort.go Normal file
View File

@@ -0,0 +1,23 @@
package main
import "sort"
func main() {
vals := []int{32, 58, 25, 92, 45, 78}
sort.Ints(vals)
for _, v := range vals {
println(v)
}
texts := []string{"apple", "banana", "cherry", "date", "elderberry", "fig"}
sort.Slice(texts, func(i, j int) bool {
leni, lenj := len(texts[i]), len(texts[j])
if leni != lenj {
return leni < lenj
}
return texts[i] < texts[j]
})
for _, v := range texts {
println(v)
}
}

View File

@@ -0,0 +1,12 @@
package main
import (
"fmt"
"strconv"
"strings"
)
func main() {
fmt.Println(strconv.Itoa(-123))
fmt.Println(strings.Split("abc,def,123", ","))
}

View File

@@ -0,0 +1,11 @@
package main
import "syscall"
func main() {
wd, err := syscall.Getwd()
if err != nil {
panic(err)
}
println("cwd:", wd)
}

View File

@@ -0,0 +1,8 @@
package main
import "time"
func main() {
t := time.Date(2018, time.January, 1, 2, 3, 4, 5, time.UTC)
println(t.String())
}

20
_cmptest/urldemo/url.go Normal file
View File

@@ -0,0 +1,20 @@
package main
import (
"fmt"
"log"
"net/url"
)
func main() {
u, err := url.Parse("http://foo.example.com/foo?bar=1")
if err != nil {
log.Fatal(err)
}
u.Scheme = "https"
u.Host = "bar.example.com"
q := u.Query()
q.Set("bar", "2")
u.RawQuery = q.Encode()
fmt.Println(u)
}

View File

@@ -0,0 +1,31 @@
package async
import (
_ "unsafe"
)
type Void = [0]byte
type Future[T any] interface {
Then(cb func(T))
}
type future[T any] struct {
cb func(func(T))
}
func (f *future[T]) Then(cb func(T)) {
f.cb(cb)
}
func Async[T any](fn func(func(T))) Future[T] {
return &future[T]{fn}
}
func Run[T any](future Future[T]) T {
var ret T
future.Then(func(v T) {
ret = v
})
return ret
}

23
_demo/async/main.go Normal file
View File

@@ -0,0 +1,23 @@
package main
import (
"time"
"github.com/goplus/llgo/_demo/async/async"
"github.com/goplus/llgo/_demo/async/timeout"
)
func Sleep(i int, d time.Duration) async.Future[int] {
return async.Async(func(resolve func(int)) {
timeout.Timeout(d).Then(func(async.Void) {
resolve(i)
})
})
}
func main() {
async.Run(async.Async(func(resolve func(async.Void)) {
println("read file")
defer resolve(async.Void{})
}))
}

View File

@@ -0,0 +1,16 @@
package timeout
import (
"time"
"github.com/goplus/llgo/_demo/async/async"
)
func Timeout(d time.Duration) async.Future[async.Void] {
return async.Async(func(resolve func(async.Void)) {
go func() {
time.Sleep(d)
resolve(async.Void{})
}()
})
}

24
_demo/catomic/atomic.go Normal file
View File

@@ -0,0 +1,24 @@
package main
import (
"github.com/goplus/llgo/c/sync/atomic"
)
func main() {
var v int64
atomic.Store(&v, 100)
println("store:", atomic.Load(&v))
ret := atomic.Add(&v, 1)
println("ret:", ret, "v:", v)
ret, _ = atomic.CompareAndExchange(&v, 100, 102)
println("ret:", ret, "vs 100, v:", v)
ret, _ = atomic.CompareAndExchange(&v, 101, 102)
println("ret:", ret, "vs 101, v:", v)
ret = atomic.Sub(&v, 1)
println("ret:", ret, "v:", v)
}

11
_demo/cexec/exec.go Normal file
View File

@@ -0,0 +1,11 @@
package main
import (
"github.com/goplus/llgo/c"
"github.com/goplus/llgo/c/os"
)
func main() {
ls := c.Str("ls")
os.Execlp(ls, ls, c.Str("-l"), nil)
}

16
_demo/cgofull/bar.go Normal file
View File

@@ -0,0 +1,16 @@
package main
/*
#cgo CFLAGS: -DBAR
#include <stdio.h>
#include "foo.h"
static void foo(Foo* f) {
printf("foo in bar: %d\n", f->a);
}
*/
import "C"
func Bar(f *C.Foo) {
C.print_foo(f)
C.foo(f)
}

157
_demo/cgofull/cgofull.go Normal file
View File

@@ -0,0 +1,157 @@
package main
/*
#cgo windows,!amd64 CFLAGS: -D_WIN32
#cgo !windows CFLAGS: -D_POSIX
#cgo windows,amd64 CFLAGS: -D_WIN64
#cgo linux,amd64 CFLAGS: -D_LINUX64
#cgo !windows,amd64 CFLAGS: -D_UNIX64
#cgo pkg-config: python3-embed
#include <stdio.h>
#include <Python.h>
#include "foo.h"
typedef struct {
int a;
} s4;
typedef struct {
int a;
int b;
} s8;
typedef struct {
int a;
int b;
int c;
} s12;
typedef struct {
int a;
int b;
int c;
int d;
} s16;
typedef struct {
int a;
int b;
int c;
int d;
int e;
} s20;
static int test_structs(s4* s4, s8* s8, s12* s12, s16* s16, s20* s20) {
printf("s4.a: %d\n", s4->a);
printf("s8.a: %d, s8.b: %d\n", s8->a, s8->b);
printf("s12.a: %d, s12.b: %d, s12.c: %d\n", s12->a, s12->b, s12->c);
printf("s16.a: %d, s16.b: %d, s16.c: %d, s16.d: %d\n", s16->a, s16->b, s16->c, s16->d);
printf("s20.a: %d, s20.b: %d, s20.c: %d, s20.d: %d, s20.e: %d\n", s20->a, s20->b, s20->c, s20->d, s20->e);
return s4->a + s8->a + s8->b + s12->a + s12->b + s12->c + s16->a + s16->b + s16->c + s16->d + s20->a + s20->b + s20->c + s20->d + s20->e;
}
static void test_macros() {
#ifdef FOO
printf("FOO is defined\n");
#endif
#ifdef BAR
printf("BAR is defined\n");
#endif
#ifdef _WIN32
printf("WIN32 is defined\n");
#endif
#ifdef _POSIX
printf("POSIX is defined\n");
#endif
#ifdef _WIN64
printf("WIN64 is defined\n");
#endif
#ifdef _LINUX64
printf("LINUX64 is defined\n");
#endif
#ifdef _UNIX64
printf("UNIX64 is defined\n");
#endif
}
#define MY_VERSION "1.0.0"
#define MY_CODE 0x12345678
static void test_void() {
printf("test_void\n");
}
typedef int (*Cb)(int);
extern int go_callback(int);
extern int c_callback(int i);
static void test_callback(Cb cb) {
printf("test_callback, cb: %p, go_callback: %p, c_callback: %p\n", cb, go_callback, c_callback);
printf("test_callback, *cb: %p, *go_callback: %p, *c_callback: %p\n", *(void**)cb, *(void**)(go_callback), *(void**)(c_callback));
printf("cb result: %d\n", cb(123));
printf("done\n");
}
extern int go_callback_not_use_in_go(int);
static void run_callback() {
test_callback(c_callback);
test_callback(go_callback_not_use_in_go);
}
*/
import "C"
import (
"fmt"
"unsafe"
"github.com/goplus/llgo/_demo/cgofull/pymod1"
"github.com/goplus/llgo/_demo/cgofull/pymod2"
)
//export go_callback_not_use_in_go
func go_callback_not_use_in_go(i C.int) C.int {
return i + 1
}
//export go_callback
func go_callback(i C.int) C.int {
return i + 1
}
func main() {
runPy()
f := &C.Foo{a: 1}
Foo(f)
Bar(f)
C.test_macros()
r := C.test_structs(&C.s4{a: 1}, &C.s8{a: 1, b: 2}, &C.s12{a: 1, b: 2, c: 3}, &C.s16{a: 1, b: 2, c: 3, d: 4}, &C.s20{a: 1, b: 2, c: 3, d: 4, e: 5})
fmt.Println(r)
if r != 35 {
panic("test_structs failed")
}
fmt.Println(C.MY_VERSION)
fmt.Println(int(C.MY_CODE))
C.test_void()
println("call run_callback")
C.run_callback()
// test _Cgo_ptr and _cgoCheckResult
println("call with go_callback")
C.test_callback((C.Cb)(C.go_callback))
println("call with c_callback")
C.test_callback((C.Cb)(C.c_callback))
}
func runPy() {
Initialize()
defer Finalize()
Run("print('Hello, Python!')")
C.PyObject_Print((*C.PyObject)(unsafe.Pointer(pymod1.Float(1.23))), C.stderr, 0)
C.PyObject_Print((*C.PyObject)(unsafe.Pointer(pymod2.Long(123))), C.stdout, 0)
// test _Cgo_use
C.PyObject_Print((*C.PyObject)(unsafe.Pointer(C.PyComplex_FromDoubles(C.double(1.23), C.double(4.56)))), C.stdout, 0)
}

12
_demo/cgofull/foo.c Normal file
View File

@@ -0,0 +1,12 @@
#include <stdio.h>
#include "foo.h"
void print_foo(Foo *f)
{
printf("print_foo: %d\n", f->a);
}
int c_callback(int i)
{
return i + 1;
}

16
_demo/cgofull/foo.go Normal file
View File

@@ -0,0 +1,16 @@
package main
/*
#cgo CFLAGS: -DFOO
#include <stdio.h>
#include "foo.h"
static void foo(Foo* f) {
printf("foo in bar: %d\n", f->a);
}
*/
import "C"
func Foo(f *C.Foo) {
C.print_foo(f)
C.foo(f)
}

7
_demo/cgofull/foo.h Normal file
View File

@@ -0,0 +1,7 @@
#pragma once
typedef struct {
int a;
} Foo;
extern void print_foo(Foo* f);

24
_demo/cgofull/py.go Normal file
View File

@@ -0,0 +1,24 @@
package main
/*
#cgo pkg-config: python3-embed
#include <Python.h>
*/
import "C"
import "fmt"
func Initialize() {
C.Py_Initialize()
}
func Finalize() {
C.Py_Finalize()
}
func Run(code string) error {
if C.PyRun_SimpleString(C.CString(code)) != 0 {
C.PyErr_Print()
return fmt.Errorf("failed to run code")
}
return nil
}

View File

@@ -0,0 +1,11 @@
package pymod1
/*
#cgo pkg-config: python3-embed
#include <Python.h>
*/
import "C"
func Float(f float64) *C.PyObject {
return C.PyFloat_FromDouble(C.double(f))
}

View File

@@ -0,0 +1,11 @@
package pymod2
/*
#cgo pkg-config: python3-embed
#include <Python.h>
*/
import "C"
func Long(l int64) *C.PyObject {
return C.PyLong_FromLongLong(C.longlong(l))
}

28
_demo/checkfile/demo.go Normal file
View File

@@ -0,0 +1,28 @@
package main
import (
"fmt"
"os"
"path/filepath"
)
func main() {
tempDir := os.TempDir()
noexist := filepath.Join(tempDir, "noexist.txt")
if _, err := os.Stat(noexist); err != nil {
if os.IsNotExist(err) {
fmt.Println("noexist:", err.Error())
} else {
fmt.Println("exist,other err:", err.Error())
}
}
if _, err := os.Open(noexist); err != nil {
if os.IsNotExist(err) {
fmt.Println("noexist:", err.Error())
} else {
fmt.Println("exist,other err:", err.Error())
}
}
}

View File

@@ -0,0 +1,18 @@
package main
import (
"bytes"
"os/exec"
)
func main() {
var data bytes.Buffer
cmd := exec.Command("echo", "hello llgo")
cmd.Stdout = &data
err := cmd.Run()
if err != nil {
panic(err)
}
println("len:", len(data.Bytes()))
println("data:", data.String())
}

9
_demo/complex/cmplx.go Normal file
View File

@@ -0,0 +1,9 @@
package main
import (
"math/cmplx"
)
func main() {
println("abs(3+4i):", cmplx.Abs(3+4i))
}

38
_demo/cppintf/cppintf.go Normal file
View File

@@ -0,0 +1,38 @@
package main
import (
"github.com/goplus/llgo/_demo/cppintf/foo"
"github.com/goplus/llgo/c"
"github.com/goplus/llgo/c/math"
)
type Bar struct {
foo.Callback
a c.Int
}
func NewBar(a c.Int) *Bar {
return &Bar{
Callback: foo.Callback{
Vptr: &foo.CallbackVtbl{
Val: c.Func((*Bar).getA),
Calc: c.Func((*Bar).sqrt),
},
},
a: a,
}
}
func (p *Bar) getA() c.Int {
return p.a
}
func (p *Bar) sqrt(v float64) float64 {
return math.Sqrt(v)
}
func main() {
bar := NewBar(1)
foo.F(&bar.Callback)
foo.G(&bar.Callback)
}

View File

@@ -0,0 +1,15 @@
#include <stdio.h>
#define interface struct
interface ICallback {
virtual int val() = 0;
virtual double calc(double v) = 0;
};
extern "C" void f(ICallback* cb) {
printf("val: %d\ncalc(2): %lf\n", cb->val(), cb->calc(2));
}
void g(ICallback* cb) {
f(cb);
}

25
_demo/cppintf/foo/foo.go Normal file
View File

@@ -0,0 +1,25 @@
package foo
import (
"unsafe"
)
const (
LLGoFiles = "bar/bar.cpp"
LLGoPackage = "link"
)
type Callback struct {
Vptr *CallbackVtbl
}
type CallbackVtbl struct {
Val unsafe.Pointer
Calc unsafe.Pointer
}
//go:linkname F C.f
func F(cb *Callback)
//go:linkname G C._Z1gP9ICallback
func G(cb *Callback)

View File

@@ -0,0 +1,50 @@
package main
import (
"unsafe"
"github.com/goplus/llgo/_demo/cppmintf/foo"
"github.com/goplus/llgo/c"
"github.com/goplus/llgo/c/math"
)
type Bar struct {
foo.Callback
a c.Int
}
func NewBar(a c.Int) *Bar {
return &Bar{
Callback: foo.Callback{
ICalc: foo.ICalc{
Vptr: &foo.ICalcVtbl{
Calc: c.Func((*Bar).sqrt),
},
},
IVal: foo.IVal{
Vptr: &foo.IValVtbl{
Val: c.Func(bar_IVal_getA),
},
},
},
a: a,
}
}
func (p *Bar) getA() c.Int {
return p.a
}
func bar_IVal_getA(this c.Pointer) c.Int {
const delta = -int(unsafe.Offsetof(foo.Callback{}.IVal))
return (*Bar)(c.Advance(this, delta)).getA()
}
func (p *Bar) sqrt(v float64) float64 {
return math.Sqrt(v)
}
func main() {
bar := NewBar(1)
foo.F(&bar.Callback)
}

View File

@@ -0,0 +1,17 @@
#include <stdio.h>
#define interface struct
interface ICalc {
virtual double calc(double v) = 0;
};
interface IVal {
virtual int val() = 0;
};
class Callback : public ICalc, public IVal {
};
extern "C" void f(Callback* cb) {
printf("val: %d\ncalc(2): %lf\n", cb->val(), cb->calc(2));
}

42
_demo/cppmintf/foo/foo.go Normal file
View File

@@ -0,0 +1,42 @@
package foo
import (
"unsafe"
)
const (
LLGoFiles = "bar/bar.cpp"
LLGoPackage = "link"
)
// -----------------------------------------------------------------------------
type ICalc struct {
Vptr *ICalcVtbl
}
type ICalcVtbl struct {
Calc unsafe.Pointer
}
// -----------------------------------------------------------------------------
type IVal struct {
Vptr *IValVtbl
}
type IValVtbl struct {
Val unsafe.Pointer
}
// -----------------------------------------------------------------------------
type Callback struct {
ICalc
IVal
}
//go:linkname F C.f
func F(cb *Callback)
// -----------------------------------------------------------------------------

26
_demo/crand/rand.go Normal file
View File

@@ -0,0 +1,26 @@
package main
import (
"fmt"
"github.com/goplus/llgo/c"
"github.com/goplus/llgo/c/math/rand"
"github.com/goplus/llgo/c/time"
)
func fastrand64() uint64 {
v1 := uint64(rand.Random())
v2 := uint64(rand.Random())
return v1 ^ (v2 << 32)
}
func main() {
rand.Srand(c.Uint(time.Time(nil)))
fmt.Printf("%x\n", rand.Rand())
fmt.Printf("%x\n", rand.Rand())
rand.Srandom(c.Uint(time.Time(nil)))
fmt.Printf("%x\n", rand.Random())
fmt.Printf("%x\n", rand.Random())
fmt.Printf("%x\n", fastrand64())
}

12
_demo/ctime/time.go Normal file
View File

@@ -0,0 +1,12 @@
package main
import "github.com/goplus/llgo/c/time"
func main() {
var tv time.Timespec
time.ClockGettime(time.CLOCK_REALTIME, &tv)
println("REALTIME sec:", tv.Sec, "nsec:", tv.Nsec)
time.ClockGettime(time.CLOCK_MONOTONIC, &tv)
println("MONOTONIC sec:", tv.Sec, "nsec:", tv.Nsec)
}

18
_demo/defer/main.go Normal file
View File

@@ -0,0 +1,18 @@
package main
func main() {
var a int = 5
defer println(a)
defer func() {
println(a)
}()
defer func() {
println(recover().(string))
}()
a = 10
panic("error")
//Output:
// error
// 10
// 5
}

View File

@@ -0,0 +1,42 @@
package main
import (
"fmt"
)
type MyStruct[T any] struct {
value T
}
func (m *MyStruct[T]) Method() {
fmt.Println("In generic method")
genericFunc[T](m.value)
}
func genericFunc[T any](v T) {
fmt.Println("In generic function")
normalFunc()
}
func normalFunc() {
fmt.Println("In normal function")
panic("panic occurs here")
}
func main() {
m := &MyStruct[string]{value: "hello"}
m.Method()
}
//Expected:
// In generic method
// In generic function
// In normal function
// panic: panic occurs here
// [0x00C6D310 github.com/goplus/llgo/internal/runtime.Rethrow+0x2f, SP = 0x60]
// [0x00C6CF44 github.com/goplus/llgo/internal/runtime.Panic+0x2d, SP = 0x50]
// [0x00C69420 main.normalFunc+0xf, SP = 0xa8]
// [0x00C69564 main.genericFunc[string]+0x18, SP = 0x74]
// [0x00C694A8 main.(*MyStruct[string]).Method+0x1f, SP = 0x84]
// [0x00C6936C main+0x4, SP = 0x40]

77
_demo/fcntl/fcntl.go Normal file
View File

@@ -0,0 +1,77 @@
package main
import (
"github.com/goplus/llgo/c"
"github.com/goplus/llgo/c/os"
"unsafe"
)
func main() {
filename := c.Str("testfile.txt")
data := c.Str("Hello, os!")
var buffer [20]c.Char
// Open a file, O_CREAT|O_WRONLY|O_TRUNC means create, write only, or clear the file
fd := os.Open(filename, os.O_CREAT|os.O_WRONLY|os.O_TRUNC, 0644)
if fd == -1 {
c.Printf(c.Str("open error\n"))
return
}
// Writing data to a file
bytesWritten := os.Write(fd, c.Pointer(data), c.Strlen(data))
if bytesWritten == -1 {
c.Printf(c.Str("write error\n"))
os.Close(fd)
return
}
c.Printf(c.Str("Written %ld bytes to %s\n"), bytesWritten, filename)
// Get file status flags
flags := os.Fcntl(fd, os.F_GETFL)
if flags == -1 {
c.Printf(c.Str("os error\n"))
os.Close(fd)
return
}
c.Printf(c.Str("File flags: %d\n"), flags)
// Set the file status flag to non-blocking mode
if os.Fcntl(fd, os.F_SETFL, flags|os.O_NONBLOCK) == -1 {
c.Printf(c.Str("os error\n"))
os.Close(fd)
return
}
c.Printf(c.Str("set file status successfully\n"))
c.Printf(c.Str("111"))
// Close file
os.Close(fd)
// Reopen the file, O_RDONLY means read-only
fd = os.Open(filename, os.O_RDONLY)
if fd == -1 {
c.Printf(c.Str("open error\n"))
return
}
// Reading data from a file
// &buffer[:][0]
// unsafe.SliceData(buffer[:])
bytesRead := os.Read(fd, c.Pointer(unsafe.SliceData(buffer[:])), unsafe.Sizeof(buffer)-1)
if bytesRead == -1 {
c.Printf(c.Str("read error\n"))
os.Close(fd)
return
}
// Ensure that the buffer is null-terminated
buffer[bytesRead] = c.Char(0)
c.Printf(c.Str("Read %ld bytes: %s\n"), bytesRead, &buffer[0])
// Close file
os.Close(fd)
}

11
_demo/getcwd/getcwd.go Normal file
View File

@@ -0,0 +1,11 @@
package main
import (
"github.com/goplus/llgo/c"
"github.com/goplus/llgo/c/os"
)
func main() {
wd := os.Getcwd(c.Alloca(os.PATH_MAX), os.PATH_MAX)
c.Printf(c.Str("cwd: %s\n"), wd)
}

View File

@@ -0,0 +1,12 @@
package main
func main() {
done := false
go func() {
println("Hello, goroutine")
done = true
}()
for !done {
print(".")
}
}

7
_demo/gotime/time.go Normal file
View File

@@ -0,0 +1,7 @@
package main
import "time"
func main() {
println(time.Now().String())
}

View File

@@ -1,13 +1,17 @@
package main
import (
"fmt"
"github.com/goplus/llgo/c"
)
func main() {
c.Printf(c.Str("Hello world\n"))
println("hello world by println")
fmt.Println("hello world by fmt.Println")
c.Printf(c.Str("Hello world by c.Printf\n"))
}
/* Expected output:
Hello World
Hello world
*/

View File

@@ -0,0 +1,10 @@
package main
import _ "unsafe" // for go:linkname
//go:linkname Sqrt C.sqrt
func Sqrt(x float64) float64
func main() {
println("sqrt(2) =", Sqrt(2))
}

View File

@@ -2,7 +2,8 @@ package main
import (
"github.com/goplus/llgo/c"
"github.com/goplus/llgo/x/llama2"
"github.com/goplus/llgo/c/llama2"
"github.com/goplus/llgo/c/time"
)
func main() {
@@ -11,7 +12,7 @@ func main() {
var tokenizerPath *c.Char = c.Str("tokenizer.bin")
var temperature, topp c.Float = 1.0, 0.9
var steps c.Int = 256
var rngSeed uint64 = uint64(c.Time(nil))
var rngSeed uint64 = uint64(time.Time(nil))
loop: // parse command line arguments
for {

9
_demo/logdemo/log.go Normal file
View File

@@ -0,0 +1,9 @@
package main
import (
"log"
)
func main() {
log.Println("Hello")
}

11
_demo/math/math.go Normal file
View File

@@ -0,0 +1,11 @@
package main
import (
"math"
)
func main() {
println(math.Sqrt(2))
println(math.Abs(-1.2))
println(math.Ldexp(1.2, 3))
}

View File

@@ -0,0 +1,13 @@
package main
import "net/textproto"
func main() {
h := make(textproto.MIMEHeader)
h.Set("host", "www.example.com")
println(h.Get("Host"))
}
/* Expected output:
www.example.com
*/

34
_demo/mkdirdemo/mkdir.go Normal file
View File

@@ -0,0 +1,34 @@
package main
import (
"fmt"
"os"
"path/filepath"
)
func main() {
tempDir, err := os.MkdirTemp("", "example*")
if err != nil {
fmt.Println("Failed to create temp directory:", err)
return
}
defer os.Remove(tempDir)
fmt.Println("Temp directory:", tempDir)
tempFile, err := os.CreateTemp("", "example*.txt")
if err != nil {
fmt.Println("Failed to create temp file:", err)
return
}
defer tempFile.Close()
defer os.Remove(tempFile.Name())
fmt.Println("Temp file:", tempFile.Name())
nestedDir := filepath.Join("nested", "directory")
err = os.MkdirAll(nestedDir, 0755)
if err != nil {
fmt.Println("Failed to create nested directory:", err)
return
}
fmt.Println("Nest directory:", nestedDir)
}

20
_demo/netdbdemo/netdb.go Normal file
View File

@@ -0,0 +1,20 @@
package main
import (
"github.com/goplus/llgo/c"
"github.com/goplus/llgo/c/net"
)
func main() {
var hints net.AddrInfo
hints.Family = net.AF_UNSPEC
hints.SockType = net.SOCK_STREAM
host := "httpbin.org"
port := "80"
var result *net.AddrInfo
c.Printf(c.Str("%d\n"), net.Getaddrinfo(c.Str(host), c.Str(port), &hints, &result))
c.Printf(c.Str("%d\n"), net.Freeaddrinfo(result))
}

View File

@@ -0,0 +1,19 @@
package main
import (
"fmt"
"os/exec"
"runtime"
)
func main() {
ls := "ls"
if runtime.GOOS == "windows" {
ls = "dir"
}
lspath, _ := exec.LookPath(ls)
if lspath != "" {
ls = lspath
}
fmt.Println(ls)
}

18
_demo/randcrypt/rand.go Normal file
View File

@@ -0,0 +1,18 @@
package main
import (
"crypto/rand"
"fmt"
)
func main() {
c := 10
b := make([]byte, c)
_, err := rand.Read(b)
if err != nil {
fmt.Println("error:", err)
return
}
// The slice should now contain random bytes instead of only zeroes.
fmt.Printf("%x\n", b)
}

Some files were not shown because too many files have changed in this diff Show More