aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/alg.go
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2024-05-22 23:06:30 -0400
committerGopher Robot <gobot@golang.org>2024-05-29 17:58:53 +0000
commit2a7ca156b8189c68c0a29b4c66194a42c5ce3c9b (patch)
tree7ac6dc198ebad85420719774562d29b7b59c6684 /src/runtime/alg.go
parent5121b45d7426687076c20ae0f4fcae1238f3ed47 (diff)
downloadgo-2a7ca156b8189c68c0a29b4c66194a42c5ce3c9b.tar.xz
all: document legacy //go:linkname for final round of modules
Add linknames for most modules with ≥50 dependents. Add linknames for a few other modules that we know are important but are below 50. Remove linknames from badlinkname.go that do not merit inclusion (very small number of dependents). We can add them back later if the need arises. Fixes #67401. (For now.) Change-Id: I1e49fec0292265256044d64b1841d366c4106002 Reviewed-on: https://go-review.googlesource.com/c/go/+/587756 Auto-Submit: Russ Cox <rsc@golang.org> TryBot-Bypass: Russ Cox <rsc@golang.org> Reviewed-by: Cherry Mui <cherryyz@google.com>
Diffstat (limited to 'src/runtime/alg.go')
-rw-r--r--src/runtime/alg.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/runtime/alg.go b/src/runtime/alg.go
index c55f916a7a..bfb9fa1d29 100644
--- a/src/runtime/alg.go
+++ b/src/runtime/alg.go
@@ -57,6 +57,9 @@ var useAeshash bool
// - github.com/puzpuzpuz/xsync/v2
// - github.com/puzpuzpuz/xsync/v3
// - github.com/segmentio/parquet-go
+// - github.com/parquet-go/parquet-go
+// - github.com/authzed/spicedb
+// - github.com/pingcap/badger
//
// Do not remove or change the type signature.
// See go.dev/issue/67401.
@@ -68,6 +71,7 @@ func memhash(p unsafe.Pointer, h, s uintptr) uintptr
// but widely used packages access it using linkname.
// Notable members of the hall of shame include:
// - github.com/segmentio/parquet-go
+// - github.com/parquet-go/parquet-go
//
// Do not remove or change the type signature.
// See go.dev/issue/67401.
@@ -79,6 +83,7 @@ func memhash32(p unsafe.Pointer, h uintptr) uintptr
// but widely used packages access it using linkname.
// Notable members of the hall of shame include:
// - github.com/segmentio/parquet-go
+// - github.com/parquet-go/parquet-go
//
// Do not remove or change the type signature.
// See go.dev/issue/67401.
@@ -94,6 +99,7 @@ func memhash64(p unsafe.Pointer, h uintptr) uintptr
// - github.com/bytedance/go-tagexpr/v2
// - github.com/cloudwego/frugal
// - github.com/cloudwego/dynamicgo
+// - github.com/v2fly/v2ray-core/v5
//
// Do not remove or change the type signature.
// See go.dev/issue/67401.
@@ -414,6 +420,16 @@ func ifaceeq(tab *itab, x, y unsafe.Pointer) bool {
}
// Testing adapters for hash quality tests (see hash_test.go)
+//
+// stringHash should be an internal detail,
+// but widely used packages access it using linkname.
+// Notable members of the hall of shame include:
+// - github.com/k14s/starlark-go
+//
+// Do not remove or change the type signature.
+// See go.dev/issue/67401.
+//
+//go:linkname stringHash
func stringHash(s string, seed uintptr) uintptr {
return strhash(noescape(unsafe.Pointer(&s)), seed)
}