Golang reflect package hack tools
-
Go1.14 ~ Go1.22
go build
-
Go1.23
go build -ldflags="-checklinkname=0"
support ABI0 and ABIInternal
-
ABI0 stack-based ABI
-
ABIInternal register-based Go calling convention proposal
- Go1.17: amd64
- Go1.18: amd64 arm64 ppc64/ppc64le
- Go1.19~Go1.23: amd64 arm64 ppc64/ppc64le riscv64
- reflectx.CanSet
- reflectx.Field
- reflectx.FieldByIndex
- reflectx.FieldByName
- reflectx.FieldByNameFunc
-
reflectx.StructOf(fs)
-
reflectx.NamedTypeOf
-
SetUnderlying
-
SetTypeName
-
reflectx.Method
-
reflectx.MakeMethod
-
reflectx.NewMethodSet
-
reflectx.SetMethodSet
-
reflectx.StructToMethodSet
- reflectx.InterfaceOf
- reflectx.NamedInterfaceOf
- reflectx.NewInterfaceType
- reflectx.SetInterfaceType
- reflectx.NewContext()
- allocs
import _ "github.com/goplus/reflectx/icall/icall[N]"
- install icall_gen
go get github.com/goplus/reflectx/cmd/icall_gen
icall_gen -o icall1024.go -pkg main -size 1024