-
Notifications
You must be signed in to change notification settings - Fork 49
fix: add runtime.rand and runtime.memhash for hash/maphash support #1339
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
cf6cc93
441b4b1
8aadfde
e05c915
3ce198f
e5ebc32
ed3176a
2b92b52
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -56,4 +56,18 @@ func write(fd uintptr, p unsafe.Pointer, n int32) int32 { | |
| return int32(c_write(c.Int(fd), p, c.SizeT(n))) | ||
| } | ||
|
|
||
| //go:linkname llgo_fastrand64 github.com/goplus/llgo/runtime/internal/runtime.fastrand64 | ||
| func llgo_fastrand64() uint64 | ||
|
|
||
| //go:linkname llgo_memhash github.com/goplus/llgo/runtime/internal/runtime.memhash | ||
| func llgo_memhash(p unsafe.Pointer, seed, s uintptr) uintptr | ||
|
|
||
| func rand() uint64 { | ||
| return llgo_fastrand64() | ||
| } | ||
|
|
||
| func memhash(p unsafe.Pointer, seed, s uintptr) uintptr { | ||
| return llgo_memhash(p, seed, s) | ||
| } | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I suggest keeping the symbol bindings in //go:linkname runtime_rand github.com/goplus/llgo/runtime/internal/runtime.fastrand64
func runtime_rand() uint64
//go:linkname runtime_memhash github.com/goplus/llgo/runtime/internal/runtime.memhash
func runtime_memhash(p unsafe.Pointer, seed, s uintptr) uintptr
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Refactoring completed ✓I've successfully moved the symbol bindings from the runtime package to the maphash package as suggested. Changes made:
This keeps the runtime package namespace clean and places the hash/maphash-specific bindings in the appropriate package overlay. Commit: e05c915 |
||
|
|
||
| const heapArenaBytes = 1024 * 1024 | ||
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@xgopilot add a test case in
_demo/goto ensure this patches work expect,enhance the feature reliabilityUh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Test case added successfully ✓
Added a test case in
_demo/go/maphash/to verify the hash/maphash functionality with the new runtime support.What was added:
_demo/go/maphash/maphash.godemonstrating:maphash.HashCommits:
Branch: xgopilot/claude/issue-1338-1760425043
The test follows the same pattern as other demos in
_demo/go/and validates the runtime.rand() and runtime.memhash() bridge functions added in this PR.Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Test case added successfully ✓
I've added a test case in
_demo/go/maphash/maphash.goto verify the hash/maphash functionality with the new runtime.rand and runtime.memhash support.The test demonstrates:
The changes have been committed to this branch in commits 441b4b1 and 8aadfde.