detached 8b02958

chore: switch purego dependency to bnema/purego fork

Replace local path replace directive with GitHub URL pointing to
bnema/purego@91aa177 to avoid accidental pushes to upstream.
commit
8b029581aa8aebd90aa84a2b638058062afa9bdd
author
brice · · 2026-03-23 19:51 UTC
parent
f14f9b6
signature
GPG VerifiedCD88F9E564E0102646FB6077A1A07C7C7C3E349D · arch-gpg Verified for the committer email
51 files · +1860 -488
M go.mod +2 -0
@@ -3,3 +3,5 @@ module github.com/bnema/puregotk
33 go 1.26.1
44
55 require github.com/ebitengine/purego v0.10.0
6+
7+replace github.com/ebitengine/purego => github.com/bnema/purego v0.0.0-20260323095903-91aa177a2704
@@ -3,3 +3,5 @@ module github.com/bnema/puregotk
3 go 1.26.13 go 1.26.1
4 4
5 require github.com/ebitengine/purego v0.10.05 require github.com/ebitengine/purego v0.10.0
6+
7+replace github.com/ebitengine/purego => github.com/bnema/purego v0.0.0-20260323095903-91aa177a2704
M go.sum +2 -2 generated file: collapsed
M vendor/github.com/ebitengine/purego/README.md +3 -0 generated file: collapsed
M vendor/github.com/ebitengine/purego/dlfcn_nocgo_netbsd.go +2 -0 generated file: collapsed
M vendor/github.com/ebitengine/purego/func.go +220 -107 generated file: collapsed
A vendor/github.com/ebitengine/purego/hostlayout_go123.go +12 -0 generated file: collapsed
A vendor/github.com/ebitengine/purego/hostlayout_nogo123.go +11 -0 generated file: collapsed
A vendor/github.com/ebitengine/purego/internal/fakecgo/abi_riscv64.h +72 -0
@@ -0,0 +1,72 @@
1+// Copyright 2026 The Go Authors. All rights reserved.
2+// Use of this source code is governed by a BSD-style
3+// license that can be found in the LICENSE file.
4+
5+// Macros for transitioning from the host ABI to Go ABI0.
6+//
7+// These macros save and restore the callee-saved registers
8+// from the stack, but they don't adjust stack pointer, so
9+// the user should prepare stack space in advance.
10+// SAVE_GPR(offset) saves X8, X9, X18-X27 to the stack space
11+// of ((offset)+0*8)(X2) ~ ((offset)+11*8)(X2).
12+//
13+// SAVE_FPR(offset) saves F8, F9, F18-F27 to the stack space
14+// of ((offset)+0*8)(X2) ~ ((offset)+11*8)(X2).
15+//
16+// Note: g is X27
17+
18+#define SAVE_GPR(offset) \
19+ MOV X8, ((offset)+0*8)(X2) \
20+ MOV X9, ((offset)+1*8)(X2) \
21+ MOV X18, ((offset)+2*8)(X2) \
22+ MOV X19, ((offset)+3*8)(X2) \
23+ MOV X20, ((offset)+4*8)(X2) \
24+ MOV X21, ((offset)+5*8)(X2) \
25+ MOV X22, ((offset)+6*8)(X2) \
26+ MOV X23, ((offset)+7*8)(X2) \
27+ MOV X24, ((offset)+8*8)(X2) \
28+ MOV X25, ((offset)+9*8)(X2) \
29+ MOV X26, ((offset)+10*8)(X2) \
30+ MOV g, ((offset)+11*8)(X2)
31+
32+#define RESTORE_GPR(offset) \
33+ MOV ((offset)+0*8)(X2), X8 \
34+ MOV ((offset)+1*8)(X2), X9 \
35+ MOV ((offset)+2*8)(X2), X18 \
36+ MOV ((offset)+3*8)(X2), X19 \
37+ MOV ((offset)+4*8)(X2), X20 \
38+ MOV ((offset)+5*8)(X2), X21 \
39+ MOV ((offset)+6*8)(X2), X22 \
40+ MOV ((offset)+7*8)(X2), X23 \
41+ MOV ((offset)+8*8)(X2), X24 \
42+ MOV ((offset)+9*8)(X2), X25 \
43+ MOV ((offset)+10*8)(X2), X26 \
44+ MOV ((offset)+11*8)(X2), g
45+
46+#define SAVE_FPR(offset) \
47+ MOVD F8, ((offset)+0*8)(X2) \
48+ MOVD F9, ((offset)+1*8)(X2) \
49+ MOVD F18, ((offset)+2*8)(X2) \
50+ MOVD F19, ((offset)+3*8)(X2) \
51+ MOVD F20, ((offset)+4*8)(X2) \
52+ MOVD F21, ((offset)+5*8)(X2) \
53+ MOVD F22, ((offset)+6*8)(X2) \
54+ MOVD F23, ((offset)+7*8)(X2) \
55+ MOVD F24, ((offset)+8*8)(X2) \
56+ MOVD F25, ((offset)+9*8)(X2) \
57+ MOVD F26, ((offset)+10*8)(X2) \
58+ MOVD F27, ((offset)+11*8)(X2)
59+
60+#define RESTORE_FPR(offset) \
61+ MOVD ((offset)+0*8)(X2), F8 \
62+ MOVD ((offset)+1*8)(X2), F9 \
63+ MOVD ((offset)+2*8)(X2), F18 \
64+ MOVD ((offset)+3*8)(X2), F19 \
65+ MOVD ((offset)+4*8)(X2), F20 \
66+ MOVD ((offset)+5*8)(X2), F21 \
67+ MOVD ((offset)+6*8)(X2), F22 \
68+ MOVD ((offset)+7*8)(X2), F23 \
69+ MOVD ((offset)+8*8)(X2), F24 \
70+ MOVD ((offset)+9*8)(X2), F25 \
71+ MOVD ((offset)+10*8)(X2), F26 \
72+ MOVD ((offset)+11*8)(X2), F27
@@ -0,0 +1,72 @@
1+// Copyright 2026 The Go Authors. All rights reserved.
2+// Use of this source code is governed by a BSD-style
3+// license that can be found in the LICENSE file.
4+
5+// Macros for transitioning from the host ABI to Go ABI0.
6+//
7+// These macros save and restore the callee-saved registers
8+// from the stack, but they don't adjust stack pointer, so
9+// the user should prepare stack space in advance.
10+// SAVE_GPR(offset) saves X8, X9, X18-X27 to the stack space
11+// of ((offset)+0*8)(X2) ~ ((offset)+11*8)(X2).
12+//
13+// SAVE_FPR(offset) saves F8, F9, F18-F27 to the stack space
14+// of ((offset)+0*8)(X2) ~ ((offset)+11*8)(X2).
15+//
16+// Note: g is X27
17+
18+#define SAVE_GPR(offset) \
19+ MOV X8, ((offset)+0*8)(X2) \
20+ MOV X9, ((offset)+1*8)(X2) \
21+ MOV X18, ((offset)+2*8)(X2) \
22+ MOV X19, ((offset)+3*8)(X2) \
23+ MOV X20, ((offset)+4*8)(X2) \
24+ MOV X21, ((offset)+5*8)(X2) \
25+ MOV X22, ((offset)+6*8)(X2) \
26+ MOV X23, ((offset)+7*8)(X2) \
27+ MOV X24, ((offset)+8*8)(X2) \
28+ MOV X25, ((offset)+9*8)(X2) \
29+ MOV X26, ((offset)+10*8)(X2) \
30+ MOV g, ((offset)+11*8)(X2)
31+
32+#define RESTORE_GPR(offset) \
33+ MOV ((offset)+0*8)(X2), X8 \
34+ MOV ((offset)+1*8)(X2), X9 \
35+ MOV ((offset)+2*8)(X2), X18 \
36+ MOV ((offset)+3*8)(X2), X19 \
37+ MOV ((offset)+4*8)(X2), X20 \
38+ MOV ((offset)+5*8)(X2), X21 \
39+ MOV ((offset)+6*8)(X2), X22 \
40+ MOV ((offset)+7*8)(X2), X23 \
41+ MOV ((offset)+8*8)(X2), X24 \
42+ MOV ((offset)+9*8)(X2), X25 \
43+ MOV ((offset)+10*8)(X2), X26 \
44+ MOV ((offset)+11*8)(X2), g
45+
46+#define SAVE_FPR(offset) \
47+ MOVD F8, ((offset)+0*8)(X2) \
48+ MOVD F9, ((offset)+1*8)(X2) \
49+ MOVD F18, ((offset)+2*8)(X2) \
50+ MOVD F19, ((offset)+3*8)(X2) \
51+ MOVD F20, ((offset)+4*8)(X2) \
52+ MOVD F21, ((offset)+5*8)(X2) \
53+ MOVD F22, ((offset)+6*8)(X2) \
54+ MOVD F23, ((offset)+7*8)(X2) \
55+ MOVD F24, ((offset)+8*8)(X2) \
56+ MOVD F25, ((offset)+9*8)(X2) \
57+ MOVD F26, ((offset)+10*8)(X2) \
58+ MOVD F27, ((offset)+11*8)(X2)
59+
60+#define RESTORE_FPR(offset) \
61+ MOVD ((offset)+0*8)(X2), F8 \
62+ MOVD ((offset)+1*8)(X2), F9 \
63+ MOVD ((offset)+2*8)(X2), F18 \
64+ MOVD ((offset)+3*8)(X2), F19 \
65+ MOVD ((offset)+4*8)(X2), F20 \
66+ MOVD ((offset)+5*8)(X2), F21 \
67+ MOVD ((offset)+6*8)(X2), F22 \
68+ MOVD ((offset)+7*8)(X2), F23 \
69+ MOVD ((offset)+8*8)(X2), F24 \
70+ MOVD ((offset)+9*8)(X2), F25 \
71+ MOVD ((offset)+10*8)(X2), F26 \
72+ MOVD ((offset)+11*8)(X2), F27
M vendor/github.com/ebitengine/purego/internal/fakecgo/asm_riscv64.s +14 -55 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/go_freebsd.go +4 -25 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/go_linux.go +4 -25 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/go_netbsd.go +4 -25 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/libcgo_netbsd.go +2 -2 generated file: collapsed
A vendor/github.com/ebitengine/purego/internal/fakecgo/linux.go +184 -0 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/netbsd.go +1 -1 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/trampolines_386.s +18 -4 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/trampolines_amd64.s +1 -1 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/trampolines_arm.s +44 -3 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/trampolines_arm64.s +1 -4 generated file: collapsed
A vendor/github.com/ebitengine/purego/internal/fakecgo/trampolines_linux_386.s +78 -0 generated file: collapsed
A vendor/github.com/ebitengine/purego/internal/fakecgo/trampolines_linux_amd64.s +69 -0 generated file: collapsed
A vendor/github.com/ebitengine/purego/internal/fakecgo/trampolines_linux_arm.s +69 -0 generated file: collapsed
A vendor/github.com/ebitengine/purego/internal/fakecgo/trampolines_linux_arm64.s +60 -0 generated file: collapsed
A vendor/github.com/ebitengine/purego/internal/fakecgo/trampolines_linux_loong64.s +60 -0 generated file: collapsed
A vendor/github.com/ebitengine/purego/internal/fakecgo/trampolines_linux_ppc64le.s +69 -0 generated file: collapsed
A vendor/github.com/ebitengine/purego/internal/fakecgo/trampolines_linux_riscv64.s +60 -0 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/trampolines_loong64.s +1 -11 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/trampolines_ppc64le.s +30 -129 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/trampolines_riscv64.s +11 -7 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/zsymbols_linux.go +110 -0 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/ztrampolines_linux.s +30 -0 generated file: collapsed
M vendor/github.com/ebitengine/purego/struct_386.go +12 -1 generated file: collapsed
M vendor/github.com/ebitengine/purego/struct_amd64.go +162 -0 generated file: collapsed
M vendor/github.com/ebitengine/purego/struct_arm.go +8 -0 generated file: collapsed
M vendor/github.com/ebitengine/purego/struct_arm64.go +203 -7 generated file: collapsed
M vendor/github.com/ebitengine/purego/struct_loong64.go +9 -1 generated file: collapsed
M vendor/github.com/ebitengine/purego/struct_ppc64le.go +9 -1 generated file: collapsed
M vendor/github.com/ebitengine/purego/struct_riscv64.go +9 -1 generated file: collapsed
M vendor/github.com/ebitengine/purego/struct_s390x.go +9 -1 generated file: collapsed
M vendor/github.com/ebitengine/purego/sys_amd64.s +16 -16 generated file: collapsed
M vendor/github.com/ebitengine/purego/sys_arm64.s +2 -1 generated file: collapsed
M vendor/github.com/ebitengine/purego/sys_unix_arm64.s +8 -3 generated file: collapsed
M vendor/github.com/ebitengine/purego/sys_unix_loong64.s +9 -5 generated file: collapsed
M vendor/github.com/ebitengine/purego/syscall.go +21 -0 generated file: collapsed
M vendor/github.com/ebitengine/purego/syscall_32bit.go +21 -0 generated file: collapsed
A vendor/github.com/ebitengine/purego/syscall_notstackargs.go +38 -0 generated file: collapsed
R vendor/github.com/ebitengine/purego/syscall_sysv_stackargs.go → vendor/github.com/ebitengine/purego/syscall_stackargs.go +13 -3 generated file: collapsed · renamed, 54% similar
D vendor/github.com/ebitengine/purego/syscall_sysv_others.go +0 -28 generated file: collapsed
R vendor/github.com/ebitengine/purego/syscall_sysv.go → vendor/github.com/ebitengine/purego/syscall_unix.go +53 -18 generated file: collapsed · renamed, 85% similar
M vendor/github.com/ebitengine/purego/syscall_windows.go +8 -0 generated file: collapsed
M vendor/modules.txt +2 -1 generated file: collapsed

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 1

Tags 102

↑↓ moveenter openesc close